-
Notifications
You must be signed in to change notification settings - Fork 1
Home
This is the ACCESS-NRI fork of the canonical MOM6 Ocean Model "mom-ocean". It is used for ACCCES3 models (currently ACCESS-OM3, see http://access-om3-configs.access-hive.org.au/ and https://github.com/accESS-NRI/access-om3-configs for details )
Authored: @chrisb13, @dougiesquire, @anton-seaice
This fork management process has been developed to enable ACCESS-NRI to be a MOM6 node whilst having flexibility to have releases that differ from the Mom-ocean repository. The aspiration is to stay as close to the MOM-ocean upstream as possible, contributing to development and always having a common parent with mom-ocean.
This fork follows a process of "rolling release branches". Local changes are accumulated in a release branch that is branched from mom-ocean:main. When new changes are wanted from upstream, a new release branch is created. Specifically:
-
When upstream changes are needed in ACCESS, a new release branch is created (named
YYYY.MM) that branches from the latestmom-ocean:main. This new branch becomes the default branch. -
If there are any local changes from the previous release that have not since been included upstream, these are re-applied onto the new release branch (usually via cherry-picking).
-
Additional local changes can be made to the current release branch via PRs from feature branches. Local changes that are candidates for inclusion upstream can be cherry picked into dedicated PR candidate branches (named
nri-to-main-YYYYMMDD). -
When there a new upstream changes that are needed in ACCESS, a new release branch is created (i.e. return to step 1). Release branches are never merged and are retained.
See below for specific guidance on tasks.
%%{init: { 'logLevel': 'debug', 'theme': 'base', 'gitGraph': {'showBranches': true, 'showCommitLabel':true,'mainBranchName': 'mom-ocean', 'mainBranchOrder': '50'}} }%%
gitGraph
checkout mom-ocean
commit
commit id: "B"
branch 2025.05 order: 10
checkout 2025.05
commit id: "D"
commit id: "E" type: HIGHLIGHT tag: "2025.05.001"
commit id: "F"
commit id: "G" type: HIGHLIGHT tag: "2025.05.002"
checkout mom-ocean
commit
branch "nri-to-main-20250702" order: 60
cherry-pick id: "F"
checkout mom-ocean
merge nri-to-main-20250702
commit id: "H"
branch 2025.08 order: 5
checkout 2025.08
cherry-pick id: "D"
checkout mom-ocean
commit
checkout 2025.08
cherry-pick id: "E"
checkout mom-ocean
commit
checkout 2025.08
cherry-pick id: "G"
checkout mom-ocean
commit
checkout 2025.08
commit id: "I" type: HIGHLIGHT tag: "2025.08.001"
- Sync the
upstream-mainbranch frommom-ocean/MOM6:main. Simply go to that branch on Github and click “Sync fork”. - Checkout a new release branch from
upstream-mainfollowing the naming conventionYYYY.MM, where YYYY and MM are the year and month of the latest commit onupstream-main. - Set the new release branch to the default branch. From Github, go to Settings → General and enter the new branch name under "Default branch".
- Cherry-pick any required changes from the previous release branch into the new release branch, resolving any conflicts. Changes that have been merged upstream since the last release branch obviously need not be cherry-picked.
This is similar to “Creating a new release branch”, with the following differences:
- The new branch should be created from the upstream PR branch and should be named
PR-test/<name-of-PR-branch> - The default branch should not be changed
- Create a feature branch from latest
mom-ocean/MOM6:mainwith the namenri-to-main-YYYYMMDD, where YYYY, MM and DD are the current year, month and day. - Make your changes in the feature branch, e.g. cherry-picking changes to go upstream from the release branch.
- Submit a PR to
mom-ocean/MOM6:main.