mirror of
https://github.com/apple/pkl.git
synced 2026-03-28 20:01:55 +01:00
Created Release Process (markdown)
52
Release-Process.md
Normal file
52
Release-Process.md
Normal file
@@ -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/<new-version>-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/<current>.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/<next-version>.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
|
||||
Reference in New Issue
Block a user