If you are submitting a bug, please create a [jsfiddle](http://jsfiddle.net/) demonstrating the issue.
-Contributing code
+Read before submitting Pull Requests
+====================================
+
+ * **Pull requests to the `master` branch will be closed.** Please submit all pull requests to the `develop` branch.
+ * **Locale translations will not be merged without unit tests.** See [the British English unit tests](https://github.com/moment/moment/blob/develop/src/test/locale/en-gb.js) for an example.
+ * **Do not include the minified files in your pull request.** These are
+ `moment.js`, `locale/*.js`, `min/*.js`. Don't worry, we'll build them when
+ we cut a release.
+
+Code organization
=================
-To contribute, fork the library and install grunt and dependencies. You need [node](http://nodejs.org/); use [nvm](https://github.com/creationix/nvm) or [nenv](https://github.com/ryuone/nenv) to install it.
+Starting from version 2.10.0 the code is placed under `src/`.
+`moment.js`, `locale/*.js`, `min/*.js` are generated only on release.
+
+**DO NOT** submit changes to the generated files. Instead only change
+`src/**/*.js` and run the tests.
+
+* `src/lib/**/*.js` moment core files
+* `src/locale/*.js` locale files
+* `src/test/moment/*.js` moment core tests
+* `src/test/locale/*.js` locale tests
+
+We're using ES6 module system, but nothing else ES6, because of performance
+considerations (added code by the transpiler, less than optimal translation to
+ES5). So please do not use that fancy new ES6 feature in your patch, it won't
+be accepted.
+
+Setting up development environment
+==================================
+
+To contribute, fork the library and install grunt and dependencies. You need
+[git](http://git-scm.com/) and
+[node](http://nodejs.org/); you might use
+[nvm](https://github.com/creationix/nvm) or
+[nenv](https://github.com/ryuone/nenv) to install node.
```bash
git clone https://github.com/moment/moment.git
author, or at least one other native speaker has to approve of the change
(happens rarely).
-Very important notes
-====================
-
- * **Pull requests to the `master` branch will be closed.** Please submit all pull requests to the `develop` branch.
- * **Locale translations will not be merged without unit tests.** See [the British English unit tests](https://github.com/moment/moment/blob/develop/src/test/locale/en-gb.js) for an example.
- * **Do not include the minified files in your pull request.** Don't worry, we'll build them when we cut a release.
-
Grunt tasks
===========
* `grunt` The default task lints the code and runs the tests. You should make sure you do this before submitting a PR.
* `grunt test` run the tests.
- * `grunt release` Build everything, including minified files
+ * `grunt release` Build everything, including minified files (do not include
+ those in Pull Requests)
* `grunt transpile:fr,ru` Build custom locale bundles `moment-with-locales.custom.js` and `locales.custom.js` inside `build/umd/min` containing just French and Russian.
* `grunt size` Print size statistics.