The person performing a release should post a message to the #richwidgets channel on irc.freenode.net.
Before starting any release steps, make sure the continuous integration builds pass and that all issues scheduled to particular version are resolved.
Issue Tracker:
-
RichWidgets issue tracker on GitHub
-
select appropriate milestone
-
Continous Integration builds:
-
Travis CI - master branch continuous integration
-
need to pass at 100%
-
-
CloudBees/SauceLabs - browser compatibility matrix
-
these jobs should pass on all supported browsers at 100% during candidate releases
-
they does not have to fully pass during alpha releases
-
-
Make sure all respected commits are committed in
master
branch. -
Diverge a branch
stage
from the latest commit onmaster
branch (this is a branch used for release testing) -
Change version of the project in
bower.json
andpackage.json
to release version (drop-wip
suffix) -
Build a distribution in
dist/
directory and add it to the repository usinggit add -f dist/
-
Push the
stage
branch upstream, making it available for release verification
At this point the release is prepared for testing by QE team.
What needs to be verified:
-
all tests pass on all supported browsers
Once the release pass QE criteria:
-
Create a tag from latest commit on a
stage
branch, call the tag by a release version: e.g.0.2
-
Push the tag to upstream repository
-
Remove
dist/
branch -
Change version of the project in
bower.json
andpackage.json
to development version (drop-wip
suffix) -
Merge
stage
branch (that includes the tag) tomaster
branch (so that it appears inmaster
branch history) -
Drop a
stage
branch
-
Create a Release in GitHub interface
-
Attach a built ZIP distribution (snapshot of tag sources that include built
dist/
)
Okay, I have updated the process so that it works with
stage
branch concept:most significantly, the release has two phases:
We work with
stage
branch separately fromdist
branch and we merge it back to master, in order release tag to appear inmaster
branch history.