Skip to content

v7.1: remove LibGit2Sharp and native binaries #5040

Description

@arturcic

Summary

Remove LibGit2Sharp and all shipped native Git binaries in GitVersion v7.1, after the managed backend ships as the v7.0 default under #5135.

Part of #5031. The release and selector lifecycle is governed by #5135, with final environment-variable cleanup in v8 tracked by #5136.

Remove the legacy backend

  • Delete src/GitVersion.LibGit2Sharp and new-cli/GitVersion.Core.Libgit2Sharp.
  • Re-point any remaining source links or consumers to the managed backend.
  • Drop LibGit2Sharp and native-binary package references.
  • Add packaging assertions proving shipped packages contain no runtimes/**/native/* entries.
  • Register the managed backend directly at production composition roots.

Remove dual-backend validation scaffolding

  • Collapse the unit-test git_backend matrix to managed-only execution.
  • Collapse Docker and artifact tests to one managed-backend path.
  • Remove backend inputs and environment forwarding from reusable workflows/actions and build utilities.
  • Delete dual-backend parity tests and libgit2-only test visibility grants.
  • Remove corpus tooling whose purpose is comparing managed and libgit2 results.
  • Keep managed-only tests that originated from parity work.

Retain the v7 selector compatibility shell

Do not remove recognition of GITVERSION_GIT_BACKEND in this issue:

  • GITVERSION_GIT_BACKEND=libgit2 fails with an actionable message that the backend was removed in v7.1.
  • GITVERSION_GIT_BACKEND=managed remains accepted as a no-op throughout v7.x so explicit v7.0 opt-in automation keeps working.
  • The selector and its compatibility diagnostics are removed in v8 by Remove feature-selector environment variables #5136.

The implementation no longer performs backend selection after this issue; only the v7 compatibility validation remains.

Documentation

  • Update the managed-Git design/status and v6-to-v7 migration documentation to show managed as the v7.0 default and LibGit2Sharp removal in v7.1.
  • Document the v7.1 error for GITVERSION_GIT_BACKEND=libgit2 and the v8 removal tracked by Remove feature-selector environment variables #5136.

Acceptance criteria

  • Shipped packages contain no LibGit2Sharp assemblies or native Git binaries.
  • Production and CI use only the managed backend.
  • No dual-backend selection or comparison infrastructure remains, apart from the v7 environment-variable compatibility validator.
  • Legacy selection fails clearly and explicit managed remains harmless in v7.x.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions