How to work on a Jasmine Release
Development
Jasmine Core Maintainers Only
Follow the instructions in CONTRIBUTING.md during development.
Git Rules
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.
Version
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 if the new release contains only bug fixes.
When jasmine-core revs its major or minor version, the jasmine NPM package
should also rev to that version.
Release
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. Get that information from these places:- For Node, see .circleci/config.yml or the README.
- For Firefox ESR and Safari <=17, see scripts/run-sauce-browsers or the README.
- For evergreen browsers, trigger a Circle CI run and check the Saucelabs dashboard once it’s finished.
- For Safari >17, trigger the Safari action and get the version from the output.
- Update the version in
package.json - Run
npm run build.
Commit and push core changes
- Commit release notes and version changes (jasmine.js, package.json)
- Push
- Tag the release and push the tag.
- Wait for Circle CI to go green
Build standalone distribution
- Build the standalone distribution with
npm run buildStandaloneDist - This will generate
dist/jasmine-standalone-<version>.zip, which you will upload later (see “Finally” below).
Release the core NPM module
npm loginto save your credentials locallynpm publish .to publish what’s inpackage.json
Release the docs
Probably only need to do this when releasing a minor version, and not a patch version. See the README file in the docs repo for instructions.
Release the jasmine NPM package
See https://github.com/jasmine/jasmine-npm/blob/main/RELEASE.md.
Publish the GitHub release
- Visit the releases page and find the tag just published.
- Paste in a link to the correct release notes for this release.
- If it is a pre-release, mark it as such.
- Attach the standalone zipfile.