Skip to content

Comments

refactor(deps): replace git2 with gix to eliminate OpenSSL dependency#287

Open
loispostula wants to merge 1 commit intomainfrom
lp/remove-git2
Open

refactor(deps): replace git2 with gix to eliminate OpenSSL dependency#287
loispostula wants to merge 1 commit intomainfrom
lp/remove-git2

Conversation

@loispostula
Copy link
Member

Migrates from git2 (C bindings to libgit2 + vendored OpenSSL) to gix (pure Rust gitoxide) with git CLI fallbacks where gix API is limited. Removes openssl-sys and libgit2-sys from the dependency tree, eliminating C compilation of OpenSSL on CI.

Hybrid approach:

  • gix native: repo open, revparse, tree diffs, blob reading, find_reference
  • git CLI: SSH clone, describe --match, staged/unstaged diffs, test helpers

Also fixes flake.nix:

  • Disable devenv C language module (removes broken GDB build on Darwin)
  • Add libiconv to nativeBuildInputs for Darwin (fixes release linking)
  • Remove stale OpenSSL config from cross-compile setup
  • Use native build path when arch matches system in release target

@fslabs-bot
Copy link

fslabs-bot bot commented Feb 19, 2026

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please ask for approval from loispostula. For more information see the Kubernetes Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@fslabs-bot fslabs-bot bot added the size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. label Feb 19, 2026
Migrates from git2 (C bindings to libgit2 + vendored OpenSSL) to gix
(pure Rust gitoxide) with git CLI fallbacks where gix API is limited.
Removes openssl-sys and libgit2-sys from the dependency tree,
eliminating C compilation of OpenSSL on CI.

Hybrid approach:
- gix native: repo open, revparse, tree diffs, blob reading, find_reference
- git CLI: SSH clone, describe --match, staged/unstaged diffs, test helpers

Also fixes flake.nix:
- Disable devenv C language module (removes broken GDB build on Darwin)
- Add libiconv to nativeBuildInputs for Darwin (fixes release linking)
- Remove stale OpenSSL config from cross-compile setup
- Use native build path when arch matches system in release target

Signed-off-by: Claude Opus 4.6 <noreply@anthropic.com>

chore: bump version
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant