You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

58 lines
2.0 KiB

* Contributing to webpaste.el
All contributions are welcome!
The following things are probably always needed:
** Reporting bugs
Please try to be constructive, if you have a bug. Try to detail how to
reproduce the error so we can try to fix it. Also try to run the latest
version of webpaste alone without alot of other packages.
Just start emacs like this: =emacs -Q=. Then paste the example below to set
up webpaste (also eval the buffer =M-x eval-buffer RET=).
#+begin_src emacs-lisp :tangle yes
(require 'package)
(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/"))
(package-initialize)
(package-refresh-contents)
(package-install 'webpaste)
(require 'webpaste)
(global-set-key (kbd "C-c C-p C-b") 'webpaste-paste-buffer)
(global-set-key (kbd "C-c C-p C-r") 'webpaste-paste-region)
#+end_src
After that you do the settings you need to reproduce it (like providers and
other stuff).
** Contributing code
*** Code style
Never leave trailing spaces on a line in any file. And end all files with
exactly one newline. Not more or less than that.
*** Flycheck
Plase run [[http://www.flycheck.org/][flycheck]] with [[https://github.com/purcell/flycheck-package][flycheck-package]] in your editor to get hints and
highlights of errors. Only one error is allowed in each file.
In webpaste.el this allowed error is:
#+begin_src
Cannot open load file: No such file or directory, request
#+end_src
This is due to the =(require 'request)= at the beginning of the file. This is
ok that it fails. All other errors must be fixed. For example documentation
and other hints.
And for the tests it's okay with another error which is:
#+begin_src
Cannot open load file: No such file or directory, webpaste
#+end_src
This is due to the same reasons as above.
*** Tests
Make sure the tests works, for regular unit tests. Just run =make unit=. If
you have changed something that might affect providers functionallity or just
want to make sure all the providers works, you can run =make integration=.