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.