Path: blob/main/dev-docs/checklist-make-a-new-quarto-release.md
6458 views
ensure your git repo is up to date with
maincreate a branch
v1.x, where x is the version being releasedgit checkout -b v1.4git push origin v1.4
mark the current release as the new release in the
mainbranchswitch your repo back to
main:git checkout mainedit QUARTO_VERSION line in
/configurationto be the new version (e.g.1.5)push the changes to the
mainbranchkick off a v1.5 build in GHA: https://github.com/quarto-dev/quarto-cli/actions/workflows/create-release.yml
ensure the build completes successfully
mark v1.4 release as stable
find the latest v1.4 release and edit, (eg https://github.com/quarto-dev/quarto-cli/releases/edit/v1.4.549)
at the bottom of the page, there will be two checkboxes, "Set as pre-release" and "Set as latest release":
"Set as pre-release" should be unchecked, and
"Set as latest release" should be checked.
once the v1.5 build completes, edit the quarto.org website configuration on https://github.com/quarto-dev/quarto-web to reflect the new version
this means flipping the profile group configuration in
_quarto.ymlfrom[rc,prelease]to[prerelease,rc]push the changes to the
mainbranch
quarto-dev/quarto-web changes
wait for the downloads file to be automatically updated by the GitHub Action on https://github.com/quarto-dev/quarto-web
wait for https://github.com/quarto-dev/quarto-web/actions/workflows/update-downloads.yml to run (it runs every 15 minutes, or you can manually trigger it)
This workflow run rendered the website: https://github.com/quarto-dev/quarto-web/actions/runs/12016407762
This workflow run did not: https://github.com/quarto-dev/quarto-web/actions/runs/12016128695
Ensure the run just triggered looks like the former
Ensure the header in https://quarto.org has the new version number in its 'generator' meta tag
Ensure the download links on https://quarto.org/docs/get-started/ and https://quarto.org/docs/download/ point to the stable and prerelease versions respectively
In the
prereleasebranch:update the highlights files
create
docs/prerelease/1.5/{_highlights, index, _pre-release-feature}.qmdfiles based on the ones from the previous releasechange
docs/prerelease/_highlights.qmdso its include points to the new version-specific_highlights.qmdfile (here, 1.5)change
docs/prerelease/_highlights-release.qmdso its include points to the new version-specific_highlights.qmdfile (here, 1.4)
add the stable version to the older downloads list by editing /docs/download/_download-older.yml
run
quarto run tools/release-notes.Rto generate the release notes
push the changes to
prereleasebranch, ensure they build correctlyMerge the
prereleasebranch intomain, push tomainensure the build completes successfully
Merge
mainintoprerelease, push toprereleaseensure the build completes successfully
Create new tag on
mainwith stable release version number (here,v1.4) to mark when the new main site version went livegit tag -a v1.4 -m "v1.4"git push origin v1.4
Update
prereleaseversion number (here,v1.5)edit
_quarto-prerelease-docs.ymlto point to the new version
publish the release blog post that should exist in https://github.com/quarto-dev/quarto-web/tree/main/docs/blog/posts
Create a branch off of
main(to trigger our PR automation to make the corresponding change toprerelease).Removing the
draft: trueline in the metadataChange the date to match the release date.
Update https://github.com/quarto-dev/quarto-cli/blob/main/CITATION.cff
Packaging and package managers, etc
chocolatey (Only once quarto.org download page is updated with the new release)
https://github.com/quarto-dev/quarto-release-bundles/actions/workflows/build-and-publish-choco.yaml
In "Build Choco package & Publish" workflow page, click "Run Workflow"
Check the "Whether to publish or not the package on chocolatey" checkbox
Wait for @cderv to receive email confirmation, no action needed
pypi
Go to the quarto-cli-pypi repo
Update
version.txtto be the version you'd like to publish and commitGo to actions
Select 'Publish Quarto PyPi'
Click "Run Workflow"
Publishing Test: You may elect to publish to test.pypi first by unchecking the
Production ReleaseoptionOnce complete, trest using
You may have to run this command twice as the first time may report the package not found and cause cache invalidation. The next try should succeed.
Published to: https://test.pypi.org/project/quarto-cli/
Publishing Production: You may elect to publish to production pypyi by checking the
Production ReleaseoptionPublished to: https://pypi.org/project/quarto-cli/
Take a sip of tea ☕, bask in the glory of automation.
Others installers
Cloudsmith: Automatically published by Build Installers workflow. No action needed.
See cloudsmith-publishing.md for manual republishing if needed.
conda-forge: An automated PR will be created to update the package version in the feedstock <github.com/conda-forge/quarto-feedstock>
This is community maintained, so no action is needed from us - except maybe helping if there are issues with the PR. We are assigned as reviewers to the PR.
Winget: An automated PR will be created by a winget bot in <github.com/microsoft/winget-pkgs/>.
This is community maintained, so no action is needed from us.
Scoop: This will be updated automatically in the manifests repo. No action is needed from us. Maintained as personal project by @cderv.
Homebrew: This is automated through an homebrew bot to update the cask https://github.com/Homebrew/homebrew-cask