* Explicitly invoke the 'SignFiles' target in the package signing step
* Generate & archive a binlog for the NuGet package signing step
* Disable sbom for the nuget packages.
* Timestamp NuGet packages
Several people have been bitten while testing the UpgradeAssistant with
local builds of the Mappings nuget package because every build produces
the same versioned package and if they forget to delete the cached version
in the NuGet cache directory, then their changes will appear to not take
affect because UA is using an old version of their changes.
Also modified the Nerdbank.GitVersioning version.json file to use a base of
"1.0" instead of "1.0.0".
* Use 'preview' instead of 'CI' in the package versioning scheme
* Cleaned up README/CONTRIBUTING/CHANGELOG files and added AlohaKit mappings
* Added Azure Pipeline "Official Build" parameter
* Moved the AlohaKit mappings
* Change TeamName for pipeline to dotnetupgradeassistant
* When in non-interactive mode and no entry-points were specified, upgrade *all* projects
Fixes issue #1459
* Updated unit test for changed expectations
* Fix android/ios.csproj target framework assignments
* Shorten IsMobileAppSDK to IsMobile
* Capitalize i since const field names should begin with uppercase
* Use TryParse to avoid exceptions
* Set step results for apply and initialize for null Tfm as failed and incomplete respectively
* Standardize result message
---------
Co-authored-by: Diana Soltani <dianasoltani@microsoft.com>
Fixed memory corruption in VisualStudioFinder
VisualStudioFinder.GetLatestPath() uses COM to iterate over the
install locations for Visual Studio but somehow, once the method
returns to the caller (GetLatestVisualStudioPath), none of the
methods can be relied on to return sane values.
Therefore, the easiest solution is to track the values we care about
and just return them to our caller who can then avoid needing to re-make
the same COM invocations a second time.
* Fixed memory corruption in VisualStudioFinder
VisualStudioFinder.GetLatestPath() uses COM to iterate over the
install locations for Visual Studio but somehow, once the method
returns to the caller (GetLatestVisualStudioPath), none of the
methods can be relied on to return sane values.
Therefore, the easiest solution is to track the values we care about
and just return them to our caller who can then avoid needing to re-make
the same COM invocations a second time.
* Removed LogError call used for debugging
* Improve support <TargetFrameworks> for migrations
* Nuget TFI addition
* Fix typo for recommended net7-ios on MauiiOS projects
* Add default platform versions
* Revert "Removed LogError call used for debugging" from tfm branch
This reverts commit 91dd355a19.
* Revert "Fixed memory corruption in VisualStudioFinder"
This reverts commit ab1f8ef0f1.
* update mobile dev logic + remove defaults
* Update package mapper to include App Center packages + update Community Toolkit to latest
* Clean up code + update SkiaSharp
---------
Co-authored-by: Jeffrey Stedfast <jestedfa@microsoft.com>
Co-authored-by: Diana Soltani <dianasoltani@microsoft.com>
* Use a hard-coded PackageId for Extensions.Default.Analyzers
Don't use $(MSBuildProjectFullPath)* because it includes the full path
and breaks NuGet caching logic on non-Windows platforms.
* Do not require the ENABLE_CROSS_PLATFORM feature flag to run on macOS
* Don't crash in VisualStudioFinder.Configure() due to COM exceptions
* Use sudo on macOS when running `dotnet workload install maui`
* Trim trailing whitespace (CRLF) from the using directive when searching for it in the template
This is an actual code-change fix that helps unit tests pass
* A bunch of fixes to the unit tests
Most of these fixes fit into the following categories:
1. File path construction (using the correct path separator for the platform)
2. Using .ReplaceLineEndings() on strings that represent file content so we get consistent line endings when comparing expected/actual results
3. Adding TextSpan file offsets to use on Unix platforms (e.g. macOS) which will be different from the TextSpans on Windows
* Fixed MappedSubTextTests (and found a legit bug in MappedSubText regarding line ending assumptions)
* Fixed RazorHelperUpdaterTests
File paths needed to be sorted. The returned order is different on macOS than on Windows for some reason.
* Fixed RazorMappedTextReplacerTests and RazorSourceUpdaterTests
Use .ReplaceLineEndings() on source strings
* Fixed WCFUpdaterTests
* Fixed pruning of duplicate Compile/None items on macOS
Needed to canonicalize the EvaluatedInclude paths before comparing them.
* More path directory separator fixes
* Need to compare item.Include/EvaluatedInclude using canonical paths
* Moved GetProjectName() call out of the inner loop
* More canonicalization of paths when used in comparisons
* More canonicalization of paths
* Fixed up paths in <ItemType Update=...> and <ItemType Remove=...>
* Needed to add more .ReplaceLineEndings() in the unit tests for Razor
* Only use the VisualStudioPath/Version on the Windows platform
* Create a temp MSBuildExtensionsPath on macOS
The upgrade-assistant uses dotnet's MSBuild while older Xamarin.iOS/Mac/Android/etc
projects used Mono's XBuild (an MSBuild clone).
Unfortunately, there's no way to specify that dotnet's MSBuild should look in both
/usr/local/share/dotnet/sdk/{version} directory *and* in the
/Library/Frameworks/Mono.framework/External/xbuild directories for the
$(MSBuildExtensionsPath) imports.
In order to be able to load Xamarin.* projects, we need to create a temp dir that
includes *both* the standard targets/props files *and* the Xamarin props/targets files
and the only way to do that seems to be to create a temp directory full of symlinks.
* Optimized ProjectRootElementExtensionsForConversion.GetProjectName()
Instead of using projectPath.Split('/').Last() and then result.Substring(),
just get the start/end indexes of the substring we want and only do 1
Substring() operation.
* Add a start-up warning for MacOS
* Use "dotnet-upgrade-assistant" in the temp directory path
* Use a predictable ~/.dotnet-upgrade-assistant/dotnet-sdk/{version} directory
* Use !RuntimeInformation.IsOSPlatform(OSPlatform.Windows) when deciding whether or not to use sudo dotnet commands
* Disable the PCL test on non-Windows
* Disable some DependencyInjections Options tests on non-Windows platforms
* Disable WinUI and WPF migrations on non-Windows platforms.
These probably don't make sense to try to migrate on macOS.
* Disable Razor UpgradeSteps on non-Windows platforms
* Disable VisualBasic and WCF UpgradeSteps on non-Windows platforms
* Updated warning message for MacOS
* Reduce code duplication in conversion between file path separators
* Don't swallow exceptions thrown while creating MSBuildExtensionsPath symlinks
Surface these exceptions to the user.
* Removed FIXME that is no longer necessary
* File.Exists() returns false for symlinks to directories
Use a different approach to avoid exceptions trying to create a
symlink that already exists.
* Replaced Current TFM with STS
Readme.md is still referencing Current TFM when options only allow selection of Short Term Support (STS)
* Update README.md
Formatting change
* Updated to current naming standards for release cycles
* * Allow any version of .NetStandard to be migrated to MAUI
* Avoid unnecessary TFM merges for MAUI TFM SelectorFilter
* Always show 'dotnet --info' in case of workload install failure
* Added more information to log messages, such as project names
* Added MAUI step results to SARIF output
* Prevent endless failed step repetitions by adding Failded to IsDone
* Added failure level info to SARIF output using Note as default
* Added additional optional failure details to SARIF output
* Removed about:blank default which caused empty browser windows on click
* Fixed a few grammar and spelling issues
* * Restored `UpgradeStep.IsDone` behavior
* Don't return failed steps in non-interactive mode instead
* Updated tests to reflect new SARIF output
* Re-enabled Maui E2E tests
* Introduced TestOptions to skip the `MauiWorkloadUpgradeStep` during E2E tests
* * Replace the try-convert runner version with `[VERSION]` in E2E test SARIF output
* Skip the Apply part of the `MauiWorkloadUpgradeStep` but keep the rest for diagnostic output in the test
Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SignTool , Microsoft.DotNet.SwaggerGenerator.MSBuild
From Version 8.0.0-beta.22623.1 -> To Version 8.0.0-beta.22630.1
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SignTool , Microsoft.DotNet.SwaggerGenerator.MSBuild
From Version 8.0.0-beta.22609.3 -> To Version 8.0.0-beta.22616.1
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SignTool , Microsoft.DotNet.SwaggerGenerator.MSBuild
From Version 8.0.0-beta.22575.1 -> To Version 8.0.0-beta.22579.2
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
* Added XAML namespace upgrade step as well as the following fixes:
* Remove duplicate Compile item <Compile Include="MauiProgram.cs" />
* Remove "Xamarin.Forms" from qualified names (Xamarin.Forms.Shell => Shell)
* Replace PlatformConfiguration specific namespaces with Maui versions
* Updated MauiSample test assets and added ApplicableComponents to our Maui analyzers
* Addressed PR check failures by adding spacing and async suggestions
* Upgrade MicrosoftCodeAnalysisVersion to 4.0.0 and switch to making changes to XAML files through Roslyn.
Introduced MauiWorkloadUpgradeStep to ensure the MAUI workload is installed.
* Target net7.0 in MAUI migration and build against latest 7.0.100
Avoid repeated failed workload upgrade steps
* Pinning .NET SDK to RC2 release (7.0.100-rc.2.22477.23)
* Updated TFMs in tests to net7.0
* WarningLevel is now being persisted during the upgrade
* Temporarily disable MAUI E2E tests
* Fixed spacing analyzer issues
* 3rd party signing for MessagePack.dll and MessagePack.Annotations.dll
- Adding STS as a TFM selection option along with LTS & Preview.
- Updating the tests to reflect this change.
- Making STS the default tfm selection if an explicit TFM is not passed through the commandline tool.
- Temporarily disabling the Web tests since the namespace import fix is not getting applied while running the tests.