43 lines
2.4 KiB
Markdown
43 lines
2.4 KiB
Markdown
|
# How to work on a Jasmine Release
|
||
|
|
||
|
## Development
|
||
|
___Jasmine Core Maintainers Only___
|
||
|
|
||
|
Follow the instructions in `Contribute.markdown` during development.
|
||
|
|
||
|
### Git Rules
|
||
|
|
||
|
Please work on feature branches.
|
||
|
|
||
|
Please 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), please squash them when merging back to `master`.
|
||
|
|
||
|
### 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 `src/version.json`. This file should be set to the version that is _currently_ under development. That is, if version 1.0.0 is the current release then version should be incremented say, to 1.1.0.
|
||
|
|
||
|
This version is used by both `jasmine.js` and the `jasmine-core` Ruby gem.
|
||
|
|
||
|
Note that Jasmine should *not* use the "patch" version number. Let downstream projects rev their patch versions as needed, keeping their major and minor version numbers in sync with Jasmine core.
|
||
|
|
||
|
### Update the Github Pages (as needed)
|
||
|
|
||
|
Github pages have to exist in a branch called `gh-pages` in order for their app to serve them. This repo adds that branch as a submodule under the `pages` directory. This is a bit of a hack, but it allows us to work with the pages and the source at the same time and with one set of rake tasks.
|
||
|
|
||
|
If you want to submit changes to this repo and aren't a Pivotal Labs employee, you can fork and work in the `gh-pages` branch. You won't be able to edit the pages in the submodule off of master.
|
||
|
|
||
|
The pages are built with [Frank](https://github.com/blahed/frank). All the source for these pages live in the `pages/pages_source` directory.
|
||
|
|
||
|
## Release
|
||
|
|
||
|
When ready to release - specs are all green and the stories are done:
|
||
|
|
||
|
1. Update the version in `version.json` to a release candidate - add a `release_candidate` property with a value of 1
|
||
|
1. Update any comments on the public interfaces
|
||
|
1. Update any links or top-level landing page for the Github Pages
|
||
|
1. `thor jasmine_dev:release_prep` - updates the version, builds the `.js` files, builds the standalone release, and builds the Github pages
|
||
|
1. `rake release` - tags the repo with the version, builds the `jasmine-core` gem, pushes the gem to Rubygems.org
|
||
|
|
||
|
There should be a post to Pivotal Labs blog and a tweet to that link.
|