Skip to content

Prepare code signing with SignPath Foundation (off until set up) - #4

Merged
burnersen merged 1 commit into
mainfrom
claude/signpath-prep
Oct 31, 2026
Merged

burnersen merged 1 commit into
mainfrom
claude/signpath-prep

Conversation

@burnersen

Copy link
Copy Markdown
Owner

Prepares free code signing through the SignPath Foundation. Nothing changes for releases until it is switched on: without the variable SIGNPATH_ORGANIZATION_ID and the secret SIGNPATH_API_TOKEN the release workflow builds unsigned, exactly as before.

What changes

  • release.yml: signs in two rounds once switched on: first the four programs, then the installers built from the signed programs. Checksums are made last. Waits up to one hour for each approval in SignPath.
  • File properties: ntp-sync.exe and the installers now carry the same version text (1.2.3) as TimeSync.exe. Every release build checks product name and version, because SignPath only signs files that match.
  • Dry run: "Run workflow" with dry run ticked, and automatically for PRs that touch the release workflow, the installer or .signpath/. Builds and checks everything, publishes nothing.
  • CODE_SIGNING.md: code signing policy (roles, what gets signed, privacy policy), linked from the README and from every release text.
  • .signpath/: artifact configurations for SignPath, a file check script, and setup and removal instructions.

Before merging

CODE_SIGNING.md says all team members use 2FA on GitHub and SignPath. Please make sure that is true.

Test

This PR runs the release workflow as a dry run on Windows.


Generated by Claude Code

The release workflow can now sign with SignPath, but only once the
repository has the variable SIGNPATH_ORGANIZATION_ID and the secret
SIGNPATH_API_TOKEN. Without them it builds unsigned exactly as before.

- Programs are signed first, the installers are built from the signed
  programs and then signed themselves; checksums come last.
- Every release build checks product name and version of the files
  SignPath would sign; ntp-sync.exe and the installers now carry the same
  version text (1.2.3) as TimeSync.exe.
- Dry run: by hand (tick "dry run") and for pull requests that change
  the release workflow, the installer or .signpath/.
- CODE_SIGNING.md: code signing policy with roles and privacy policy,
  linked from the README and from every release text.
- .signpath/: artifact configurations, file check, setup and removal.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GvUq7HnA5ggbuHBogzS2rV
@burnersen
burnersen merged commit 569dd74 into main Oct 31, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants