UNPKG

3.33 kBMarkdownView Raw
1# How to work on a Jasmine Release
2
3## Development
4___Jasmine Core Maintainers Only___
5
6Follow the instructions in `CONTRIBUTING.md` during development.
7
8### Git Rules
9
10Please work on feature branches.
11
12Please attempt to keep commits to `master` 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 merging back to `master`.
13
14### Version
15
16We attempt to stick to [Semantic Versioning](http://semver.org/). Most of the time, development should be against a new minor version - fixing bugs and adding new features that are backwards compatible.
17
18The current version lives in the file `/package.json`. This version will be the version number that is currently released. When releasing a new version, update `package.json` with the new version and `grunt build:copyVersionToGem` to update the gem version number.
19
20This version is used by both `jasmine.js` and the `jasmine-core` Ruby gem.
21
22Note that Jasmine should only use the "patch" version number in the following cases:
23
24* Changes related to packaging for a specific platform (npm, gem, or pip).
25* Fixes for regressions.
26
27When jasmine-core revs its major or minor version, the binding libraries should also rev to that version.
28
29## Release
30
31When ready to release - specs are all green and the stories are done:
32
331. Update the release notes in `release_notes` - use the Anchorman gem to generate the markdown file and edit accordingly
341. Update the version in `package.json` to a release candidate
351. Update any links or top-level landing page for the Github Pages
36
37### Build standalone distribution
38
391. Build the standalone distribution with `grunt buildStandaloneDist`
40
41### Release the Python egg
42
43Install [twine](https://github.com/pypa/twine)
44
451. `python setup.py sdist`
461. `twine upload dist/jasmine-core-<version>.tar.gz` You will need pypi credentials to upload the egg.
47
48### Release the Ruby gem
49
501. Copy version to the Ruby gem with `grunt build:copyVersionToGem`
511. __NOTE__: You will likely need to point to a local jasmine gem in order to run tests locally. _Do not_ push this version of the Gemfile.
521. __NOTE__: You will likely need to push a new jasmine gem with a dependent version right after this release.
531. Push these changes to GitHub and verify that this SHA is green
541. `rake release` - tags the repo with the version, builds the `jasmine-core` gem, pushes the gem to Rubygems.org. In order to release you will have to ensure you have rubygems creds locally.
55
56### Release the NPM
57
581. `npm adduser` to save your credentials locally
591. `npm publish .` to publish what's in `package.json`
60
61### Release the docs
62
63Probably only need to do this when releasing a minor version, and not a patch version.
64
651. `cp -R edge ${version}` to copy the current edge docs to the new version
661. Add a link to the new version in `index.html`
67
68### Finally
69
701. Visit the [Releases page for Jasmine](https://github.com/jasmine/jasmine/releases), find the tag just pushed.
71 1. 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.
72 1. If it is a pre-release, mark it as such.
73 1. Attach the standalone zipfile
74
75
76There should be a post to Pivotal Labs blog and a tweet to that link.