ZDS
1. Push a new tag
Instructions
Tag the repo on the latest main:
git tag $VERSION --message=""
git push origin $VERSION
This will trigger the build-apps workflow to set the version, build & sign the apps, and generate release files.
The workflow should be listed right away in this list.
Paste that link to that GitHub Actions run below.
Workflow run: https://github.com/KittyCAD/modeling-app/actions/runs/30667797537
2. Manually test artifacts
Instructions
The release builds can be found under the out-{arch}-{platform} zip files, at the very bottom of the build-apps summary page for the workflow (triggered by the tag in step 1).
Assign someone to each section of the manual checklist.
3. Draft release notes
Instructions
Head over to https://github.com/KittyCAD/modeling-app/releases/new, pick the newly created tag and type it in the Release title field as well.
Click Generate release notes as a starting point to for the changelog. Paste and reword user-facing changes below, collaborating with the original PR authors.
## Added
* Add retry limits, status text and recovery UI for stalled Zookeeper conversations
* Diff preview to allow users to inspect why a modeling operation failed at a KCL code level
* Translate point-and-click support for helices
* "Duplicate Project" right-click menu action and commands
## Changed
* No idle mode while waiting on Zookeeper
* Ask user to pick a directory on local library creation
* Clear sketch selection after sketch tool completion
## Fixed
* Zookeeper selection references while prompting were badly mapped
* Improvements to sketch on face behavior
**Full Changelog**: https://github.com/KittyCAD/modeling-app/compare/v1.3.8...v1.3.9
4. Publish the release
Instructions
Paste the finalized release notes back to GitHub. Make sure Set as the latest release is checked, and click Publish release.
A new publish-apps-release workflow will start and you should be able to find it here. Paste that link below.
On success, the files will be uploaded to the public bucket as well as to the GitHub release, and the announcement on Discord will be sent.
Workflow run: https://github.com/KittyCAD/modeling-app/actions/runs/30671844399
Rollback instructions
If anything goes wrong during the deployment of the new release and it needs to be yanked (or rolled back),
the quickest way is to locate the previous release publish job and simply re-run it.
- Head to https://github.com/KittyCAD/modeling-app/actions/workflows/publish-apps.yml
- Click the previous
publish-apps job, eg. https://github.com/KittyCAD/modeling-app/actions/runs/22152987561
- Click Re-run all jobs and wait for success
- Confirm https://zoo.dev/design-studio/download shows the previous release
- Post a message in Discord #release announcing the release got yanked
- Mark the yanked release as Pre-release, eg. https://github.com/KittyCAD/modeling-app/releases/tag/v1.1.13
- If needed, create an announcement to communicate the urgency of the rollback to users.
KCL
Instructions
Follow the instructions here to publish new crates.
This ensures that the KCL accepted by the app is also accepted by the CLI.
Paste a link to the PR below.
Release PR: #12727
CLI
Instructions
Clone https://github.com/KittyCAD/cli and update its dependencies on kittycad-modeling-cmds, kcl-lib, kcl-derive-docs and kcl-test-server to the latest versions. Also bump the CLI's version under [package]. Open a PR and merge it to main.
After merging, run make tag and follow its instructions. This should publish a CLI release. Then open https://github.com/KittyCAD/homebrew-kittycad/pulls and merge the automatic PR to bump the release in Homebrew.
Paste a link to the PR below.
The above should generate a PR in https://github.com/KittyCAD/homebrew-kittycad/pulls. Merge it.
Release PR: KittyCAD/cli#1768
Homebrew KittyCAD PR: KittyCAD/homebrew-kittycad#102
API
Instructions
Clone https://github.com/KittyCAD/api and update its dependencies on kittycad-modeling-cmds and kcl-lib to the latest versions. Next, run just redo-openapi to make sure the OpenAPI spec gets generated from any types we might be exposing from these libs. Open a PR and merge it to main.
Paste a link to the PR below.
Release PR: https://github.com/KittyCAD/api/pull/4313
Zookeeper
Instructions
Merge the corresponding zoo-kcl Dependabot PR here. If none are present, click Check for updates here.
Paste a link to the PR below.
Release PR: https://github.com/KittyCAD/text-to-cad/pull/3949
Website
Instructions
Merge the latest documentation Dependabot PR here. If none are present, click Check for updates here.
Paste a link to the PR below or replace ??? with N/A.
Release PR: https://github.com/KittyCAD/website/pull/4453
ZDS
1. Push a new tag
Instructions
Tag the repo on the latest main:
This will trigger the
build-appsworkflow to set the version, build & sign the apps, and generate release files.The workflow should be listed right away in this list.
Paste that link to that GitHub Actions run below.
Workflow run: https://github.com/KittyCAD/modeling-app/actions/runs/30667797537
2. Manually test artifacts
Instructions
The release builds can be found under the
out-{arch}-{platform}zip files, at the very bottom of thebuild-appssummary page for the workflow (triggered by the tag in step 1).Assign someone to each section of the manual checklist.
Windows via @franknoirot
macOS via @franknoirot
Linux via @camerondix
3. Draft release notes
Instructions
Head over to https://github.com/KittyCAD/modeling-app/releases/new, pick the newly created tag and type it in the Release title field as well.
Click Generate release notes as a starting point to for the changelog. Paste and reword user-facing changes below, collaborating with the original PR authors.
4. Publish the release
Instructions
Paste the finalized release notes back to GitHub. Make sure Set as the latest release is checked, and click Publish release.
A new
publish-apps-releaseworkflow will start and you should be able to find it here. Paste that link below.On success, the files will be uploaded to the public bucket as well as to the GitHub release, and the announcement on Discord will be sent.
Workflow run: https://github.com/KittyCAD/modeling-app/actions/runs/30671844399
Rollback instructions
If anything goes wrong during the deployment of the new release and it needs to be yanked (or rolled back),
the quickest way is to locate the previous release publish job and simply re-run it.
publish-appsjob, eg. https://github.com/KittyCAD/modeling-app/actions/runs/22152987561KCL
Instructions
Follow the instructions here to publish new crates.
This ensures that the KCL accepted by the app is also accepted by the CLI.
Paste a link to the PR below.
Release PR: #12727
CLI
Instructions
Clone https://github.com/KittyCAD/cli and update its dependencies on
kittycad-modeling-cmds,kcl-lib,kcl-derive-docsandkcl-test-serverto the latest versions. Also bump the CLI's version under[package]. Open a PR and merge it to main.After merging, run
make tagand follow its instructions. This should publish a CLI release. Then open https://github.com/KittyCAD/homebrew-kittycad/pulls and merge the automatic PR to bump the release in Homebrew.Paste a link to the PR below.
The above should generate a PR in https://github.com/KittyCAD/homebrew-kittycad/pulls. Merge it.
Release PR: KittyCAD/cli#1768
Homebrew KittyCAD PR: KittyCAD/homebrew-kittycad#102
API
Instructions
Clone https://github.com/KittyCAD/api and update its dependencies on
kittycad-modeling-cmdsandkcl-libto the latest versions. Next, runjust redo-openapito make sure the OpenAPI spec gets generated from any types we might be exposing from these libs. Open a PR and merge it to main.Paste a link to the PR below.
Release PR: https://github.com/KittyCAD/api/pull/4313
Zookeeper
Instructions
Merge the corresponding
zoo-kclDependabot PR here. If none are present, click Check for updates here.Paste a link to the PR below.
Release PR: https://github.com/KittyCAD/text-to-cad/pull/3949
Website
Instructions
Merge the latest
documentationDependabot PR here. If none are present, click Check for updates here.Paste a link to the PR below or replace
???withN/A.Release PR: https://github.com/KittyCAD/website/pull/4453