mirror of
https://github.com/apple/pkl.git
synced 2026-08-31 07:57:20 +02:00
Created Release Process (markdown)
@@ -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