git-credential-manager
git-credential-manager copied to clipboard
Rename entry executable to drop "-core" suffix
Rename the main entry executable from git-credential-manager-core(.exe) to simply git-credential-manager(.exe), now that the older GCM4W has been removed from the Git for Windows project as an option (and the GCMC project has been renamed).
We do not rename the Debian package ID, nor the Homebrew Cask name yet as this will require more thought forr migration.
To help with migration somewhat, we create shim scripts for callers of the older "GCM Core" executable name. The scripts will warn users that the name of the executable has changed and should be updated, and then forward invocation to the newly named GCM executable.
We also create symlinks in the Debian package and macOS package to these shim scripts. This is to allow external tools that have not updated to use the new name to continue to work.
Symlinks are the natural solution here and are used on UNIX platforms.
However, since they are not widely supported on Windows, we don't use shims. Given that GCM is not on the %PATH% in Windows by default, we hope that our friends in the Git for Windows can resolve this similarly in their
distribution. Possibly bundling their own shim script here? cc @dscho
Following this PR, the only breakages would be on Windows for those who are directly calling git-credential-manager-core.exe as bundled in the Git for Windows installation.. such as Visual Studio. However, since they take the mingit package and update infrequently, we can communicate to them to update with the new name when they take a new mingit version.
Finally, rename the release assets (installers, tarballs, packages) to drop the "Core" moniker. This includes:
gcm[core]-win-x86-VERSION.exegcm[core]user-win-x86-VERSION.exegcm[core]-win-x86-VERSION.zipgcm[core]-osx-VERSION.pkggcm[core]-osx-VERSION.tar.gzgcm[core]-linux_amd64.VERSION.debgcm[core]-linux_amd64.VERSION.tar.gz
Is there a deprecation plan for the shims? It seems like a lot of hassle for low rewards if we have to carry those indefinitely. But if we can document their disappearance in, say, a year...
Do we have a way of knowing when VS takes a new mingit version?
Is there a deprecation plan for the shims? It seems like a lot of hassle for low rewards if we have to carry those indefinitely. But if we can document their disappearance in, say, a year...
That's a good point. I know @dscho was thinking of removing the Windows shim script from Git for Windows "at some future date".
Would you put the "this is temporary" message in the warnings too?
Regarding the rewards; I think this is really most important for Git for Windows users, and those who have installed outside of Homebrew (tarballs, macOS pkg, or Debian deb). Homebrew updates will do an uninstall first of the old one, so keeping clean.
Do we have a way of knowing when VS takes a new mingit version?
Major releases certainly, and sometimes minor releases. It requires a full test pass on their side of things and is an expensive thing to do. They usually also update when we advise them to, for security reasons for example.
I'm going to wait until @dscho is back for their opinion on this solution before merging. We want to make sure this will be OK with Git for Windows.
UPDATE
Rename the main entry executable from
git-credential-manager-core(.exe)to simplygit-credential-manager(.exe), now that the older GCM4W has been removed from the Git for Windows project as an option (and the GCMC project has been renamed).We do not rename the Debian package ID, nor the Homebrew Cask name yet as this will require more thought forr migration.
To help with migration somewhat, create symlinks and shim/copy-executables for the original executable name "git-credential-manager-core(.exe)" for consumers who have not updated to the new version.
We detect if the consumer is launching us via the "-core" symlink or executable shim by consul
Hello