From 569719012ee9a435495d9c588540c807177308ab Mon Sep 17 00:00:00 2001 From: Simon Cropp Date: Fri, 30 Oct 2026 23:47:19 +1100 Subject: [PATCH] Keep the library's version out of the generated tool docs The viewer is looked for in the NuGet cache under this library's own version first, and WriteFoundTools wrote that path as it was, so diffTools.include.md and docs/diff-tool.md went stale at every release (#1009 caught them up from 20.7.1). The writer now shows that segment as {version}, and the docs change only when the search order does. --- docs/diff-tool.md | 12 ++++++------ src/DiffEngine.Tests/DefinitionsTest.cs | 19 ++++++++++++++++++- src/DiffEngine.Tests/diffTools.include.md | 12 ++++++------ 3 files changed, 30 insertions(+), 13 deletions(-) diff --git a/docs/diff-tool.md b/docs/diff-tool.md index f4446666..2db6347e 100644 --- a/docs/diff-tool.md +++ b/docs/diff-tool.md @@ -347,9 +347,9 @@ DiffTools.UseOrder(DiffTool.DiffEngineViewer); * `%USERPROFILE%\.dotnet\tools\DiffEngineViewer.exe` * `%USERPROFILE%\.dotnet\tools\.store\diffenginetray\*\diffenginetray.win-x64\*\tools\*\win-x64\viewer\win-x64\DiffEngineViewer.exe` * `%USERPROFILE%\.dotnet\tools\.store\diffenginetray\*\diffenginetray\*\tools\*\any\viewer\win-x64\DiffEngineViewer.exe` - * `%NUGET_PACKAGES%\diffengine\20.8.2\tools\viewer\win-x64\DiffEngineViewer.exe` + * `%NUGET_PACKAGES%\diffengine\{version}\tools\viewer\win-x64\DiffEngineViewer.exe` * `%NUGET_PACKAGES%\diffengine\*\tools\viewer\win-x64\DiffEngineViewer.exe` - * `%USERPROFILE%\.nuget\packages\diffengine\20.8.2\tools\viewer\win-x64\DiffEngineViewer.exe` + * `%USERPROFILE%\.nuget\packages\diffengine\{version}\tools\viewer\win-x64\DiffEngineViewer.exe` * `%USERPROFILE%\.nuget\packages\diffengine\*\tools\viewer\win-x64\DiffEngineViewer.exe` * `%PATH%DiffEngineViewer.exe` @@ -366,9 +366,9 @@ DiffTools.UseOrder(DiffTool.DiffEngineViewer); * Scanned paths: * `%HOME%/.dotnet/tools/DiffEngineViewer` * `%HOME%/.dotnet/tools/.store/diffenginetray/*/diffenginetray.osx-x64/*/tools/*/osx-x64/viewer/osx-x64/DiffEngineViewer` - * `%NUGET_PACKAGES%/diffengine/20.8.2/tools/viewer/osx-x64/DiffEngineViewer` + * `%NUGET_PACKAGES%/diffengine/{version}/tools/viewer/osx-x64/DiffEngineViewer` * `%NUGET_PACKAGES%/diffengine/*/tools/viewer/osx-x64/DiffEngineViewer` - * `%HOME%/.nuget/packages/diffengine/20.8.2/tools/viewer/osx-x64/DiffEngineViewer` + * `%HOME%/.nuget/packages/diffengine/{version}/tools/viewer/osx-x64/DiffEngineViewer` * `%HOME%/.nuget/packages/diffengine/*/tools/viewer/osx-x64/DiffEngineViewer` * `%PATH%DiffEngineViewer` @@ -385,9 +385,9 @@ DiffTools.UseOrder(DiffTool.DiffEngineViewer); * Scanned paths: * `%HOME%/.dotnet/tools/DiffEngineViewer` * `%HOME%/.dotnet/tools/.store/diffenginetray/*/diffenginetray.linux-x64/*/tools/*/linux-x64/viewer/linux-x64/DiffEngineViewer` - * `%NUGET_PACKAGES%/diffengine/20.8.2/tools/viewer/linux-x64/DiffEngineViewer` + * `%NUGET_PACKAGES%/diffengine/{version}/tools/viewer/linux-x64/DiffEngineViewer` * `%NUGET_PACKAGES%/diffengine/*/tools/viewer/linux-x64/DiffEngineViewer` - * `%HOME%/.nuget/packages/diffengine/20.8.2/tools/viewer/linux-x64/DiffEngineViewer` + * `%HOME%/.nuget/packages/diffengine/{version}/tools/viewer/linux-x64/DiffEngineViewer` * `%HOME%/.nuget/packages/diffengine/*/tools/viewer/linux-x64/DiffEngineViewer` * `%PATH%DiffEngineViewer` diff --git a/src/DiffEngine.Tests/DefinitionsTest.cs b/src/DiffEngine.Tests/DefinitionsTest.cs index 40bb4fe9..0ce5a426 100644 --- a/src/DiffEngine.Tests/DefinitionsTest.cs +++ b/src/DiffEngine.Tests/DefinitionsTest.cs @@ -284,9 +284,26 @@ static void WritePaths(string exeName, string pathCommandName, TextWriter writer foreach (var path in paths) { - writer.WriteLine($" * `{path}{exeName}`"); + writer.WriteLine($" * `{WithoutLibraryVersion(path)}{exeName}`"); } writer.WriteLine($" * `%PATH%{pathCommandName}`"); } + + /// + /// The viewer is looked for in the NuGet cache under this library's own version first, which + /// written as it is made the generated docs stale at every release. + /// + static string WithoutLibraryVersion(string path) + { + var version = FallbackViewerDirectories.LibraryVersion(); + if (version == null) + { + return path; + } + + return path + .Replace($@"\diffengine\{version}\", @"\diffengine\{version}\") + .Replace($"/diffengine/{version}/", "/diffengine/{version}/"); + } } diff --git a/src/DiffEngine.Tests/diffTools.include.md b/src/DiffEngine.Tests/diffTools.include.md index 0d81e066..149acf51 100644 --- a/src/DiffEngine.Tests/diffTools.include.md +++ b/src/DiffEngine.Tests/diffTools.include.md @@ -179,9 +179,9 @@ DiffTools.UseOrder(DiffTool.DiffEngineViewer); * `%USERPROFILE%\.dotnet\tools\DiffEngineViewer.exe` * `%USERPROFILE%\.dotnet\tools\.store\diffenginetray\*\diffenginetray.win-x64\*\tools\*\win-x64\viewer\win-x64\DiffEngineViewer.exe` * `%USERPROFILE%\.dotnet\tools\.store\diffenginetray\*\diffenginetray\*\tools\*\any\viewer\win-x64\DiffEngineViewer.exe` - * `%NUGET_PACKAGES%\diffengine\20.8.2\tools\viewer\win-x64\DiffEngineViewer.exe` + * `%NUGET_PACKAGES%\diffengine\{version}\tools\viewer\win-x64\DiffEngineViewer.exe` * `%NUGET_PACKAGES%\diffengine\*\tools\viewer\win-x64\DiffEngineViewer.exe` - * `%USERPROFILE%\.nuget\packages\diffengine\20.8.2\tools\viewer\win-x64\DiffEngineViewer.exe` + * `%USERPROFILE%\.nuget\packages\diffengine\{version}\tools\viewer\win-x64\DiffEngineViewer.exe` * `%USERPROFILE%\.nuget\packages\diffengine\*\tools\viewer\win-x64\DiffEngineViewer.exe` * `%PATH%DiffEngineViewer.exe` @@ -198,9 +198,9 @@ DiffTools.UseOrder(DiffTool.DiffEngineViewer); * Scanned paths: * `%HOME%/.dotnet/tools/DiffEngineViewer` * `%HOME%/.dotnet/tools/.store/diffenginetray/*/diffenginetray.osx-x64/*/tools/*/osx-x64/viewer/osx-x64/DiffEngineViewer` - * `%NUGET_PACKAGES%/diffengine/20.8.2/tools/viewer/osx-x64/DiffEngineViewer` + * `%NUGET_PACKAGES%/diffengine/{version}/tools/viewer/osx-x64/DiffEngineViewer` * `%NUGET_PACKAGES%/diffengine/*/tools/viewer/osx-x64/DiffEngineViewer` - * `%HOME%/.nuget/packages/diffengine/20.8.2/tools/viewer/osx-x64/DiffEngineViewer` + * `%HOME%/.nuget/packages/diffengine/{version}/tools/viewer/osx-x64/DiffEngineViewer` * `%HOME%/.nuget/packages/diffengine/*/tools/viewer/osx-x64/DiffEngineViewer` * `%PATH%DiffEngineViewer` @@ -217,9 +217,9 @@ DiffTools.UseOrder(DiffTool.DiffEngineViewer); * Scanned paths: * `%HOME%/.dotnet/tools/DiffEngineViewer` * `%HOME%/.dotnet/tools/.store/diffenginetray/*/diffenginetray.linux-x64/*/tools/*/linux-x64/viewer/linux-x64/DiffEngineViewer` - * `%NUGET_PACKAGES%/diffengine/20.8.2/tools/viewer/linux-x64/DiffEngineViewer` + * `%NUGET_PACKAGES%/diffengine/{version}/tools/viewer/linux-x64/DiffEngineViewer` * `%NUGET_PACKAGES%/diffengine/*/tools/viewer/linux-x64/DiffEngineViewer` - * `%HOME%/.nuget/packages/diffengine/20.8.2/tools/viewer/linux-x64/DiffEngineViewer` + * `%HOME%/.nuget/packages/diffengine/{version}/tools/viewer/linux-x64/DiffEngineViewer` * `%HOME%/.nuget/packages/diffengine/*/tools/viewer/linux-x64/DiffEngineViewer` * `%PATH%DiffEngineViewer`