Skip to content

Add build tooling: portable git + git-lfs fork + release CI - #1

Closed
jochenhz wants to merge 2 commits into
mainfrom
feat/ap2-54-git-dist
Closed

Add build tooling: portable git + git-lfs fork + release CI#1
jochenhz wants to merge 2 commits into
mainfrom
feat/ap2-54-git-dist

Conversation

@jochenhz

@jochenhz jochenhz commented May 29, 2026

Copy link
Copy Markdown
Contributor

Scaffolds the build/publish side of git-dist.

What's here

  • build.py - builds portable Git (MinGit on Windows via the Git SDK, from source on macOS arm64/x64) and the Anchorpoint git-lfs fork, drops git-lfs into libexec/git-core/, patches the bundled gitconfig, optionally signs, packages git-<os>-<arch>.zip + .sha256 into dist/, and with --publish <tag> uploads them to a GitHub release. Config/env-driven (no interactive prompts).
  • third_party/git-lfs - submodule tracking the fork's ap-release-3.7 branch (e1e19100, git-lfs 3.7.1 Anchorpoint). Verified locally: go build reports git-lfs/3.7.1 (Anchorpoint; ...), and the tip adds --stdin include/exclude filters (the selective-fetch feature the app needs).
  • .github/workflows/ci.yml - compile-checks the git-lfs fork across targets + py_compile on build.py. No signing/publishing.
  • README, MIT license (+ NOTICE), config.example.ini.

Release model: local

Builds and signing run locally per platform - Windows code-signing uses a short-lived (~3h) token that can't live in CI. Each host runs build.py --package --publish v<gitver>.anchorpoint.<n> (GfW-style version) to add its archives to the shared release tag (create-or-clobber).

TODO before a real release (build host / secrets)

  • The anchorpoint MinGit flavor in the Windows Git SDK's build-extra - not in any repo; it comes from the build machine's git-sdk-64. This is the one blocker for a full Windows build.
  • macOS Developer ID cert + notarization creds; Windows signing token/script (used locally).
  • SUBMODULE_TOKEN (PAT, read access to the private fork) for the CI submodule clone.

Not tested end-to-end

The git-lfs fork builds and reports Anchorpoint 3.7.1 (verified locally). The full portable-Git build needs the Git SDK + flavor, not run here.

Consumer side (fetch + bundle + portable-git resolver in the app) is a follow-up.

jochenhz added 2 commits May 29, 2026 10:32
build.py builds a portable Git (MinGit on Windows, from-source on macOS)
and the Anchorpoint git-lfs fork, drops git-lfs into libexec/git-core/,
patches the bundled gitconfig, optionally signs, and packages per-OS
archives (git-<os>-<arch>.zip + .sha256) into dist/.

Config/env-driven (no interactive prompts) so it runs in CI. The fork is
wired as the third_party/git-lfs submodule. .github/workflows/release.yml
builds all targets on a v<gitver>-ap.<n> tag and publishes the archives as
release assets; signing/notarization and the anchorpoint MinGit flavor are
left as documented repo-secret TODOs.

Refs AP2-54.
@jochenhz

Copy link
Copy Markdown
Contributor Author

Integrated into main via fast-forward (commit 7fff80e) — GitHub's merge path got stuck on UNKNOWN mergeability after the force-pushes and wouldn't reopen, so this was merged directly. The exact commits are on main; closing as-is.

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.

1 participant