Path: blob/main/dev-docs/checklist-make-a-new-quarto-release.md
3544 views
ensure your git repo is up to date with
main
create a branch
v1.x
, where x is the version being releasedgit checkout -b v1.4
git push origin v1.4
mark the current release as the new release in the
main
branchedit QUARTO_VERSION line in
/configuration
to be the new version (e.g.1.5
)push the changes to the
main
branchkick 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.yml
from[rc,prelease]
to[prerelease,rc]
push the changes to the
main
branch
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
prerelease
branch:update the highlights files
create
docs/prerelease/1.5/{_highlights, index, _pre-release-feature}.qmd
files based on the ones from the previous releasechange
docs/prerelease/_highlights.qmd
so its include points to the new version-specific_highlights.qmd
file (here, 1.5)change
docs/prerelease/_highlights-release.qmd
so its include points to the new version-specific_highlights.qmd
file (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.R
to generate the release notes
push the changes to
prerelease
branch, ensure they build correctlyMerge the
prerelease
branch intomain
, push tomain
ensure the build completes successfully
Merge
main
intoprerelease
, push toprerelease
ensure the build completes successfully
Create new tag on
main
with 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
prerelease
version number (here,v1.5
)edit
_quarto-prerelease-docs.yml
to 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: true
line 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.txt
to 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 Release
optionOnce 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 Release
optionPublished to: https://pypi.org/project/quarto-cli/
Take a sip of tea ☕, bask in the glory of automation.
Others installers
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