mirror of
https://github.com/coollabsio/coolify.git
synced 2026-10-28 09:34:36 +08:00
Sync main into next automatically and update release workflows and contributor docs for the long-lived next branch.
3.4 KiB
3.4 KiB
Coolify Release Guide
Branches
| Branch | Purpose |
|---|---|
main |
Latest production source |
next |
Feature integration and RC releases for the next version |
feature/* |
New features based on and merged into next |
hotfix/X.Y.Z |
Production fixes based on main |
next is the only long-lived development branch. Do not create release/v* branches.
Release workflows never edit or commit versions. Stable versions come from config/constants.php; RC versions come from coolify.nightly.version in versions.json and other/nightly/versions.json.
Where changes go
- Fixes, security updates, and small improvements target
main. - New features and larger changes target
next. - Sync main to next merges
mainintonextevery 10 minutes, so every production fix is included in the next release. If the merge conflicts, it opens achore: merge main into nextpull request to resolve. - Do not merge
nextintomainuntil an RC is approved for a stable release.
Feature and RC flow
feature/* → next → RC
- Merge feature branches into
next. - Set
coolify.nightly.versionin both version files to the intended RC, such as4.5-rc.1. - Every push to
nextruns Build Coolify Next. It publishessha-<short-sha>,4.5-rc.1.<short-sha>, and the movingnexttag. It never publishes the exact4.5-rc.1tag. - Create a reviewed draft GitHub Release named
v4.5-rc.1and mark it as a prerelease. - Run Release Coolify RC manually from
nextand enterv4.5-rc.1. - The workflow validates the draft and configured nightly version, builds the exact RC, publishes
4.5-rc.1, updates thenextimage tag, and publishes the draft prerelease. - Advance
coolify.nightly.versionto the next intended RC version.
Stable release flow
next → main → stable release
- Temporarily stop merging features into
next. - Change the version on
nextfrom the approved RC to the stable version, such as4.5.0. - Merge
nextintomain. - Create a reviewed draft GitHub Release named
v4.5.0. - Run the stable release workflow from
main. - The workflow rebuilds the exact stable version, publishes
4.5.0andlatest, then publishes the draft. - Update the CDN only after the release is approved.
- Advance
nextto the next development version, such as4.6-rc.1.
Hotfix flow
main → hotfix/X.Y.Z → main → next
- Create
hotfix/X.Y.Zfrommainwhen a patch needs an integration branch. A single fix may use a normal branch frommaininstead. - Set the intended patch version.
- Implement and test the fix. SHA images report
X.Y.Z-dev.<short-sha>. - Merge the fix into
main. - Create a reviewed draft GitHub Release named
vX.Y.Z. - Run the stable release workflow from
main. - Sync main to next merges
mainintonext. If the version conflicts, resolve it in favor of the next intended RC in the sync pull request. Delete the hotfix branch if one was used. - Update the CDN only after the release is approved.
Image tags
| Tag | Meaning |
|---|---|
latest |
Latest stable release |
next |
Latest successful next build or RC release |
X.Y-rc.N.<short-sha> |
Exact next commit build |
X.Y.Z |
Exact stable release |
X.Y-rc.N |
Exact RC release |
sha-<commit> |
Exact commit build |
Git tags use the v prefix, such as v4.5.0. Docker image tags do not.