Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| pub:development:release [25.09.2024 12:28] – ↷ Page moved from release to pub:development:release Predrag Tasevski | pub:development:release [19.05.2026 17:23] (current) – [Versioning Scheme] Predrag Tasevski | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Releasing ====== | ====== Releasing ====== | ||
| - | <WRAP warning> **Warring**\\ | + | <WRAP warning> |
| - | The content of this page is still in progress and needs some tweaking. </ | + | **Warning**\\ |
| + | This page is still in progress and may require refinement. | ||
| + | </ | ||
| + | |||
| + | ===== Versioning Scheme ===== | ||
| + | |||
| + | The Unicis Platform uses [[https:// | ||
| + | |||
| + | * 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 ===== | ===== Creating a Standard Release ===== | ||
| - | * Ensure a branch exists for the version | + | * Ensure a version |
| - | * Merge all the commits | + | * Example: |
| - | * If backporting commits to a non-current version branch, cherry-pick | + | * Merge all commits |
| - | * Push the branch, which will run the CI pipeline to make sure all tests pass | + | * For backports, cherry-pick commits |
| - | * Create/ | + | * Push the branch |
| + | * Update or generate | ||
| - | ====== For initial releases: ====== | + | ===== Initial Release (First Patch or Monthly Release) |
| - | * Copy '' | + | * Copy template: |
| - | * Fill in the section of '' | + | |
| - | * Run '' | + | |
| - | * Paste the list of commits since the previous release under the '' | + | |
| - | * Run '' | + | |
| - | * Sort the list of commits alphabetically and remove all commits that have little importance, like dependency updates and linting fixes | + | |
| - | * Run '' | + | |
| - | * Update '' | + | |
| - | * If the release notes are created in advance without a fixed date for the release, only add them to the sidebar once the release is published. | + | |
| - | * Run '' | + | |
| + | %%docs/ | ||
| - | ====== For subsequent releases: ====== | + | to: |
| - | * Paste the list of commits since the previous release into '' | + | |
| - | * Run '' | + | |
| - | * Run '' | + | |
| - | * Run '' | + | |
| - | * Run '' | + | |
| - | * Push the tag and commit | + | |
| - | * A GitHub actions workflow will start to run a last test in container images and create a draft release on GitHub | + | |
| - | * Edit the draft GitHub release | + | |
| - | * Make sure the title is formatted '' | + | |
| - | * Add the following to the release notes | + | |
| - | * See https:// | + | |
| - | * Or if creating a subsequent release | + | |
| - | * See https:// | + | |
| - | * Auto-generate the full release notes using the GitHub //Generate Release Notes// feature | + | |
| + | * 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 | ||
| - | ===== Preparing a Security Release | + | ===== Generate Commit List ===== |
| - | * Create a draft GitHub Security advisory | + | <code bash> |
| + | git log --pretty=format:' | ||
| + | </ | ||
| - | ++++ Template | + | * Replace %%version-2026-04%% with previous release branch/ |
| + | * Paste output into **Minor Changes / Fixes** | ||
| + | |||
| + | ===== Generate Changelog ===== | ||
| + | |||
| + | <code bash> | ||
| + | make gen-changelog | ||
| + | </ | ||
| + | |||
| + | * Use output from %%changelog.md%% | ||
| + | * Remove: | ||
| + | * Dependency-only PRs (unless security relevant) | ||
| + | * %%website/ | ||
| + | * Keep only meaningful changes | ||
| + | * Sort alphabetically if needed | ||
| + | |||
| + | ===== API Diff ===== | ||
| + | |||
| + | <code bash> | ||
| + | make gen-diff | ||
| + | </ | ||
| + | |||
| + | * Copy %%diff.md%% into **API Changes** | ||
| + | |||
| + | ===== Website Update ===== | ||
| + | |||
| + | * Update: | ||
| + | |||
| + | %%website/ | ||
| + | |||
| + | * Add new release entry under current version family | ||
| + | * Move oldest release into **Previous Versions** | ||
| + | |||
| + | <WRAP info> | ||
| + | If release notes are prepared before release date, do NOT publish them until release is confirmed. | ||
| + | </ | ||
| + | |||
| + | ===== Build Website ===== | ||
| + | |||
| + | <code bash> | ||
| + | make website | ||
| + | </ | ||
| + | |||
| + | ===== Subsequent Patch Releases ===== | ||
| + | |||
| + | For patch releases within the same CalVer month (e.g. %%v2026-05-01%%, | ||
| + | |||
| + | * Add a new section in: | ||
| + | |||
| + | %%docs/ | ||
| + | |||
| + | Example: | ||
| + | |||
| + | <code markdown> | ||
| + | ## Fixed in v2026-05-12 | ||
| + | </ | ||
| + | |||
| + | ===== Patch Release Steps ===== | ||
| + | |||
| + | * Add commit list under new patch section | ||
| + | * Run: | ||
| + | |||
| + | <code bash> | ||
| + | make gen-changelog | ||
| + | make gen-diff | ||
| + | </ | ||
| + | |||
| + | * Replace API Changes section | ||
| + | * Run: | ||
| + | |||
| + | <code bash> | ||
| + | make website | ||
| + | </ | ||
| + | |||
| + | ===== Version Tagging ===== | ||
| + | |||
| + | <code bash> | ||
| + | git tag v2026-05-12 | ||
| + | git push origin version-2026-05 | ||
| + | git push --tags | ||
| + | </ | ||
| + | |||
| + | Or: | ||
| + | |||
| + | <code bash> | ||
| + | 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 | ||
| + | |||
| + | < | ||
| ==== Summary ==== | ==== Summary ==== | ||
| Line 56: | Line 167: | ||
| ==== Patches ==== | ==== Patches ==== | ||
| - | unicis_platform x, y and z fix this issue, for other versions | + | Versions vYYYY-MM-DD |
| + | Workaround available | ||
| ==== Impact ==== | ==== Impact ==== | ||
| - | Describe | + | Describe impact |
| ==== Details ==== | ==== Details ==== | ||
| - | Further explain how the issue works | + | Technical explanation |
| ==== Workarounds ==== | ==== Workarounds ==== | ||
| - | Describe a workaround if possible | + | If applicable |
| - | ==== For more information | + | ==== Contact |
| - | If you have any questions or comments about this advisory: | + | Security team contact email |
| + | </ | ||
| - | * Email us at | + | ==== Security Branch Workflow ==== |
| - | ++++ | + | * Create branch: %%security/ |
| + | * Implement fix with unit tests | ||
| + | * Update release notes | ||
| + | * Create file: | ||
| - | * Request a CVE via the draft advisory | + | |
| - | * If possible, add the original reporter in the advisory | + | |
| - | * Implement a fix on a local branch '' | + | |
| - | * The fix must include unit tests to ensure the issue can’t happen again in the future | + | |
| - | * Update the release notes as specified above, making sure to address the CVE being fixed | + | |
| - | * Create a new file '' | + | |
| - | * Include the new file in the '' | + | |
| - | * Check with the original reporter that the fix works as intended | + | |
| - | * Wait for GitHub to assign a CVE | + | |
| - | * Announce the release of the vulnerability via Mailing list and discord | + | |
| - | ++++ Mailing list template” close | | + | * Add to: |
| - | Subject: '' | + | |
| - | We’ll be publishing a security Issue (CVE-2022-xxxxx) and accompanying fix on //date//, 13:00 UTC with the Severity level High. Fixed versions x, y and z will be released alongside a workaround for previous versions. For more info, see the authentik [[docs/ | + | ===== Security |
| - | ++++ | + | |
| - | ++++ Discord template | | + | On release date: |
| - | @everyone We’ll be publishing a security | + | * Merge security |
| - | ++++ | + | * Cherry-pick into version branch |
| + | * Run: | ||
| - | ===== Creating a Security Release ===== | + | <code bash> |
| + | bumpversion --new-version YYYY-MM-DD patch | ||
| + | </ | ||
| - | * On the date specified in the announcement, | + | * Publish |
| - | * If the fix made any changes to the API schema, merge the PR to update the web API client | + | |
| - | * Cherry-pick the merge commit onto the version branch | + | |
| - | * If the fix made any changes to the API schema, manually install the latest version of the API client in '' | + | |
| - | * Resume the instructions above, starting with the '' | + | |
| - | * After the release | + | |
| - | ++++ Mailing list template | | + | ===== Post-Release |
| - | Subject: '' | + | |
| - | The security advisory for CVE-2024-xxxxx has been published: https: | + | ==== Mailing List ==== |
| - | Releases 2022.10.3 and 2022.11.3 with fixes included are available here: https: | + | < |
| - | ++++ | + | Subject: Security Release vYYYY-MM-DD |
| - | ++++ Discord template | | + | We are publishing a security fix (CVE-YYYY-xxxx). |
| + | Affected versions: ... | ||
| + | Fixed version: vYYYY-MM-DD | ||
| - | […existing announcement…] | + | See: < |
| + | </ | ||
| - | Edit: | + | ==== Discord ==== |
| - | Advisory for for CVE-2022-xxxxx has been published here https:%%// | + | < |
| - | ++++ | + | @everyone Security release published: |
| + | Fixed version: vYYYY-MM-DD | ||
| + | Details: < | ||
| + | </code> | ||
| ===== Links ===== | ===== Links ===== | ||
| - | * [[https:// | + | * https:// |
| - | * [[https:// | + | * https:// |
| - | + | * [[https:// | |
| - | This guide includes the steps required for creating both standard and security releases, with specific references and links for the Unicis Platform Business and Community Editions. | + | |