-
Notifications
You must be signed in to change notification settings - Fork 20
Release Process
Sitaktif edited this page Nov 24, 2025
·
14 revisions
- CI main builds are green
- Update
pkl/private/constants.bzlwith the new pkl version and the new SHAs - Update
pkl/repositories.bzlwith the new default pkl version - Update
MODULE.bazelwith the new pkl version(s) - You can run
bazel run @rules_pkl_deps//:outdatedto check for outdate versions - Run
bazel run @unpinned_rules_pkl_deps//:pinandbazel run @unpinned_custom_pkl_java_library_maven_deps//:pinto update the maven lock file - Create a PR targeting
mainwith the messageAdd Pkl X.Y.Z and make it the default versionand merge - Bump rules_pkl version in
MODULE.bazelandREADME.md - Create a PR targeting
mainwith the messageBump module to X.Y.Zand merge - Wait for the
mainbuild to be green
- Create and merge a PR to update the version number in
MODULE.bazelandREADME.md - Create a tag on current
main:git tag -a vX.Y.Z -m "Release version vX.Y.Z" - Push to upstream (
git push upstream refs/tags/vX.Y.Z) - Create a draft release on github
- Make sure to click
Generate release notesto auto generate the contributors and changelog
- Make sure to click
- Copy and paste the following text and edit the release version
## Pkl Rules
[Pkl] is an embeddable configuration language with rich support for data templating and
validation. It can be used from the command line, integrated in a build pipeline, or embedded in a
program. Pkl scales from small to large, simple to complex, ad-hoc to repetitive configuration
tasks.
For further information about Pkl, check out the [official Pkl documentation].
[official Pkl documentation]: https://pkl-lang.org/main/current/index.html
[pkl]: https://pkl-lang.org
## Quick Start
### Setup
To use `rules_pkl`, enable `bzlmod` within your project, and then add the following to your `MODULE.bazel`:
```starlark
# Please check the releases page on GitHub for the latest released version
bazel_dep(name = "rules_pkl", version = "X.Y.Z")
```
## Examples
See the `examples/` directory for complete examples of how to use `rules_pkl`.
## Ruleset Docs
For further information on the rules provided, check out the [`rules_pkl` documentation].
[`rules_pkl` documentation]: https://github.com/apple/rules_pkl/blob/main/docs/rules_pkl_docs.md- Make sure that all PRs by people who are not on the team are mentioned.
- Bazel uses integrity hashes to ensure that the dependency requested is the dependency you get, but GitHub occasionally changes how auto-generated source archives are created. To avoid this, we create and upload our own source archive as an asset on the release. To do this run
./scripts/push-release-artifacts.sh X.Y.Z(notice there's novbefore the tag). You will need gh installed locally for this to work - In the GitHub UI, mark the release as the latest release
- Make sure you have the bcr repo up to date locally
- In the rules_pkl repo run
./scripts/prep-bcr-pr.sh <path_to_bcr_repo> <version>where<version>is the version being released, without thevprefix. - In the bcr repo run
git checkout -b release-rules-pkl
git add modules/rules_pkl
git commit -am "Release rules_pkl <version>"- Push this branch to your fork
- Create a PR in the bcr repo with the title
"rules_pkl@<version>" - Wait for it to be merged