-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
PR-Based Repro CI #122
PR-Based Repro CI #122
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @CodeGat
I will review properly next week. I guess we need to wait until the binary path is changed before merging.
Just confirming, dev- branches don't have any versioning right ? How does the checksum in dev- branches get update (i.e. its not !bump ) ?
Co-authored-by: Anton Steketee <[email protected]>
Correct. The checksum in |
Oh I see. We would like to compare and update checksums on PR into |
We don't have that functionality just yet, but we will as part of ACCESS-NRI/model-config-tests#38 once that's done |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A question/suggestion or two.
c6cc1d3
to
10b88ec
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. Just a question.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd prefer not to merge this until we have the location of the build resolved (the tests this change introduces would fail currently I think)
@anton-seaice under what circumstances would you not want to commit update docs? |
The most likely is that the docs have shown that something unrelated to the intended change has changed, that should be resolved in a way that is different to committing the docs. One example is if a model version changes the default settings, which would show up in the these docs |
Why wouldn't you want that reflected in the docs? Sure I can see if you didn't intend the change you'd want to a subsequent change to the config, but then when the docs are regenerated you'd be sweet. No? I can't see why you wouldn't always want the docs to exactly reflect the state of the config and the model (default config values). |
Maybe I misunderstood the question ... if the docs don't match the test fails non ? |
The docs are quantitatively different to a repro hash. I think you just want to make sure they're always up to date with the current config and build. In which case no test is necessary. Just always pull them back and commit them. |
Does the workflow cause a failure at this line? access-om3-configs/.github/workflows/ci.yml Lines 76 to 79 in 4f0559f
Then the developer can decide how to fix it ... update the docs or change the config |
Yes it does, because that was the requested behaviour (I assume). But my point is that it doesn't matter if an unwanted change in the docs is committed to the repo. Change the config and push and the PR will update, and update the docs. It makes the CI significantly simpler if we just assume all changes to the docs are committed. |
It matters in the sense that the proponent of the change has not confirmed that they intended the change to do something which changes the docs, and therefore could slip by unnoticed. |
Co-authored-by: Andrew Kiss <[email protected]>
@CodeGat and I had a chat about this today and we think this can be covered by the existing It means that the docs are updated when the version is updated, but it requires no specific intervention by the developer. This is a good thing: the docs won't get out of date, they will always reflect the current state of the model and the config, but there is no requirement for the developer to do anything to make that happen. |
Co-authored-by: Andrew Kiss <[email protected]>
I understand your point about having docs always synced, but the crucial thing is that the developer gets notified when the docs change, because it may alert them to an unintended configuration change. Will that happen with your proposed approach @aidanheerdegen? i.e. is The scenario we're trying to avoid is an exe update with a change in defaults producing an unwanted change to the parameters seen by the model. See discussion here COSIMA/access-om3#117 |
Yes, a
In the current solution we add a comment noting that the docs have changed - this can be modified slightly to remove the "Comment |
You only need to !bump to merge into |
I'm still working on the PR-based-repro on |
An unintended configuration change should also produce a change in bitwise reproducibility right? If not, then the change is side-effect free, e.g. a formatting change in the doc output. As @CodeGat said yes a
If this is something you always want to be alerted to then git hooks might be a good approach: always warn when docs have been updated before committing them. |
Hey PR-followers, I'm going to split this PR into three different ones to help get parts of it merged that are fairly set in stone. Will link the relevant PRs here, but it will be basically:
|
* Added workflow for validation of `config/ci.json` * Added base PR workflow for configurations * Updated README.md and CONTRIBUTING.md from #122 * Update .github/workflows/ci.yml Co-authored-by: Anton Steketee <[email protected]> * Apply suggestions from code review Co-authored-by: Anton Steketee <[email protected]> * Quoted sequence starting with '*' * Generalised the steps for configs stored in another repo * Apply suggestions from code review Co-authored-by: Anton Steketee <[email protected]> --------- Co-authored-by: Anton Steketee <[email protected]>
This PR adds PR-based repro CI for
access-om3-configs
.In this PR:
access-om3-configs
-specific logic for committing changes todocs/
Repo Settings Modified:
Gadi
GitHub Environmentsecrets.GH_FORCE_PUSH_TOKEN
,secrets.GH_COMMIT_CHECK_TOKEN
Closes #120