Gaps in the release/CI pipeline (mostly [verified]).
commitlint.sh compares against master — scripts/commitlint.sh:7 runs npx commitlint --from=master, but the default branch is main, so it errors. Use origin/main or derive dynamically. [verified]
publish-npm.yml has no quality gate — .github/workflows/publish-npm.yml runs yarn install then npm publish with no build/test/smoke. A broken build can be published. Add needs: on the test workflow, or run build && test && test:smoke first. [verified]
- Smoke tests run in no CI workflow —
test:smoke exists in both packages but isn't gated anywhere (only dredd --version in the docker publish). Wire it in, especially given the rename just broke it. [verified]
- No
engines on root package.json and no .nvmrc — packages require node>=22; add both for local/CI consistency. [verified]
dredd-transactions/scripts/smoke.sh uses a hardcoded ~/test-temp path + bash shopt instead of mktemp like dredd/scripts/smoke.sh; fails in constrained CI. [verified]
Tasks
Gaps in the release/CI pipeline (mostly [verified]).
commitlint.shcompares againstmaster—scripts/commitlint.sh:7runsnpx commitlint --from=master, but the default branch ismain, so it errors. Useorigin/mainor derive dynamically. [verified]publish-npm.ymlhas no quality gate —.github/workflows/publish-npm.ymlrunsyarn installthennpm publishwith no build/test/smoke. A broken build can be published. Addneeds:on the test workflow, or runbuild && test && test:smokefirst. [verified]test:smokeexists in both packages but isn't gated anywhere (onlydredd --versionin the docker publish). Wire it in, especially given the rename just broke it. [verified]engineson rootpackage.jsonand no.nvmrc— packages requirenode>=22; add both for local/CI consistency. [verified]dredd-transactions/scripts/smoke.shuses a hardcoded~/test-temppath + bashshoptinstead ofmktemplikedredd/scripts/smoke.sh; fails in constrained CI. [verified]Tasks
commitlint.shto useorigin/main.publish-npm.ymlon passing build/test/smoke.run-test.yml).engines.node >=22and a.nvmrc.dredd-transactions/scripts/smoke.shusemktempand clean up on exit.