alien-libgit2-core

Documents the Alien::Libgit2 distribution's alienfile, version floor, bundled tarball, and CI matrix.

Updated May 26, 2026
One-click install
npx skills add https://github.com/Getty/p5-alien-libgit2 --skill alien-libgit2-core-getty
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: alien-libgit2-core
Source: https://github.com/Getty/p5-alien-libgit2/tree/main/.claude/skills/alien-libgit2-core
Command: npx skills add https://github.com/Getty/p5-alien-libgit2 --skill alien-libgit2-core-getty

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Working on the Alien::Libgit2 Perl distribution requires knowing project-specific facts that are easy to get wrong: why the libgit2 1.9.3 minimum exists, how the system and share install paths differ, which CMake flags are load-bearing, and how the four-job CI matrix pins install types. This Skill supplies that context so changes to the alienfile, bundled tarball, or workflows stay consistent. ## Core Features & Use Cases - Distribution facts: Explains the two install paths (PkgConfig probe vs. bundled CMake share build), the logic-free Alien::Libgit2.pm, and the required CMake flag set (USE_SSH=ON, USE_HTTPS=OpenSSL, REGEX_BACKEND=builtin). - Version floor rationale: Documents that the 1.9.3 minimum is a bug gate for the libssh2 timeout hang (libgit2 PR #7165), not an API requirement, and why Debian's probe failure is intended behavior. - Upgrade and verification procedures: Provides the step-by-step process for upgrading the bundled libgit2 tarball and the commands to test both install paths (dzil test with ALIEN_INSTALL_TYPE forced to share and system). - Use Case: When bumping the bundled libgit2 to a new release, follow the documented checklist to update the tarball, alienfile start_url, CI workflow version strings, and Changes entry, then verify both install paths locally. ## Quick Start Ask the agent to walk through upgrading the bundled libgit2 tarball in Alien::Libgit2 and verifying both the system and share install paths.

Frequently Asked Questions about alien-libgit2-core

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I upgrade the bundled libgit2 in Alien::Libgit2?

Replace the tarball under share/ (only one at a time), update the alienfile start_url filename, update the hardcoded version strings in the Linux CI workflow, and add a Changes entry. Then run dzil test with ALIEN_INSTALL_TYPE forced to both share and system.

Why does Alien::Libgit2 require libgit2 1.9.3 or newer?

The 1.9.3 floor is a bug gate, not an API requirement. Below it, libgit2's ssh transport loops forever on LIBSSH2_ERROR_TIMEOUT, so a silent peer blocks callers indefinitely and no libgit2 timeout option reaches that loop.

Why does the Alien::Libgit2 probe fail on Debian?

No Debian release ships libgit2 >= 1.9.3 (bookworm has 1.5.1, trixie has 1.9.0), so the pkg-config probe fails by design and the bundled share build runs. This is intended and not a reason to lower minimum_version.

How do I test both install paths of Alien::Libgit2?

Run dzil test three ways: unforced, with ALIEN_INSTALL_TYPE=share to force the bundled CMake build, and with ALIEN_INSTALL_TYPE=system to force the probe. An unforced run on a machine with system libgit2 proves nothing about the share build.

Which Perl modules depend on Alien::Libgit2?

Git::Libgit2, an FFI::Platypus binding that links git_* symbols at runtime, and Git::Native, a Moo wrapper on top of it. Because they bind at runtime, the libgit2 version is an ABI compatibility surface.