canmove, Confirmed users
2,056
edits
(remove overview, which duplicates info on Development Process page) |
(add branch deletion and release tagging steps; simplify; make checklist up-to-date) |
||
| Line 1: | Line 1: | ||
This document describes the release process for Add-on SDK. Also see [[Labs/Jetpack/Process|Development Process]]. | This document describes the release process for Add-on SDK. Also see [[Labs/Jetpack/Process|Development Process]]. | ||
= | = Prepare = | ||
== Clone Checklist == | |||
Copy this checklist to a new wiki page at Labs/Jetpack/SDK/(version)/Release (f.e. [[Labs/Jetpack/SDK/1.0b2/Release]]) and use it to track the status of release tasks. | |||
= Prepare | {| class="fullwidth-table" | ||
|- style="background:#efefef" | |||
| '''Task''' | |||
| '''Owner''' | |||
| '''Status''' | |||
|- | |||
| Prepare | |||
| | |||
| | |||
|- | |||
| Clone Checklist | |||
| | |||
| | |||
|- | |||
| File Tracking Bugs | |||
| | |||
| | |||
|- | |||
| Freeze Tree | |||
| | |||
| | |||
|- | |||
| Notify Relevant Parties | |||
| | |||
| | |||
|- | |||
| Forum | |||
| | |||
| | |||
|- | |||
| Ambassadors | |||
| | |||
| | |||
|- | |||
| PR and Engagement | |||
| | |||
| | |||
|- | |||
| Product Planning | |||
| | |||
| | |||
|- | |||
| IT | |||
| | |||
| | |||
|- | |||
| Update Credits | |||
| | |||
| | |||
|- | |||
| Create Release Branch | |||
| | |||
| | |||
|- | |||
| Update Version Identifier | |||
| | |||
| | |||
|- | |||
| Build/Test Release Candidate(s) | |||
| | |||
| | |||
|- | |||
| Create Website Updates | |||
| | |||
| | |||
|- | |||
| Draft Release Announcement | |||
| | |||
| | |||
|- | |||
| Write Release Notes | |||
| | |||
| | |||
|- | |||
| Release | |||
| | |||
| | |||
|- | |||
| Bless Candidate | |||
| | |||
| | |||
|- | |||
| Update Website | |||
| | |||
| | |||
|- | |||
| Publish Release Announcement | |||
| | |||
| | |||
|- | |||
| Tag Release | |||
| | |||
| | |||
|- | |||
| Delete Release Branch | |||
| | |||
| | |||
|- | |||
| Notify Forum | |||
| | |||
| | |||
|- | |||
| Bask | |||
| | |||
| | |||
|- | |||
| Review | |||
| | |||
| | |||
|} | |||
== File Tracking Bugs == | == File Tracking Bugs == | ||
| Line 17: | Line 125: | ||
* [https://bugzilla.mozilla.org/enter_bug.cgi?bug_status=ASSIGNED&assigned_to=myk@mozilla.org&cc=dietrich%40mozilla.com&comment=This%20bug%20tracks%20code%20blockers%20for%20the%20Add-on%20SDK%20X.X%20release.%20%20Ping%20Myk%20or%20Dietrich%2C%20or%20comment%20here%20in%20this%20bug%2C%20to%20nominate%20a%20bug%20to%20block%20the%20release.&product=Add-on%20SDK&component=General&op_sys=All&priority=--&rep_platform=All&short_desc=X.X%20release%20blocker%20bugs code blockers bug template] | * [https://bugzilla.mozilla.org/enter_bug.cgi?bug_status=ASSIGNED&assigned_to=myk@mozilla.org&cc=dietrich%40mozilla.com&comment=This%20bug%20tracks%20code%20blockers%20for%20the%20Add-on%20SDK%20X.X%20release.%20%20Ping%20Myk%20or%20Dietrich%2C%20or%20comment%20here%20in%20this%20bug%2C%20to%20nominate%20a%20bug%20to%20block%20the%20release.&product=Add-on%20SDK&component=General&op_sys=All&priority=--&rep_platform=All&short_desc=X.X%20release%20blocker%20bugs code blockers bug template] | ||
* [https://bugzilla.mozilla.org/enter_bug.cgi?bug_file_loc=https%3A%2F%2Fwiki.mozilla.org%2FLabs%2FJetpack%2FSDK%2FX.X%2FRelease&bug_status=ASSIGNED&cc=dietrich%40mozilla.com&comment=We%20should%20release%20Add-on%20SDK%20X.X.%20%20Use%20this%20bug%20to%20track%20tasks%20that%20need%20to%20be%20done%20to%20release%20the%20product%2C%20like%20spinning%20candidate%20builds%20and%20publishing%20a%20blog%20post%20about%20it.%20%20Use%20bug%20(code%20blockers%20bug%20number)%20to%20track%20code%20blockers%20for%20the%20release.&product=Add-on%20SDK&component=General&op_sys=All&rep_platform=All&short_desc=release%20Add-on%20SDK%20X.X&assigned_to=myk@mozilla.org&dependson=(code%20blockers%20bug%20number) release bug template] | * [https://bugzilla.mozilla.org/enter_bug.cgi?bug_file_loc=https%3A%2F%2Fwiki.mozilla.org%2FLabs%2FJetpack%2FSDK%2FX.X%2FRelease&bug_status=ASSIGNED&cc=dietrich%40mozilla.com&comment=We%20should%20release%20Add-on%20SDK%20X.X.%20%20Use%20this%20bug%20to%20track%20tasks%20that%20need%20to%20be%20done%20to%20release%20the%20product%2C%20like%20spinning%20candidate%20builds%20and%20publishing%20a%20blog%20post%20about%20it.%20%20Use%20bug%20(code%20blockers%20bug%20number)%20to%20track%20code%20blockers%20for%20the%20release.&product=Add-on%20SDK&component=General&op_sys=All&rep_platform=All&short_desc=release%20Add-on%20SDK%20X.X&assigned_to=myk@mozilla.org&dependson=(code%20blockers%20bug%20number) release bug template] | ||
== Freeze Tree == | |||
Freezing is easy. Just notify Jetpack code contributors that development has been frozen via a post to the forum. The post should specify that the only changes that can be committed to the repository until it thaws are release blockers and low risk fixes that have been approved by the release drivers. | |||
Kill two birds with one stone! Use the post to notify the forum about the release, as specified in Prepare to Release > Notify Relevant Parties > Notify Forum below. | |||
== Notify Relevant Parties == | == Notify Relevant Parties == | ||
| Line 34: | Line 149: | ||
Notify them again if anything changes (f.e. the release date). | Notify them again if anything changes (f.e. the release date). | ||
=== Product | === Product Planning === | ||
Notify the product delivery team about the release by adding a summary of its goals, status of the release candidates, and tentative release date to the [[Firefox/DeliveryMeetings|weekly meeting]] notes. Attend the weekly meeting and talk about the release. | Notify the product delivery team about the release by adding a summary of its goals, status of the release candidates, and tentative release date to the [[Firefox/DeliveryMeetings|weekly meeting]] notes. Attend the weekly meeting and talk about the release. | ||
| Line 53: | Line 168: | ||
Update the Credits page at static-files/md/dev-guide/credits.md to include the names of folks who have contributed to the project since the last release. | Update the Credits page at static-files/md/dev-guide/credits.md to include the names of folks who have contributed to the project since the last release. | ||
== Create Release Branch == | |||
Create a branch in the repository called branch-(version) (f.e. branch-1.0b1): | |||
git clone git@github.com:mozilla/addon-sdk.git | |||
cd addon-sdk | |||
git checkout -b branch-1.0b1 | |||
git push origin branch-1.0b1 | |||
== Update Version Identifier == | |||
Update all references in the code to the version of the product so they reflect the version to be released. | |||
== Build/Test Release Candidate(s) == | == Build/Test Release Candidate(s) == | ||
| Line 63: | Line 191: | ||
cd addon-sdk | cd addon-sdk | ||
Change to the release branch: | |||
git checkout branch-1.0b1 | git checkout branch-1.0b1 | ||
| Line 85: | Line 207: | ||
git tag 1.0b1rc1 branch-1.0b1 | git tag 1.0b1rc1 branch-1.0b1 | ||
Push the | Push the tag to the canonical repository: | ||
git push origin | git push origin 1.0b1rc1 | ||
Push the archives to the staging server: | Push the archives to the staging server: | ||
| Line 104: | Line 226: | ||
An additional criteria for build quality is approval of the documentation. The documentation lead, or a Jetpack driver, must sign off on the documentation for a given release candidate to be approved for final release. | An additional criteria for build quality is approval of the documentation. The documentation lead, or a Jetpack driver, must sign off on the documentation for a given release candidate to be approved for final release. | ||
== Create | == Create Website Updates == | ||
The [https://jetpack.mozillalabs.com/ Jetpack website] lives at jetpack.mozillalabs.com. Much of its content is release-neutral. For example, links to SDK documentation point to a "latest" redirect that takes you to the latest release version of the docs. And buttons/links to download the SDK packages point to "latest" symlinks that link to the latest release packages. | The [https://jetpack.mozillalabs.com/ Jetpack website] lives at jetpack.mozillalabs.com. Much of its content is release-neutral. For example, links to SDK documentation point to a "latest" redirect that takes you to the latest release version of the docs. And buttons/links to download the SDK packages point to "latest" symlinks that link to the latest release packages. | ||
| Line 114: | Line 234: | ||
To update the website, clone its code from the [https://hg.mozilla.org/labs/jetpack/ old Jetpack Prototype repository] (the code lives in the [https://hg.mozilla.org/labs/jetpack/file/tip/website website subdirectory]), change the code as needed, test your changes by loading your local working copy of the code in your browser, commit your changes, tag the changeset with the "website-production" tag (you'll need to specify <tt>-f</tt> to force Mercurial to update the existing tag), and push your changes back to the central repository. | To update the website, clone its code from the [https://hg.mozilla.org/labs/jetpack/ old Jetpack Prototype repository] (the code lives in the [https://hg.mozilla.org/labs/jetpack/file/tip/website website subdirectory]), change the code as needed, test your changes by loading your local working copy of the code in your browser, commit your changes, tag the changeset with the "website-production" tag (you'll need to specify <tt>-f</tt> to force Mercurial to update the existing tag), and push your changes back to the central repository. | ||
== Draft Release Announcement == | |||
Draft a blog post for the [http://blog.mozilla.com/addons/ Add-ons Blog] to announce the release. | Draft a blog post for the [http://blog.mozilla.com/addons/ Add-ons Blog] to announce the release. | ||
| Line 124: | Line 244: | ||
{{note|don't publish the post in this step. That should happen in the Release step.}} | {{note|don't publish the post in this step. That should happen in the Release step.}} | ||
== Write Release Notes == | |||
Release notes live on the wiki at /Labs/Jetpack/SDK/Release_Notes/[VERSION] (e.g. /Labs/Jetpack/SDK/Release_Notes/0.2). Create a page for the release notes, using the previous release's notes as a template, and include important information about the release in the notes. Mention the issues raised/addressed in each resolved bug that was fixed in the release and has been tagged with the relnote keyword. Also mention issues in each unresolved bug tagged with the relnote keyword. | Release notes live on the wiki at /Labs/Jetpack/SDK/Release_Notes/[VERSION] (e.g. /Labs/Jetpack/SDK/Release_Notes/0.2). Create a page for the release notes, using the previous release's notes as a template, and include important information about the release in the notes. Mention the issues raised/addressed in each resolved bug that was fixed in the release and has been tagged with the relnote keyword. Also mention issues in each unresolved bug tagged with the relnote keyword. | ||
= Thaw | == Thaw Tree == | ||
Clone the canonical repository and enter its working directory: | Clone the canonical repository and enter its working directory: | ||
| Line 169: | Line 289: | ||
In the bug you filed earlier about pushing the website changes to production, comment that now is the time to do the work and wait for its assignee to do it. | In the bug you filed earlier about pushing the website changes to production, comment that now is the time to do the work and wait for its assignee to do it. | ||
== Publish | == Publish Release Announcement == | ||
Access the Add-ons blog's Wordpress admin page and go to Posts. Publish the post you previously drafted. | Access the Add-ons blog's Wordpress admin page and go to Posts. Publish the post you previously drafted. | ||
{{note|changes to the blog can take several hours to show up on the site because of server-side caching. To check that the post has been published, add "?[some unique string]" to the end of the URL, which bypasses the cache.}} | {{note|changes to the blog can take several hours to show up on the site because of server-side caching. To check that the post has been published, add "?[some unique string]" to the end of the URL, which bypasses the cache.}} | ||
== Tag Release == | |||
Clone the canonical repository and enter its working directory: | |||
git clone git@github.com:mozilla/addon-sdk.git | |||
cd addon-sdk | |||
Change to the release branch: | |||
git checkout branch-1.0b1 | |||
Tag the repository with the final version: | |||
git tag 1.0b1 branch-1.0b1 | |||
Push the tag to the canonical repository: | |||
git push origin 1.0b1 | |||
== Delete Release Branch == | |||
Clone the canonical repository and enter its working directory: | |||
git clone git@github.com:mozilla/addon-sdk.git | |||
cd addon-sdk | |||
Delete the release branch: | |||
git branch -d branch-1.0b1 | |||
Push the change to the canonical repository: | |||
git push origin branch-1.0b1 | |||
== Notify Forum == | == Notify Forum == | ||
| Line 179: | Line 333: | ||
Notify the discussion forum about the release. | Notify the discussion forum about the release. | ||
= | = Bask = | ||
Bask in the glow of the latest and greatest release. | |||
For minor releases (every month): | For minor releases (every month): | ||
* physically high-five or fist jab local | * physically high-five or fist-jab local contributors; | ||
* virtually high-five or fist jab remote | * virtually high-five or fist-jab remote contributors. | ||
For major milestones (every 6-9 months): | For major milestones (every 6-9 months): | ||
* do everything you do for minor releases; | * do everything you do for minor releases; | ||
* celebrate over dinner/drinks with local | * celebrate over dinner/drinks with local contributors; | ||
* celebrate over the internet with remote | * celebrate over the internet with remote contributors. | ||
= Review | = Review = | ||
After every release, it's useful to review the process described here and update it as appropriate. This can take the form of a formal post mortem, solicitation of feedback in the regular weekly meeting, or individual review by folks who were involved in the release. | After every release, it's useful to review the process described here and update it as appropriate. This can take the form of a formal post mortem, solicitation of feedback in the regular weekly meeting, or individual review by folks who were involved in the release. | ||