Skip to content

Admin : Publishing Releases

Kenny edited this page May 15, 2022 · 20 revisions

How to Publish Releases

Preparation

** !!!!! Never publish from the direct branch of the MAJOR version !!!!! **

This project uses Lerna, which has automated revisioning and publishing.

  1. Create a 'release' branch from the major release branch. This is used for publishing only.
  2. Clone a new copy of the repository.
  3. Checkout the new 'release' branch.

Publishing

If necessary, clone the repository and checkout the 'release' branch.

Test the release:

  • git checkout release
  • git pull
  • npm install
  • npm run bootstrap
  • npm test
  • npm run test:tsd
  • npm run docs

If there are any issues then stop and fix those now.

Publish the release: (Automated so be 100% sure!)

  • npm login (permission to publish all NPM packages is required)
  • npm run publish
    • a list of version changes will be shown
    • verify that each version is as expected
    • answer 'y' to publish

If there are any surprises then stop and find out why.

Commit the release:

  • git diff origin/master
    • search for CHANGELOG, and save the notes to a text file
  • git push
  • git push --tags

Review and Merge the release:

  • Create a NEW PULL REQUEST from the 'release' branch
  • Review the NEW PULL REQUEST. only change logs and version bumps should be present
  • Get approve if all looks fine.
  • Merge the NEW PULL REQUEST to the trunk branch VERY VERY IMPORTANT, DO NOT SQUASH MERGE, USE NORMAL MERGE

Publish the release to JSCAD Website:

  • log into the production host as 'jscad'
  • sudo -u www-data bash
  • cd /var/www/openjscad.xyz/release
  • ./distribute.sh
  • Verify the changes were completed by accessing the website and the documentation

Post a notification to the User Group:

  • follow the contents of previous notices