Raised as a non-blocking review observation on ucdavis/bcs#838.
bcs is piloting a data-dict.yaml data dictionary, with a check-data-dict workflow that runs data-dict validate-spec in CI. That workflow is currently hand-rolled in the consumer repo, unlike every comparable lightweight check there (check-non-standard-chars, check-typos, lint-workflows, news), which call Morrison-Lab/gha/.github/workflows/*.yml@v2.
That is deliberate for a pilot -- one consumer, a pre-1.0 tool (spec 0.1.0, CLI 0.0.3, breaking changes expected), and no reuse to justify the indirection yet. This issue tracks the graduation: if a second repo adopts a data dictionary, or the bcs pilot is judged a keeper, lift the job into gha as a reusable workflow.
The steps to lift, as they stand today in bcs:
actions/setup-python (digest-pinned), then pip install --user data-dict-yaml==<pinned>.
chmod +x "$(python3 -m site --user-base)/bin/data-dict" -- pip's install step drops the binary's execute bit (the wheel itself records 0755), so it fails with Permission denied otherwise.
- A
--version probe to fail fast, then data-dict validate-spec <path>.
Inputs a reusable version would want: the CLI version to pin, and the dictionary path (defaulting to data-dict.yaml). Only the spec level belongs in CI -- validate-meta/validate-data read the data.
Not urgent, and premature while there is one consumer.
Raised as a non-blocking review observation on ucdavis/bcs#838.
bcs is piloting a
data-dict.yamldata dictionary, with acheck-data-dictworkflow that runsdata-dict validate-specin CI. That workflow is currently hand-rolled in the consumer repo, unlike every comparable lightweight check there (check-non-standard-chars,check-typos,lint-workflows,news), which callMorrison-Lab/gha/.github/workflows/*.yml@v2.That is deliberate for a pilot -- one consumer, a pre-1.0 tool (spec 0.1.0, CLI 0.0.3, breaking changes expected), and no reuse to justify the indirection yet. This issue tracks the graduation: if a second repo adopts a data dictionary, or the bcs pilot is judged a keeper, lift the job into
ghaas a reusable workflow.The steps to lift, as they stand today in bcs:
actions/setup-python(digest-pinned), thenpip install --user data-dict-yaml==<pinned>.chmod +x "$(python3 -m site --user-base)/bin/data-dict"-- pip's install step drops the binary's execute bit (the wheel itself records 0755), so it fails with Permission denied otherwise.--versionprobe to fail fast, thendata-dict validate-spec <path>.Inputs a reusable version would want: the CLI version to pin, and the dictionary path (defaulting to
data-dict.yaml). Only the spec level belongs in CI --validate-meta/validate-dataread the data.Not urgent, and premature while there is one consumer.