Add signed package installer scaffolding#1713
Conversation
|
Closed as stale because GitHub kept the old head branch name after the branch was renamed. The replacement PR from SK/signed-package-installers is #1714. |
| eprintln!(" debug Print support/debug diagnostics"); | ||
| eprintln!(" bg Run and control git-ai background service"); | ||
| eprintln!(" install-hooks Install git hooks for AI authorship tracking"); | ||
| eprintln!(" setup-package Complete per-user setup after a package-manager install"); |
There was a problem hiding this comment.
🟡 Help text shows install-hooks options under the wrong command
The new setup-package line is inserted between install-hooks and its sub-options (eprintln!(" setup-package ...") at src/commands/git_ai_handlers.rs:379), so --skills and --visual-studio-extension now visually appear as options of setup-package instead of install-hooks.
Impact: Users reading the help output will think --skills and --visual-studio-extension belong to setup-package (which actually rejects them as unknown options), rather than to install-hooks where they belong.
Help text ordering before and after the change
Before:
install-hooks Install git hooks for AI authorship tracking
--skills Also install agent skill files
--visual-studio-extension
Also install the Visual Studio extension on Windows
uninstall-hooks Remove git-ai hooks from all detected tools
After (broken):
install-hooks Install git hooks for AI authorship tracking
setup-package Complete per-user setup after a package-manager install
--skills Also install agent skill files
--visual-studio-extension
Also install the Visual Studio extension on Windows
uninstall-hooks Remove git-ai hooks from all detected tools
The indented --skills and --visual-studio-extension lines at src/commands/git_ai_handlers.rs:380-382 were originally directly below install-hooks (line 378). The new setup-package line (379) was inserted between them, breaking the visual grouping. If a user runs git-ai setup-package --skills, the parse_options function at src/commands/package_setup.rs:85-87 returns an error: "unknown setup-package option: --skills".
| eprintln!(" setup-package Complete per-user setup after a package-manager install"); | |
| eprintln!(" --skills Also install agent skill files"); | |
| eprintln!(" --visual-studio-extension"); | |
| eprintln!(" Also install the Visual Studio extension on Windows"); | |
| eprintln!(" setup-package Complete per-user setup after a package-manager install"); |
Was this helpful? React with 👍 or 👎 to provide feedback.
Summary
Adds the first signed/package-manager installer implementation pass:
git-ai setup-package --manager <msi|pkg|apt|brew>for conservative per-user setup after package-manager installsgit/git.exeshim installationgit-ai.rbThis intentionally starts fresh instead of continuing
#1322: new installers must not install Git shims or interceptgit.Secrets/vars needed before production release
Apple:
Developer ID ApplicationandDeveloper ID Installercertificates from a CSR..cerinto Keychain, export each cert+private key as.p12, then base64 encode it..p8.Settings -> Environments -> release -> Environment secrets:APPLE_DEVELOPER_ID_APPLICATION_P12_BASE64APPLE_DEVELOPER_ID_APPLICATION_P12_PASSWORDAPPLE_DEVELOPER_ID_APPLICATION_IDENTITY(Developer ID Application: ...)APPLE_DEVELOPER_ID_INSTALLER_P12_BASE64APPLE_DEVELOPER_ID_INSTALLER_P12_PASSWORDAPPLE_DEVELOPER_ID_INSTALLER_IDENTITY(Developer ID Installer: ...)APPLE_NOTARY_KEY_IDAPPLE_NOTARY_ISSUER_IDAPPLE_NOTARY_KEY_P8_BASE64Azure Artifact Signing:
releaseenvironment.Artifact Signing Certificate Profile Signeron the signing account/profile.Settings -> Environments -> release -> Environment secrets:AZURE_CLIENT_IDAZURE_TENANT_IDAZURE_SUBSCRIPTION_IDSettings -> Environments -> release -> Environment variables:AZURE_ARTIFACT_SIGNING_ENDPOINTAZURE_ARTIFACT_SIGNING_ACCOUNTAZURE_ARTIFACT_SIGNING_CERT_PROFILEQuarantine cleanup
This PR does not remove the macOS
xattr -d com.apple.quarantinefallback frominstall.sh. Remove it only after a production release with signed macOS binaries and signed/notarized PKGs has shipped and fresh install/upgrade paths are verified.Validation
cargo fmttask test TEST_FILTER=package_setup CARGO_TEST_ARGS="--lib"task buildbash -n packaging/debian/build-deb.sh packaging/macos/build-pkg.sh packaging/homebrew/update-formula.sh packaging/debian/postinst packaging/debian/prerm packaging/macos/scripts/postinstall packaging/macos/scripts/preinstallpython3/PyYAMLtarget/debug/git-aitask lintfixes PD-10
followup #1322