CONTRIBUTING.md (2425B)
1 # Contributing 2 3 If you discover issues, have ideas for improvements or new features, 4 please report them to the [issue tracker][1] of the repository or 5 submit a pull request. Please, try to follow these guidelines when you 6 do so. 7 8 ## Issue reporting 9 10 * Check that the issue has not already been reported. 11 * Check that the issue has not already been fixed in the latest code 12 (a.k.a. `master`). 13 * Be clear, concise and precise in your description of the problem. 14 * Open an issue with a descriptive title and a summary in grammatically correct, 15 complete sentences. 16 * Mention your Emacs version and operating system. 17 * Mention `clojure-mode`'s version info (`M-x clojure-mode-version-info`), e.g.: 18 19 ```el 20 clojure-mode (version 2.1.1) 21 ``` 22 23 * Include any relevant code to the issue summary. 24 25 ## Pull requests 26 27 * Read [how to properly contribute to open source projects on Github][2]. 28 * Use a topic branch to easily amend a pull request later, if necessary. 29 * Write [good commit messages][3]. 30 * Mention related tickets in the commit messages (e.g. `[Fix #N] Font-lock properly ...`) 31 * Update the [changelog][6]. 32 * Use the same coding conventions as the rest of the project. 33 * Verify your Emacs Lisp code with `checkdoc` (<kbd>C-c ? d</kbd>). 34 * [Squash related commits together][5]. 35 * Open a [pull request][4] that relates to *only* one subject with a clear title 36 and description in grammatically correct, complete sentences. 37 * When applicable, attach ERT unit tests. See below for instructions on running the tests. 38 39 ## Development setup 40 41 1. Fork and clone the repository. 42 1. Install [Cask][7]. 43 1. Run `cask install` in the repository folder. 44 1. Run tests with `make test`. 45 46 **Note:** macOS users should make sure that the `emacs` command resolves the version of Emacs they've installed 47 manually (e.g. via `homebrew`), instead of the ancient Emacs 22 that comes bundled with macOS. 48 See [this article][8] for more details. 49 50 [1]: https://github.com/clojure-emacs/clojure-mode/issues 51 [2]: http://gun.io/blog/how-to-github-fork-branch-and-pull-request 52 [3]: http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html 53 [4]: https://help.github.com/articles/using-pull-requests 54 [5]: http://gitready.com/advanced/2009/02/10/squashing-commits-with-rebase.html 55 [6]: https://github.com/clojure-emacs/clojure-mode/blob/master/CHANGELOG.md 56 [7]: https://github.com/cask/cask 57 [8]: https://emacsredux.com/blog/2015/05/09/emacs-on-os-x/