release.sh normalized entry order, ownership and mtimes, but not permissions, so the archives inherited the builder's umask. A host with umask 002 packaged 664/775 while ubuntu-latest packaged 644/755, and the two archives hashed differently even though every file inside was byte-identical: CI -rw-r--r-- README.md local -rw-rw-r-- README.md CI -rwxr-xr-x sshkeeper local -rwxrwxr-x sshkeeper Force 755 on directories and the program, 644 on everything else. Building the same commit under umask 002 and umask 022 now yields identical checksums. Also correct the reproducibility claim in the release docs. What is reproducible is the binary, given the same commit and Go version; the archive hash still depends on the host tar and gzip, so the documented verification step now compares the extracted binary instead. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| roadmap | ||
| screenshots | ||
| superpowers | ||
| guide.md | ||
| release.md | ||