Skip to content

Release process

Michał Gołębiowski-Owczarek edited this page Aug 25, 2021 · 15 revisions

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 push the tag, check a few files:

  • dist/cdn, should have a regular and a min js file, along with all themes
  • themes/ and ui/ should have @VERSION replaced
  • added or updated version property in bower.json and package.json

Dry Run

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.

Fixing A Bad Release

If you screw up, and you even pushed the tag or master commit, delete the tag before anyone gets a chance to pull it and revert the master commit.

Pre-releases

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.

Create Changelog

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.

1.Add page/upgrade-guide/{version}.md. 2.Modify page/upgrade-guide.md to include a link to the new upgrade guide.

Update Trac

Set the release date for the new version.

Create a version for the next release if it doesn't exist yet.

Edit Trac homepage to link to reports for next version: http://bugs.jqueryui.com/wiki/WikiStart?action=edit

Update CDNs

jQuery CDN

Nothing to do here, all automated. Just check that the new release is on code.jquery.com.

Google CDN

1.Email Google and attach zip.

Microsoft CDN

1.Use CDN upload tool and email Microsoft.

download.jqueryui.com

1.Update config.json to include the new version. Update the jQuery version if necessary. 2.Add/update template/zip/index-*.html to include any new widgets 3.Commit 4.Run npm version patch and npm publish 5.Push master to GitHub (don't push the tag).

jqueryui.com

1.Update changelog and upgrade guide (see above). 2.Update homepage versions and links. 3.Update version and supported browsers on browser-support page 4.Add pages for any new widgets (and add it to the demos index, if still necessary) 5.Update page/download/all.md to include the new release 6.Update package.json with new download.jqueryui.com version 7.npm install 8.Add code and theme zips to /resources/download/

1.Run grunt build-download create-quickdownload (see #9743) 2.Then add the new zip files, git add them

10.Commit and push to GitHub.

api.jqueryui.com

1.If necessary, create a new x-x branch. To get it deployed:

1.Add to sites.php in jquery-wp-content 2.Update infrastructure manifests/nodes/builder.pp, push puppet-stage to GitHub 3.Run puppet on jq01 and jq02 stage to test, afterwards next commit will deploy content

3.If available, merge the x-x branch with updates for the new version into master. 4.Update versions in other files: Search for the previous version number and update all references. 5.Commit and push to GitHub.

jquery-wp-content

1.Update themes/api.jqueryui.com/functions.php to include the new version 2.If necessary, updated sites.php (see above) 3.Commit and push to GitHub.

Debugging

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

Finally

1.Review everything on stage. 2.If there was a infrastructure change, merge puppet-stage to puppet-master 3.Push the previously create tag for download.jqueryui.com to GitHub. 4.Tag jqueryui.com and push to GitHub. 5.Tag api.jqueryui.com and push to GitHub. 6.Tag jquery-wp-content and push to GitHub. 7.Verify results on live server.


Write Blog Post

See previous blog post for outline. Pick the right one for major/minor releases.

1.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 2. Search for the previous version number and update all references. 3. Reference the right upgrade guide and changelog. 4. Update the narrative parts, usually the first paragraph. 5. Save draft, check all links, have someone review it. 6. Publish!

Tweet about it

Look at previous release tweets for references. Don't get too creative.

Notify other projects to update

Clone this wiki locally