-
Notifications
You must be signed in to change notification settings - Fork 64
Closed
Labels
capgen-unificationIssues/PRs necessary for capgen/prebuild unificationIssues/PRs necessary for capgen/prebuild unificationenhancement
Description
Summary
Now that feature/capgen has been merged into main, we have the opportunity (and perhaps necessity) to change the development cycle to:
- Speed up the development process;
- Ensure changes do not break UFS or CAM-SIMA (or any future host model who wants to use the framework and is willing to put in the resources to consistently test it); and
- Make the framework more accessible to other potential partners/users.
NCAR Wish List
- Tags for PRs merged into main and proposed development branch; this ensures that older versions of CAM-SIMA will be stable and new updates can be fully tested before being integrated.
- Some way to get quick bug fixes into the framework’s (proposed) development branch if necessary (possibly skirting the full UFS or CAM-SIMA testing cycle on occasion if deemed necessary)
- No long-lived branches dedicated to specific host applications, due to concerns that this may cause the framework to dis-unify as hosts add features that work for that particular host model but not the other CCPP-enabled host models.
Proposal
- New “development” branch that is merged into main on some regular schedule (during which time the full UFS, CAM-SIMA, etc. testing suite is run by the maintainers of those models)
- The development branch will still require unit tests and potentially a subset of host model regression tests to pass before accepting a PR, to ensure no major failure occurs while still allowing for a relatively rapid response to PRs.
- Framework development branch is tagged when minimal testing completed
- Host models may use development tags, but should be aware that full testing has not been completed
- Framework main branch is tagged when all host model and UFS testing completed
- Host model will use release tags whenever possible
“Regular” workflow:
- New framework feature developed (“feature/new” in diagram)
- feature/new merged into framework development branch (passed minimal testing)
- Tag (ccpp_dev_tag_3 in diagram) made for new feature on development branch
- Tag tested in host model development branch
- Testing identified bug; bugfix branch created for CCPP-framework
- Bugfix merged into framework development branch (passed minimal testing)
- Tag (ccpp_dev_tag_n in diagram) made for bugfix
- Bugfix tag tested in host model development branch
- Host model A testing passed
- Host model A can use "ccpp_dev_tag_n"
- Framework development merged into main after complete testing suite performed - NCAR and UFS testing (merged at regular cadence)
- Framework release tag made
- Host model release branch made
- End result: host model release branch points to framework release tag
Metadata
Metadata
Assignees
Labels
capgen-unificationIssues/PRs necessary for capgen/prebuild unificationIssues/PRs necessary for capgen/prebuild unificationenhancement