From a432be317b7b6542d74ae851a4be4cf8b81b1618 Mon Sep 17 00:00:00 2001 From: Daniel Chao Date: Tue, 23 Jan 2024 07:20:23 -0800 Subject: [PATCH] Created Release Process (markdown) --- Release-Process.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 Release-Process.md diff --git a/Release-Process.md b/Release-Process.md new file mode 100644 index 0000000..3c6fab5 --- /dev/null +++ b/Release-Process.md @@ -0,0 +1,52 @@ +== Prerequisites + +* CI main builds are green +* release notes and changelog update have been merged + +== Before Release + +. pkl-lang/pkl-lang.github.io (main branch) +.. run `gw validateLocalSite`. +... It's okay if there are errors like `Unexpected HTTP status code 404 for external link https://pkl-lang.org/pkl/-dev/...` because we do not publish docs for unreleased versions of Pkl. +.. do a quick manual check of the generated site (esp. the release notes) +. pkl-lang/pkl (main branch) +.. gradle.properties: update `version` as necessary +.. docs/antora.yml: update `version` (no suffix for release, `-rc.n` suffix for RC) and `prerelease` properties (`true` -> `false`) +.. docs/modules/ROOT/partials/component-attributes.adoc: update top two properties +.. docs/modules/release-notes/.adoc: update `:version-minor` as necessary +.. pkl-core/src/main/java/org/pkl/core/runtime/VmLanguage.java: update `version` annotation attribute +.. to be on the safe side, do a file search for latest dev version and replace as necessary +.. commit "Prepare x.y.z release" but do not push yet +... avoids issue where docs build fails because main branch and tag have same Antora component version + +== Perform/Validate Release + +. pkl-lang/pkl +.. run `git tag -a x.y.z -m "Release version x.y.z"` +.. push to origin (`git push origin refs/tags/x.y.z`) and wait for pkl-lang/pkl release build to finish +. pkl-lang/pkl-lang.github.io (main branch) +.. src/site-remote.yml: +... If new major version: add new tag +... If new patch version: update the tag name of the major version (e.g. 0.24.0 -> 0.24.1) +.. commit "Add x.y.z docs" and push to origin +.. once CI build is complete, do a quick manual check of https://pkl-lang.org/main/current +. pkl-lang/pkl-examples (main branch) +.. update Pkl version (search and replace) +.. make sure that `gw build` succeeds and push to origin +. send Slack and email announcements + +== After Release + +. pkl-lang/pkl (main branch) +.. docs/antora.yml: Update `version` (use -dev suffix) and `prerelease` properties (`false` -> `true`) +.. docs/modules/ROOT/partials/component-attributes.adoc: update top two properties +.. gradle.properties: set `version` to next dev version (do not use -dev or -SNAPSHOT suffix) +.. pkl-core/src/main/java/org/pkl/core/runtime/VmLanguage.java: update `version` annotation attribute (use `-dev` suffix) +.. stdlib/: update `minPklVersion` of all stdlib modules (do not use `-dev` suffix) +.. changelog.adoc: add the next release version and date +.. create a new release notes file in docs/modules/release-notes/pages/.adoc +.. update `docs/nav.adoc` and `docs/modules/release-notes/pages/index.adoc` to link to the next version +.. to be on the safe side, do a file search for current release version and replace as necessary +.. commit "Start next dev iteration", and push to origin +. release new versions of pkl-spring, and pkl-intellij (update to latest version of Pkl) +. release new versions of pkl-vscode, pkl-neovim if grammar has changed