Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

10.1. Contributing

This document covers the branching model, feature contribution workflow, and release process.

For roles, decision-making authority, and governance, see Governance.


Branching model

BranchPurpose
mainStable, released code only. Never committed to directly.
release-X.Y.ZOngoing development for an upcoming release. All features target this branch.
NNN-short-descriptionShort-lived feature branch. Branched from and merged back into the active release branch.

Contributing a feature

1. Sync the active release branch

git checkout release-0.1.1
git fetch
git pull origin release-0.1.1

2. Create a feature branch

Branch names follow the pattern NNN-short-description, where NNN is the issue number from the project tracker.

git checkout -b 43-fix-windows-startup release-0.1.1

3. Implement and push

git add scripts/run.bat
git commit -m "#43 fix dots in offending blocks on Windows"
git push origin 43-fix-windows-startup

4. Open a merge request

Open an MR from 43-fix-windows-startup into the active release branch (e.g. release-0.1.1) via the branch comparison page: click the green Create pull request button after selecting branches.


Release process

Releases are cut from the release branch into main by a maintainer.

Step 1. Merge the release branch into main

Open an MR from release-0.1.0 into main via the branch comparison page. After review, merge and run a smoke test.

Step 2. Publish to Maven Central

mvn clean verify
mvn clean deploy -Prelease-sign,central-publish -DskipTests

Step 3. Tag the release

git tag -a v0.1.0 -m "Juno-0.1.0"
git push origin --tags

Step 4. Create a GitHub Release

Create a new Release in the Git UI, attaching the version tag and a description of changes. Release notes live in Release notes.

Step 5. Prepare the next release branch

git checkout -b release-0.1.1 main
git push origin release-0.1.1

All subsequent feature branches target release-0.1.1 from this point forward.


<- 9.8 Disclaimer of Warranties  |  Table of Contents  |  10.2 Governance ->