Summary
Several improvements to the canonical workflow files in this repo have been identified. This issue tracks all pending changes and serves as a running change log — each change made to a canonical file in this repo during the current work cycle will be recorded as a comment on this issue.
1. publish.yml — stale action versions and Node 16
publish.yml currently uses outdated action versions and an EOL Node.js runtime:
| Item |
Current |
Target |
actions/checkout |
@v3 |
@v4 |
actions/setup-node |
@v3 |
@v4 |
node-version |
16.x |
20.x |
Node.js 16 reached end-of-life in September 2023. actions/checkout@v4 and actions/setup-node@v4 have been available and stable since late 2023.
Note: Node 16 removal from node.js.yml is tracked separately in #63. This item covers publish.yml specifically.
Acceptance criteria:
2. package-rule.yml + package-rule-rc.yml — promote to reusable workflows
Every frmscoe rule repo (33 repos) plus tazama-lf/rule-901 and tazama-lf/rule-902 each carry their own full copy of these two files — 70 nearly-identical files maintained individually.
The right solution is to define these as reusable workflows with workflow_call inputs here in canonical, allowing each downstream repo to have a thin caller file instead of a full job definition.
Known issues with current copies to fix in the canonical form:
- Docker image tag is hardcoded as
3.0.0 in all copies — must be dynamic (derived from package.json or passed as a workflow input)
rule-002 has a more robust implementation (reads existing dependency version from rule-executer/package.json before overwriting) — adopt this pattern as canonical
Acceptance criteria:
Related
Summary
Several improvements to the canonical workflow files in this repo have been identified. This issue tracks all pending changes and serves as a running change log — each change made to a canonical file in this repo during the current work cycle will be recorded as a comment on this issue.
1.
publish.yml— stale action versions and Node 16publish.ymlcurrently uses outdated action versions and an EOL Node.js runtime:actions/checkout@v3@v4actions/setup-node@v3@v4node-version16.x20.xNode.js 16 reached end-of-life in September 2023.
actions/checkout@v4andactions/setup-node@v4have been available and stable since late 2023.Acceptance criteria:
publish.ymlusesactions/checkout@v4andactions/setup-node@v4publish.ymlusesnode-version: '20.x'(orlts/*)2.
package-rule.yml+package-rule-rc.yml— promote to reusable workflowsEvery frmscoe rule repo (33 repos) plus
tazama-lf/rule-901andtazama-lf/rule-902each carry their own full copy of these two files — 70 nearly-identical files maintained individually.The right solution is to define these as reusable workflows with
workflow_callinputs here in canonical, allowing each downstream repo to have a thin caller file instead of a full job definition.Known issues with current copies to fix in the canonical form:
3.0.0in all copies — must be dynamic (derived frompackage.jsonor passed as a workflow input)rule-002has a more robust implementation (reads existing dependency version fromrule-executer/package.jsonbefore overwriting) — adopt this pattern as canonicalAcceptance criteria:
package-rule.ymldefined as a reusableworkflow_callwithrule_numberinput (and optionallyimage_tag)package-rule-rc.ymlsame treatment3.0.0rule-002defensive pattern for dependency version checkingRelated
node.js.yml(parallel track)