Releasing
The project uses Semantic Versioning and Conventional Commits.
Complete these settings once in the backend GitHub repository:
- In
Settings → Actions → General → Workflow permissions, grant read/write access and allow GitHub Actions to create pull requests. The frontend repository only needs the default read-only Actions permission. - Keep squash merging enabled. The release workflow waits for required checks before merging the release pull request.
- Add
DOCKER_USERNAMEandDOCKER_PASSWORDActions secrets to the backend repository.
- Merge commits using Conventional Commit types such as
feat:andfix:into the default branch. - Release Please creates and merges the release pull request and updates
VERSIONand the changelog. - The workflow then creates
vX.Y.Z, a GitHub Release, and dispatches the production image build. - Releases publish
X.Y.Z,X.Y, andlatest; branches publishdevoredge-*images. - Each image build resolves the latest commit from both frontend default branches automatically.
Every fix:, feat:, or breaking change merged into the default branch therefore creates a Patch, Minor, or Major release automatically. Non-release commits such as docs: and chore: do not publish a release on their own.
The backend runtime version comes from VERSION. Container branch builds inject a commit-qualified development version through APP_VERSION; release tags must exactly match VERSION. OCI image labels record the resolved backend and frontend commits for traceability.
