* 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
[[https://github.com/melpa/melpa/blob/master/CONTRIBUTING.org#making-your-package-ready-for-inclusion][MELPA has a good section about code style]]. And since this package is in
MELPA, we should aim to follow their guidelines even though the package is
already included.

*** 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.

All lines should be indented with spaces only. Tabs aren't allowed.

*** Checkdoc
If you do changes to comments anywhere, run =M-x checkdoc= in that buffer to
check the documentation style guidelines.

*** Flycheck
Please 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 functionality or just
want to make sure all the providers works, you can run =make integration=.
