- 
                Notifications
    
You must be signed in to change notification settings  - Fork 338
 
Release Process
- 
CI main builds are green
 - 
If minor version:
- 
Update
docs/modules/release-notes/x.x.adocwith release notes - 
Submit PR targeting main branch and merge
 
 - 
 - 
If patch version
- 
Update
docs/modules/release-notes/pages/changelog.adocwith release notes - 
Update
docs/modules/release-notes/pages/x.x.adocwith latest patch version - 
Update
jbang-catalog.jsonwith latest patch version - 
Submit PR targeting
release/x.xbranch and merge 
 - 
 
- 
apple/pkl-lang.org
mainbranch (minor version), orrelease/x.x branch(patch version)- 
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)
 
 - 
 - 
Minor release:
- 
apple/pkl (main branch)
- 
gradle.properties: update
versionas necessary - 
docs/antora.yml: update
version(no suffix for release,-rc.nsuffix for RC) andprereleaseproperties (true→false) - 
docs/modules/ROOT/partials/component-attributes.adoc: update top two properties
 - 
pkl-core/src/main/java/org/pkl/core/runtime/VmLanguage.java: update
versionannotation attribute - 
jbang-catalog.json: update the version in the maven dependencies
 - 
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
 
 - 
 
 - 
 
 - 
 - 
Patch release:
- 
apple/pkl (release/x.x branch)
- 
gradle.properties: update
version - 
docs/antora.yml: update
version - 
docs/modules/ROOT/partials/component-attributes.adoc: update
pkl-version-no-suffix - 
pkl-core/src/main/java/org/pkl/core/runtime/VmLanguage.java: update
version - 
Update
minPklVersionin all stdlib modules, and rungw spotlessApply - 
Commit
"Prepare x.y.z release"and push to upstream 
 - 
 
 - 
 
- 
apple/pkl
- 
run
git tag -a x.y.z -m "Release version x.y.z" - 
push to upstream (
git push upstream refs/tags/x.y.z) and monitor build of pkl-lang/pkl.- 
(when releasing a minor version) create a branch, called
release/x.yfor the newly released versionx.yoff of the"Prepare x.y.z release"commit and push it - 
(when releasing a patch version) push the commit to the existing release/x.y branch
 - 
After build complete, do a quick manual check of https://pkl-lang.org/main/current
 
 - 
 
 - 
 - 
Wait until jars are available on Maven Central (takes about 5 minutes after CI build is complete)
- 
Trigger CI for pkl-package-docs again to build the stdlib docs
 - 
Manually upload jpkl as a GitHub Releases asset (we should really upload this as part of CI but still need to fix our release build)
- 
Download
pkl-cli-javafrom Maven Central, rename tojpkl - 
Edit the release, add
jpklas an asset 
 - 
 
 - 
 - 
apple/pkl-evolution
- 
Merge any SPICEs whose changes have landed.
 
 - 
 
- 
If new minor release:
- 
apple/pkl (main branch)
- 
docs/antora.yml: Update
version(use -dev suffix) andprereleaseproperties (false→true) - 
docs/modules/ROOT/partials/component-attributes.adoc: update top two properties
 
 - 
 - 
gradle.properties: set
versionto next dev version (do not use -dev or -SNAPSHOT suffix)- 
pkl-core/src/main/java/org/pkl/core/runtime/VmLanguage.java: update
versionannotation attribute (use-devsuffix) - 
stdlib/: update
minPklVersionof all stdlib modules (do not use-devsuffix) - 
changelog.adoc: add the next release version and date
 - 
create a new release notes file in docs/modules/release-notes/pages/<next-version>.adoc with the following contents:
= Pkl 0.XX Release Notes :version: 0.XX :version-minor: 0.XX.0 :release-date: TBD link:ROOT:partial$component-attributes.adoc[role=include] Pkl {version} was released on {release-date}. + [.small]#The latest bugfix release is {version-minor}. (xref:changelog.adoc[All Versions])# The next release (0.XX) is scheduled for ???.. To see what's coming in the future, follow the {uri-pkl-roadmap}[Pkl Roadmap]. Please send feedback and questions to https://github.com/apple/pkl/discussions[GitHub Discussions], or submit an issue on https://github.com/apple/pkl/issues/new[GitHub]. + [small]#Pkl is hosted on https://github.com/apple/pkl[GitHub]. To get started, follow xref:pkl-cli:index.adoc#installation[Installation].# == Highlights [small]#💖# News you don't want to miss. === XXX == Noteworthy [small]#🎶# Ready when you need them. === XXX == Breaking Changes [small]#💔# Things to watch out for when upgrading. === XXX == Miscellaneous [small]#🐸# * XXX == Bugs fixed [small]#🐜# The following bugs have been fixed. * XXX (https://github.com/apple/pkl/issues/XXX[XXX]) == Contributors [small]#🙏# We would like to thank the contributors to this release (in alphabetical order): * XXX - 
update
docs/nav.adocanddocs/modules/release-notes/pages/index.adocto 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 upstream
 
 - 
 - 
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
 - 
update Pkl version in pkl-jvm-examples
 
 - 
 - 
If new patch release
- 
apple/pkl (main branch)
- 
Cherry-pick commit that adds release notes for recently released patch to CHANGELOG
 - 
Submit PR and merge into
main 
 - 
 
 - 
 - 
Create announcement in https://github.com/apple/pkl/discussions/categories/announcements with the title
Pkl X.Y.Z is releasedand the following template: 
Pkl X.Y.Z is released! This is a bugfix release. For changes, take a look at our [release notes](https://pkl-lang.org/main/current/release-notes/changelog.html#release-X.Y.Z).