Closed mark-monteiro closed 3 weeks ago
Yes, when I went to upgrade a project's dependencies I saw 3.0.0 was out and came here to look for documentation on what the implications are and found nothing. Major version bump generally means breaking backwards compatibility so information would be really appreciated.
@mhutch Looking at the comparison between v3.0.0 and the previous release v.2.3.1, all of the changes are yours. Would you be able to provide a brief summary of the changes or at least any major breaking changes? That would be very helpful for anyone looking to upgrade.
The major change in Mono.TextTemplating 3.0.0 is the addition of a new T4.BuildTools
package. This contains MSBuild targets for build-time text transformations. Although fully featured, it has not been extensively tested and further feedback would be appreciated. These targets are documented in the package README.md and include a bundled schema for the MSBuild Editor. These targets are fully integrated into the Visual Studio design time build and mechanisms for executing targets on save, making it straightforward to migrate to Mono.TextTransform from the VS T4 engine.
Although there are no API breaking changes, the major version was bumped following SemVer rules as there are multiple changes to assembly loading rules that could result in breaking behavioral changes in some cases.
AssemblyLoadContext
codepath used on .NET Core. It should now be consistent with the assembly resolution behavior with AppDomain
on .NET Framework.DisableAssemblyLoadContext
host option to opt out of AssemblyLoadContext
usage.There are also miscellaneous bug fixes and improvements to compatibility with newer .NET and C# version:
--useRelativeLinePragmas
argument.DOTNET_ROOT
environment variable is now respected.CreateTempSubdirectory
method from .NET 7 is now used for temp directory creation, massively reducing the chance of temp directory name collisions. This has also been backported to older runtimesThank you so much for the detailed response! The T4.BuildTools package looks super useful I will give a try when I have time
There doesn't appear to be any changelog or release notes for the new version 3.0.0. Would it be possible to add a changelog to this project so we can know what was changed before attempting to upgrade?