git-ecosystem / git-ecosystem/git-credential-manager

support .NET 9 or enable roll-forward

Open
#1,876 3 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
C#
Stars
9.3k
Forks
2.9k
Avg merge
7d 1h
Merged PRs (30d)
14

Description

Feature description

Currently only .NET 8 is targeted (https://github.com/git-ecosystem/git-credential-manager/blob/main/src/shared/Git-Credential-Manager/Git-Credential-Manager.csproj); if you install a new machine from scratch and install .NET, you won't have .NET 8 - just .NET 9 as current. This means that gcm complains "You must install or update .NET to run this application":

$ git-credential-manager configure
You must install or update .NET to run this application.

App: /home/marc/.dotnet/tools/git-credential-manager
Architecture: x64
Framework: 'Microsoft.NETCore.App', version '8.0.11' (x64)
.NET location: /usr/lib/dotnet

The following frameworks were found:
  9.0.3 at [/usr/lib/dotnet/shared/Microsoft.NETCore.App]

Learn more:
https://aka.ms/dotnet/app-launch-failed

To install missing framework, download:
https://aka.ms/dotnet-core-applaunch?framework=Microsoft.NETCore.App&framework_version=8.0.11&arch=x64&rid=ubuntu.24.10-x64&os=ubuntu.24.10

This can be done by multi-targeting, for example net8 and net9:

<TargetFrameworks>net8.0;net9.0</TargetFrameworks>

or perhaps more simply by enabling roll-forward:

<RollForward>Major</RollForward>

in the csproj like this. This is similar to running the tool with the --roll-forward Major switch, except because it is automatic, it should work when called indirectly (which gcm is).

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with src/shared/Git-Credential-Manager/Git-Credential-Manager.csproj and inspect its current target framework settings. Compare the multi-targeting and RollForward approaches described in the issue, then check how the tool is invoked indirectly. Done means GCM can run on a machine with .NET 9 installed when .NET 8 is absent, with the relevant project or runtime checks passing.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
cli, devtools
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.