Repository navigation
bind a release to the commit it was built from - #330
Conversation
build-release.ps1 built the binaries from the working tree but archived the local master ref, so the signed source zip need not match the signed binaries. * Refuse a dirty tree, archive HEAD, and ship a signed .manifest recording the commit and the artifact set. No origin/master check: that needs the network and forbids cutting a release from a tag or a release branch. * Both verifiers check the commit against the zip archive comment and the listed set against the files present. The hash and signature loops only see the files that are there, so an artifact deleted with its .sha512 and .asc passed before. * Everything the release writes gets LF, asserted in the tests. Set-Content writes CRLF on Windows, where a trailing CR breaks sha512sum on macOS and makes every manifest name compare unequal. Includes the .sha512 fix from #328; #328 gets rebased onto this. * sign-log4net-libraries.sh gains set -euo pipefail and shopt -s nullglob. An empty directory iterated the glob patterns and still exited 0. audit da18b6f-f025
7f7cd24 to
1ed2acb
Compare
build-release.ps1 built the binaries from the working tree but archived the local master ref, so the signed source zip need not match the signed binaries. * Refuse a dirty tree, archive HEAD, and ship a signed .manifest recording the commit and the artifact set. No origin/master check: that needs the network and forbids cutting a release from a tag or a release branch. * Both verifiers check the commit against the zip archive comment and the listed set against the files present. The hash and signature loops only see the files that are there, so an artifact deleted with its .sha512 and .asc passed before. * Everything the release writes gets LF, asserted in the tests. Set-Content writes CRLF on Windows, where a trailing CR breaks sha512sum on macOS and makes every manifest name compare unequal. Includes the .sha512 fix from #328; #328 gets rebased onto this. * sign-log4net-libraries.sh gains set -euo pipefail and shopt -s nullglob. An empty directory iterated the glob patterns and still exited 0. audit da18b6f-f025
|
Implementation plan for #330, kept here for the record. Revised after the merge so that it describes the change as it landed. PlanPR #330: bind a release to one commitContextf025 (LOW) of audit A second hole shows up while writing the verifier side: the hash and signature loops are driven One commit. Branch
The change
|
build-release.ps1 built the binaries from the working tree but archived the
local master ref, so the signed source zip need not match the signed binaries.
commit and the artifact set. No origin/master check: that needs the network
and forbids cutting a release from a tag or a release branch.
listed set against the files present. The hash and signature loops only see
the files that are there, so an artifact deleted with its .sha512 and .asc
passed before.
writes CRLF on Windows, where a trailing CR breaks sha512sum on macOS and
makes every manifest name compare unequal. Includes the .sha512 fix.
empty directory iterated the glob patterns and still exited 0.
audit da18b6f-f025