-
Notifications
You must be signed in to change notification settings - Fork 3.5k
Release Guide
Eli Bogomolny edited this page Apr 1, 2022
·
104 revisions
We release Cesium on the first work day of every month.
There is no release manager; instead, our community shares the responsibility. Any committer can create the release for a given month, and at any point, they can pass the responsibility to someone else, or someone else can ask for it. This spreads knowledge, avoids stratification, avoids a single point of failure, and is beautifully unstructured (more info).
Follow these instructions exactly. Do not switch branches or otherwise manipulate your local clone at any point in the process unless instructed to do so. If you need to switch branches for whatever reason, you must start the entire process over again.
- Verify there are no priority - next release issues or priority - next release pull requests.
- Verify there are no
remove in [this version number]
issues. Delete the label. Create a new label with the next highestremove in [version]
relative to the existing labels. - Make sure you are using the latest drivers for your video card.
- Pull down the latest main branch.
- Update the Cesium ion demo token in
Ion.js
with a new token from the CesiumJS ion account with read and geocode permissions. These tokens are named like this:1.85 Release - Delete on November 1st, 2021
. Delete the token from 2 releases ago. - Proofread CHANGES.md with the date of the release. Adjust the order of changes so that prominent/popular changes come first.
- Update the version in
package.json
to match, e.g.1.14.0
->1.15.0
. - Commit these changes.
- Make sure the repository is clean
git clean -d -x -f
. This will delete all files not already in the repository. - Run
npm install
. - Create the release zip
npm run makeZipFile
. - Build specs
npm run build-specs
. - Run tests against the release
npm run test -- --failTaskOnError --release
. Test in all browsers with the--browsers
flag (i.e.--browsers Firefox
). - Unpack the release zip to the directory of your choice and start the server by running
npm install
and thennpm start
- Browse to http://localhost:8080 and confirm that the home page loads as expected and all links work. Note that Sandcastle will not work in Edge (pre-Chromium version) or Internet Explorer 11.
- Verify that the documentation built correctly
- Make sure Hello World loads.
- Make sure Cesium Viewer loads.
- Run Sandcastle on the browser of your choice (or multiple browsers if you are up for it). Switch to the
All
tab and run through every demo to make sure they all work. Actually play with each of the buttons and sliders on each demo to ensure everything works as expected. - If any of the above steps fail, post a message to the
#cesiumjs
channel in slack to figure out what needs to be fixed before we can release. Do NOT proceed to the next step until issues are resolved. - Push your commits to main
git push
- Create and push a tag, e.g.,
git tag -a 1.1 -m "1.1 release"
-
git push origin 1.1
(this assumes origin is the primary cesium repository, do not usegit push --tags
as it pushes all tags from all remotes you have on your system.)
- Publish the release zip file to GitHub
- https://github.com/CesiumGS/cesium/releases/new
- Select the tag you use pushed
- Enter 'CesiumJS 1.xx' for the title
- Include date, list of highlights and link to CHANGES.md (https://github.com/CesiumGS/cesium/blob/1.xx/CHANGES.md) as the description
- Look at a previous release for an example. Don't use emoji, headings, or other formatting
- Attach the
Cesium-1.xx
release zip file - Publish the release
- Publish to npm by running
npm publish
in the repository root (not the unzipped file directory) (the first time you do this, you will need to authorize the machine usingnpm adduser
) - Check out the
cesium.com
branch. Merge the new release tag into thecesium.com
branch. CI will deploy the hosted release, Sandcastle, and the updated doc when you push the branch up. - After the
cesium.com
branch is live on cesium.com, comment in the#comms-chat
slack channel to notify comms that the release is done so they can add these highlights and publish the monthly blog post- Note, it may take a little while for the new version of CesiumJS to be live on cesium.com (~30 minutes after the branch builds). You can check the version of Cesium in sandcastle by looking at the tab above the cesium pane.
- Update the version of CesiumJS used in the Cesium Workshop: https://github.com/CesiumGS/cesium-workshop/blob/main/index.html#L13-L14
- Continue to the Cesium Analytics release