-
Notifications
You must be signed in to change notification settings - Fork 5.3k
Release process
Make sure AUTHORS.txt is up-to-date. Run this to update the file:
grunt update-authors
Clone jquery-release, cd inside and run the script:
node release.js --remote=jquery/jquery-ui
Before pushing the tag, check a few files:
-
dist/cdn
, should have a regular and a min js file, along with all themes -
themes/
andui/
should have@VERSION
replaced - added or updated version property in
bower.json
andpackage.json
To test the release process (it changes all the time), run the script against a fork of jquery-ui. See the jquery-release documentation for full details.
If you screw up, and you even pushed the tag or the main
branch, delete the tag before anyone gets a chance to pull it and revert the main
commit.
For a pre-release, run node release --pre-release={version}
.
- The only CDN that gets updated is the jQuery CDN (automated).
- The first pre-release will require creating a new versioned site for
api.jqueryui.com
.- All pre-releases require updating the CDN version for the API demos.
- jqueryui.com will continue to run demos from the current stable version.
- Skip notifying other projects.
The release script generates a shell for the changelog along with a dump of all commits and closed tickets. Finalize the changelog, by looking for all remaining __TICKETREF__
entries, and either fixing the missing reference, deleting the placeholder but keeping the line, or deleting the entire line. Then add it to the jqueryui.com
repo:
- Add
page/changelog/{version}.md
. - Modify
page/changelog.md
to include a link to the new changelog.
If this is a major release, create an upgrade guide.
- Add
page/upgrade-guide/{version}.md
. - Modify
page/upgrade-guide.md
to include a link to the new upgrade guide.
- Create a milestone for the next release if one doesn't exist yet.
- If this is a stable release, close the relevant milestone on GitHub. Move any open issues/PRs in that milestone to a milestone for the next version.
- For stable versions: go to the Releases tab and create an entry for the release. It should be very simple, it should mostly link to the release blog post. See previous entries for a pattern.
Nothing to do here, all automated. Just check that the new release is on releases.jquery.com.
- Email Google and attach zip.
- Use CDN upload tool and email Microsoft.
- Update
config.json
to include the new version. Update the jQuery version if necessary. - Add/update
template/zip/index-*.html
to include any new widgets - Commit
- Run
npm version patch
andnpm publish
- Push
main
and the new tag to GitHub.
- Update changelog and upgrade guide (see above).
- Update homepage versions and links.
- Update version and supported browsers on browser-support page.
- Add pages for any new widgets (and add it to the demos index, if still necessary).
- Update
page/download/all.md
to include the new release. - Update package.json with new
download.jqueryui.com
version. npm install
- Add code and theme zips to
/resources/download/
- Run
grunt build-download create-quickdownload
(see #9743). - Then add the new zip files,
git add
them.
- Run
- Commit and push to GitHub.
- If necessary, create a new
x-x
branch. To get it deployed:- Add to
sites.php
injquery-wp-content
- Update
hieradata/common.yaml
ininfrastructure-puppet
, pushstaging
to GitHub
- Add to
- If available, merge the
x-x
branch with updates for the new version into master. - Update versions in other files: Search for the previous version number and update all references.
- Commit and push to GitHub.
- Update
themes/api.jqueryui.com/functions.php
to include the new version - If necessary, updated
sites.php
(see above) - Commit and push to GitHub.
If any of these fail, try ssh builder-01.ops.jquery.net
and look into /usr/local/wordpress-repos/
or /var/www/download.jqueryui.com
- Review everything on stage.
- If there was an
infrastructure-puppet
change, mergestaging
toproduction
. - Point the
deployed
branch to the previously created tag indownload.jqueryui.com
, push thedeployed
branch. - Tag
jqueryui.com
and push to GitHub. - Tag
api.jqueryui.com
and push to GitHub. - Tag
jquery-wp-content
and push to GitHub. - Verify results on live server.
See previous blog post for outline. Pick the right one for major/minor releases.
- Use the generated
contributors
file for the list of people to thank. Remove duplicates (mostly username vs full name). Use this to generated comma-separated list:
ruby -e 'puts File.read("contributors.txt").split("\n").join(", ")' | pbcopy
- Search for the previous version number and update all references.
- Reference the right upgrade guide and changelog.
- Update the narrative parts, usually the first paragraph.
- Save draft, check all links, have someone review it.
- Publish!
Look at previous release tweets for references. Don't get too creative.