This document outlines the process for creating a new release for Directory packages.
All code block examples below use version v1.3.0; update the version accordingly.
The Directory release is split into two phases:
- API module release: Go module tags only, no root tag and no artifacts.
- Server release: root tag, server module tags, images, Helm charts, CLI binaries, and GitHub Release.
Prepare the API module set release branch:
task release:create:api RELEASE_VERSION=v1.3.0This prepares only the api module set:
github.com/agntcy/dir/apigithub.com/agntcy/dir/clientgithub.com/agntcy/dir/utils
Open a pull request from the generated release branch, wait for approval, and merge it into main.
After the API release pull request is merged, update your local main branch:
git checkout main
git pull origin mainCreate and push only the API module tags:
git tag api/v1.3.0
git tag client/v1.3.0
git tag utils/v1.3.0
git push origin api/v1.3.0 client/v1.3.0 utils/v1.3.0Do not create the root v1.3.0 tag during this phase. Root tags trigger artifact releases.
After the API module tags are pushed, you can update API consumers with the new api, client, and utils tags and create releases for them.
Released API consumers:
This step is useful when those projects need to publish releases against the new API module versions before the Directory server release. The cli and server dependency updates can happen later in the server release preparation step.
Prepare the server module set release branch:
task release:create:server RELEASE_VERSION=v1.3.0This prepares only the server module set:
github.com/agntcy/dir/cligithub.com/agntcy/dir/testsgithub.com/agntcy/dir/servergithub.com/agntcy/dir/reconciler
If optional API consumer releases were created in step 2a, update the corresponding dependencies as well:
github.com/agntcy/dir-mcpgithub.com/agntcy/dir-importergithub.com/agntcy/dir-runtime
If the release preparation updates Go module versions, tidy the module files before pushing the release branch:
task deps:tidyOpen a pull request from the generated release branch, wait for approval, and merge it into main.
After the server release pull request is merged, update your local main branch:
git checkout main
git pull origin mainCreate and push the root release tag:
git tag -a v1.3.0
git push origin v1.3.0The root tag triggers the release workflow, which publishes:
- container images
- Helm charts
- CLI binaries
- draft GitHub Release
Please note that the release tag is not necessarily associated with the release preparation commit. For example, if bug fixes were required after this commit, they can be merged and included in the release.
- Wait until the release workflow completes successfully.
- Navigate to the Releases page and verify the draft release description and assets.
- Click
Editon the draft release, then clickPublish Release.
Publishing the root GitHub Release creates only the server-side module tags:
cli/v1.3.0tests/v1.3.0server/v1.3.0reconciler/v1.3.0
It does not re-tag api, client, or utils.