git-ecosystem / git-ecosystem/git-credential-manager
support .NET 9 or enable roll-forward
Nobody has claimed this yet.
- 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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