hepo workflow (change in GOCART, part of the GEOSgcm fixture) #288
Pinned
pchakraborty
started this conversation in
Hierarchical mepo
Replies: 1 comment
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Important
Most
hepo
commands work as follows (withclone
being an exception)hepo command [OPTIONS] [repository [repository ...]]
Let’s consider a change in the GOCART repository, as part of the GEOSgcm fixture. The repository hierarchy looks like
with a registry file (
.hepo/registry.yaml
) in each of the 3 upstream repositories GEOSgcm, GEOgcm_GridComp and GEOSchem_GridComp. The workflow for a change in the GOCART repository would look likeCheckout some version of GEOSgcm
hepo clone
clones the GEOSgcm fixture and recursively clones all the sub-reposGOCART steps
Local
(Local) Step 1: Create branch in GOCART and its upstream repositories
In addition to creating this branch in GOCART and its upstream repositories,
checkout
also updates each of the upstream registries. For example, in GEOSchem_GridCompNote
If we are working on multiple repositories that are not part of the same hierarchical chain, e.g. GOCART and MAPL, we will need to explicitly specify both the repositories
This will create the branch
feature/<user>/gocart-mapl/some-change
in GOCART, MAPL and all their upstream repositories(Local) Step 2: Modify GOCART files and commit
Commit all changes to
feature/<user>/gocart/some-change
in GOCART and its upstream repositorieshepo commit -m "message" GOCART
(Local) Step 3: Push all changes
Push
feature/<user>/gocart/some-change
from GOCART and its upstream repositories to remoteNote
At this point all repositories should be consistent, both locally and on remote.
Remote - GitHub
(GitHub) Step 1: Pull request
Create PR for GOCART to merge
feature/<user>/gocart/some-change
intodevelop
.Note
This triggers automated testing
hepo clone -b feature/<user>/gocart/some-change [email protected]:GEOS-ESM/GEOSgcm.git
(GitHub) Step 2: Merge and issue v-tag
feature/<user>/gocart/some-change
intodevelop
.develop
to be merged in tomain
v78.14.1
)GEOSchem_GridComp steps
Local
Check out tag
v78.14.1
in the GOCART repository and update.hepo/registry.yaml
in the upstream registriesCaution
In case of a fresh clone, when the upstream repositories don't have
feature/<user>/gocart/some-branch
checked out, we need an extra stepCommit and push
hepo commit -m "message" GEOSchem_GridComp hepo push GEOSchem_GridComp
Remote - GitHub
(GitHub) Step 1: Pull request
Create PR for GEOSchem_GridComp to merge
feature/<user>/gocart/some-change
intodevelop
.(GitHub) Step 2: Merge and issue v-tag
feature/<user>/gocart/some-change
intodevelop
.develop
to be merged in tomain
v35.4.0
)GEOSgcm_GridComp steps
Local
Check out tag
v35.4.0
in the GEOSchem_GridComp repository and update.hepo/registry.yaml
in the upstream registries. Commit and pushRemote - GitHub
(GitHub) Step 1: Pull request
Create PR for GEOSgcm_GridComp to merge
feature/<user>/gocart/some-change
intodevelop
.(GitHub) Step 2: Merge and issue v-tag
feature/<user>/gocart/some-change
intodevelop
.develop
to be merged in tomain
v17.7.0
)GEOSgcm steps
Local
Check out tag
v17.7.0
in the GEOSgcm_GridComp repository and update.hepo/registry.yaml
in the upstream registries. Commit and pushRemote - GitHub
(GitHub) Step 1: Pull request
Create PR for GEOSgcm to merge
feature/<user>/gocart/some-change
intodevelop
.(GitHub) Step 2: Merge and issue v-tag
feature/<user>/gocart/some-change
intomain
.v13.4.0
)All done!
Beta Was this translation helpful? Give feedback.
All reactions