Publish the regenerated standard via a pull request - #130
Open
MichaelLeeHobbs wants to merge 1 commit into
Open
Conversation
The update-standard workflow regenerates standard/*.json every month and runs the test suite against it, but the step that lands the result was commented out because it committed directly to master. The workflow has therefore succeeded every month while discarding its own output, and the published JSON has not changed since rev2024b (2024-04-18). Replace the disabled publish step with peter-evans/create-pull-request so the regenerated data is proposed for review instead of pushed. This keeps the safety property that caused the original step to be disabled - nothing reaches master unreviewed - while allowing updates to land again. Also drop continue-on-error from the test job. It caused the workflow to report success even when a step failed, which hid the state this issue was reported about. Fixes innolitics#116
This was referenced Jul 25, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #116
The problem
The
update-standardworkflow is not failing any more — it succeeded in April, May, June and July 2026, with every step green includingtox.What is missing is the step that lands the result. It is commented out:
So each month the workflow downloads the current standard, regenerates
standard/*.json, verifies it against the test suite, uploads it as a build artifact — and discards it. The published JSON has not changed since rev2024b (2024-04-18).The change
Replace the disabled step with
peter-evans/create-pull-request, so regenerated data is proposed rather than pushed. This keeps the property that caused the original step to be disabled — nothing reachesmasterunreviewed — while letting updates land again. The step is gated ontoxpassing and on there being a real diff.Also removed
continue-on-error: truefrom the test job, which caused the workflow to report success even when a step failed.Scope is deliberately one file and one concern. The workflow also raises Node-20 deprecation warnings on
actions/checkout@v4,setup-python@v5and the artifact actions; those bumps are worth a separate PR.Tested end to end
Run on a fork with this change: https://github.com/MichaelLeeHobbs/dicom-standard/actions/runs/30175516319 — all steps green, including
Open pull request, which produced MichaelLeeHobbs#1.That PR contains exactly the 11
standard/*.jsonfiles and nothing else (add-pathsscopes the commit), andtoxpassed against the regenerated data before it was created.The diff is two years of accumulated updates: +651,911 / −479,771 lines across 11 files.
module_to_attributes.jsonmacro_to_attributes.jsonattributes.jsonciod_to_modules.jsonreferences.jsonconfidentiality_profile_attributes.jsonmodules.jsonciods.jsonciod_to_func_group_macros.jsonmacros.jsonsops.jsonRequired one-time repository setting
create-pull-requestusesGITHUB_TOKEN, which cannot open pull requests unless this is enabled:Confirmed necessary and sufficient during testing. Note the fork used for the test has the restrictive
Read repository contentsdefault, and the PR was still created — the job-levelpermissions:block in this workflow grants what is needed, so that default does not have to change.Without the setting the workflow will run and fail at the final step with "GitHub Actions is not permitted to create or approve pull requests." If you would rather not enable it, the alternative is to have the workflow push the branch and leave opening the PR to a human — happy to rework it that way.
What this closes
This closes #116 only. Merging a workflow change regenerates no data, so the stale-data issues stay open until the first automated data PR is merged.
I checked those against the regenerated output from the test run, and all three are resolved by it:
segmentation-image:00620001now readsEnumerated Values: BINARY, FRACTIONAL, LABELMAP. It currently ships with only BINARY and FRACTIONAL.subjective-refraction-measurements:0022000f, i.e. at macro root. It currently ships nested inside Prism Sequence (0046,0028) — the 2024b defect NEMA corrected in 2024c.confidentiality_profile_attributes.jsongoes from 621 to 656 rows, matching the 655 tag-bearing rows in the current Table E.1-1.I have deliberately not written
Fixesfor those three, since it would close them before the data they describe has actually changed. They should be closable immediately after the first data PR merges.One unrelated bug noticed while checking
The 656th row of
confidentiality_profile_attributes.jsonis spurious, in both the current and regenerated output:{"name": "Private Attributes", "tag": "(GGGG,EEEE) WHERE GGGG IS ODD", "id": "ggggeeee-where-gggg-is-odd"}It comes from slugifying the "(gggg,eeee) where gggg is odd" private-attribute line of Table E.1-1 as if it were a tag. Unrelated to this change and not fixed here — happy to send a separate PR if useful.