====== Releasing ======
**Warning**\\
This page is still in progress and may require refinement.
===== Versioning Scheme =====
The Unicis Platform uses [[https://calver.org|Calendar Versioning (CalVer)]]:
* Major/Minor releases: %%vYYYY-MM%% (e.g. %%v2026-05%%)
* Patch releases: %%vYYYY-MM-DD%% (e.g. %%v2026-05-12%%)
Release branches follow:
* %%version-YYYY-MM%% (e.g. %%version-2026-05%%)
===== Creating a Standard Release =====
* Ensure a version branch exists for the release family
* Example: %%version-2026-05%% for %%v2026-05%%
* Merge all commits intended for release into the version branch
* For backports, cherry-pick commits into the relevant version branch
* Push the branch to trigger CI validation (tests must pass)
* Update or generate release notes
===== Initial Release (First Patch or Monthly Release) =====
* Copy template:
%%docs/platform/unicis-platform-changelog/_template.md%%
to:
%%docs/platform/unicis-platform-changelog/v2026-05.md%%
* Replace placeholders with correct CalVer version:
* xxxx.x → %%vYYYY-MM%% or %%vYYYY-MM-DD%%
* Fill in:
* Breaking Changes
* New Features
* Remove sections if not applicable
===== Generate Commit List =====
git log --pretty=format:'- %s' version-2026-04...version-2026-05
* Replace %%version-2026-04%% with previous release branch/tag
* Paste output into **Minor Changes / Fixes**
===== Generate Changelog =====
make gen-changelog
* Use output from %%changelog.md%%
* Remove:
* Dependency-only PRs (unless security relevant)
* %%website/%% prefixed commits
* Keep only meaningful changes
* Sort alphabetically if needed
===== API Diff =====
make gen-diff
* Copy %%diff.md%% into **API Changes**
===== Website Update =====
* Update:
%%website/sidebars.js%%
* Add new release entry under current version family
* Move oldest release into **Previous Versions**
If release notes are prepared before release date, do NOT publish them until release is confirmed.
===== Build Website =====
make website
===== Subsequent Patch Releases =====
For patch releases within the same CalVer month (e.g. %%v2026-05-01%%, %%v2026-05-12%%):
* Add a new section in:
%%docs/platform/unicis-platform-changelog/v2026-05.md%%
Example:
## Fixed in v2026-05-12
===== Patch Release Steps =====
* Add commit list under new patch section
* Run:
make gen-changelog
make gen-diff
* Replace API Changes section
* Run:
make website
===== Version Tagging =====
git tag v2026-05-12
git push origin version-2026-05
git push --tags
Or:
bumpversion --new-version 2026-05.12 patch --verbose
===== Release Publication =====
* GitHub Actions:
* Runs tests
* Builds container images
* Creates draft release
* Edit draft release:
* Title format: %%Release v2026-05-12%%
* Add changelog link
* Add GitHub release link
===== Security Release =====
==== Security Versioning ====
Security releases use:
* %%vYYYY-MM-DD%%
==== Security Advisory Template ====
==== Summary ====
Short summary of the issue
==== Patches ====
Versions vYYYY-MM-DD fix this issue.
Workaround available for older versions.
==== Impact ====
Describe impact
==== Details ====
Technical explanation
==== Workarounds ====
If applicable
==== Contact ====
Security team contact email
==== Security Branch Workflow ====
* Create branch: %%security/CVE-YYYY-xxxx%%
* Implement fix with unit tests
* Update release notes
* Create file:
%%/website/docs/security/CVE-YYYY-xxxx.md%%
* Add to:
%%website/sidebars.js%%
===== Security Release Process =====
On release date:
* Merge security PR
* Cherry-pick into version branch
* Run:
bumpversion --new-version YYYY-MM-DD patch
* Publish release
===== Post-Release Communication =====
==== Mailing List ====
Subject: Security Release vYYYY-MM-DD
We are publishing a security fix (CVE-YYYY-xxxx).
Affected versions: ...
Fixed version: vYYYY-MM-DD
See:
==== Discord ====
@everyone Security release published: CVE-YYYY-xxxx
Fixed version: vYYYY-MM-DD
Details:
===== Links =====
* https://github.com/UnicisTeh/unicis-platform-ce
* https://gitlab.com/unicis/unicis-platform
* [[https://calver.org|CalVer]]