Jasmine Core Maintainers Only
Follow the instructions in CONTRIBUTING.md
during development.
Please attempt to keep commits to main
small, but cohesive. If a feature is contained in a bunch of small commits (e.g., it has several wip commits or small work), please squash them when pushing to main
.
We attempt to stick to Semantic Versioning. Most of the time, development should be against a new minor version - fixing bugs and adding new features that are backwards compatible.
The current version lives in the file /package.json
. This version will be
copied to jasmine.js
when the distribution is built. When releasing a new
version, update package.json
with the new version and npm run build
to
update the gem version number.
Note that Jasmine should only use the "patch" version number in the following cases:
- Changes related to packaging for a specific binding library (npm or browser-runner)
- Fixes for regressions.
When jasmine-core revs its major or minor version, the binding libraries should also rev to that version.
When ready to release - specs are all green and the stories are done:
- Update the release notes in
release_notes
- use the Anchorman gem to generate the markdown file and edit accordingly. Include a list of supported environments. - Update the version in
package.json
- Run
npm run build
.
- Run the browser tests using
scripts/run-all-browsers
. - Commit release notes and version changes (jasmine.js, package.json)
- Push
- Wait for Circle CI to go green
- Build the standalone distribution with
grunt buildStandaloneDist
- This will generate
dist/jasmine-standalone-<version>.zip
, which you will upload later (see "Finally" below).
- Run the tests on Windows. (CI only tests on Linux.)
npm adduser
to save your credentials locallynpm publish .
to publish what's inpackage.json
Probably only need to do this when releasing a minor version, and not a patch version.
rake update_edge_jasmine
npm run jsdoc
rake release[${version}]
to copy the current edge docs to the new version- Commit and push.
- Create release notes using Anchorman as above
- In
package.json
, update both the package version and the jasmine-core dependency version - Commit and push.
- Wait for Circle CI to go green again.
- Run the tests on Windows locally.
grunt release
. (Note: This will publish the package by runningnpm publish
.)
For each of the above GitHub repos:
- Visit the releases page and find the tag just published.
- Paste in a link to the correct release notes for this release. The link should reference the blob and tag correctly, and the markdown file for the notes.
- If it is a pre-release, mark it as such.
- For core, attach the standalone zipfile.