For pull requests:

  • Be consistent with prevalent style and design decisions.

  • Add a Jasmine spec to specs/q-spec.js.

  • Use npm test to avoid regressions.

  • Run tests in q-spec/run.html in as many supported browsers as you can find the will to deal with.

  • Do not build minified versions; we do this each release.

  • If you would be so kind, add a note to CHANGES.md in an appropriate section:

    • Next Major Version if it introduces backward incompatibilities to code in the wild using documented features.
    • Next Minor Version if it adds a new feature.
    • Next Patch Version if it fixes a bug.

For releases:

  • Run npm test.
  • Run tests in q-spec/run.html in a representative sample of every browser under the sun.
  • Run npm run cover and make sure you're happy with the results.
  • Run npm run minify and be sure to commit the resulting q.min.js.
  • Note the Gzipped size output by the previous command, and update README.md if it has changed to 1 significant digit.
  • Stash any local changes.
  • Update CHANGES.md to reflect all changes in the differences between HEAD and the previous tagged version. Give credit where credit is due.
  • Update README.md to address all new, non-experimental features.
  • Update the API reference on the Wiki to reflect all non-experimental features.
  • Use npm version major|minor|patch to update package.json, commit, and tag the new version.
  • Use npm publish to send up a new release.
  • Send an email to the q-continuum mailing list announcing the new release and the notes from the change log. This helps folks maintaining other package ecosystems.