1 # Contributing to Lodash
3 Contributions are always welcome. Before contributing please read the
4 [code of conduct](https://jquery.org/conduct/) &
5 [search the issue tracker](https://github.com/lodash/lodash/issues); your issue
6 may have already been discussed or fixed in `master`. To contribute,
7 [fork](https://help.github.com/articles/fork-a-repo/) Lodash, commit your changes,
8 & [send a pull request](https://help.github.com/articles/using-pull-requests/).
12 Feature requests should be submitted in the
13 [issue tracker](https://github.com/lodash/lodash/issues), with a description of
14 the expected behavior & use case, where they’ll remain closed until sufficient interest,
15 [e.g. :+1: reactions](https://help.github.com/articles/about-discussions-in-issues-and-pull-requests/),
16 has been shown by the community. Before submitting a request, please search for
18 [closed issues](https://github.com/lodash/lodash/issues?q=is%3Aissue+is%3Aclosed+label%3Aenhancement).
22 For additions or bug fixes you should only need to modify `lodash.js`. Include
23 updated unit tests in the `test` directory as part of your pull request. Don’t
24 worry about regenerating the `dist/` or `doc/` files.
26 Before running the unit tests you’ll need to install, `npm i`,
27 [development dependencies](https://docs.npmjs.com/files/package.json#devdependencies).
28 Run unit tests from the command-line via `npm test`, or open `test/index.html` &
29 `test/fp.html` in a web browser. The [Backbone](http://backbonejs.org/) &
30 [Underscore](http://underscorejs.org/) test suites are included as well.
32 ## Contributor License Agreement
34 Lodash is a member of the [jQuery Foundation](https://jquery.org/).
35 As such, we request that all contributors sign the jQuery Foundation
36 [contributor license agreement (CLA)](https://contribute.jquery.org/CLA/).
38 For more information about CLAs, please check out Alex Russell’s excellent post,
39 [“Why Do I Need to Sign This?”](https://infrequently.org/2008/06/why-do-i-need-to-sign-this/).
43 In addition to the following guidelines, please follow the conventions already
44 established in the code.
47 Use two spaces for indentation. No tabs.
50 Keep variable & method names concise & descriptive.<br>
51 Variable names `index`, `array`, & `iteratee` are preferable to
55 Single-quoted strings are preferred to double-quoted strings; however,
56 please use a double-quoted string if the value contains a single-quote
57 character to avoid unnecessary escaping.
60 Please use single-line comments to annotate significant additions, &
61 [JSDoc-style](http://www.2ality.com/2011/08/jsdoc-intro.html) comments for
64 Guidelines are enforced using [JSCS](https://www.npmjs.com/package/jscs):
71 You can opt-in to a pre-push git hook by adding an `.opt-in` file to the root of
72 the project containing:
77 With that, when you `git push`, the pre-push git hook will trigger and execute