diff --git a/CHANGELOG.md b/CHANGELOG.md index 3a4ba5587..f8f57a7ea 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,270 +1,6 @@ # Changelog + All notable changes to the .NET Upgrade Assistant will be documented in this file. Version numbers below will follow (best effort) the corresponding NuGet package versions here: https://www.nuget.org/packages/upgrade-assistant/ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/). -## Version 0.4.355802 - 2022-11-08([Link](https://www.nuget.org/packages/upgrade-assistant/0.4.355802)) - -### Added -- Added STS (Standard Term Support) as an option to the Target framework selection (`-t, --target-tfm-support `) (https://github.com/dotnet/upgrade-assistant/pull/1350) -- Additional support for Xamarin Forms to MAUI migration (https://github.com/dotnet/upgrade-assistant/pull/1349) - - XAML namespace updates - - MAUI workload install step - - Target net7.0 for MAUI projects - -### Changed -- Removed Current as an option from the Target framework selection (https://github.com/dotnet/upgrade-assistant/pull/1350) - -## Version 0.4.346202 - 2022-09-20([Link](https://www.nuget.org/packages/upgrade-assistant/0.4.346202)) - -### Added -- Generation of post upgrade report for UWP -> Windows App SDK migration (https://github.com/dotnet/upgrade-assistant/pull/1292) - -## Version 0.4.346201 - 2022-09-12 ([Link](https://www.nuget.org/packages/upgrade-assistant/0.4.346201)) - -### Added -- WCF -> CoreWCF migration support (https://github.com/dotnet/upgrade-assistant/pull/1237) -- Post-Upgrade report generation (https://github.com/dotnet/upgrade-assistant/pull/1260) - -### Fixed -- MAUI bug fixes (https://github.com/dotnet/upgrade-assistant/pull/1238) -- Binary Analysis `-p windows` error (https://github.com/dotnet/upgrade-assistant/pull/1266) -- Improved the Analysis experience (https://github.com/dotnet/upgrade-assistant/pull/1291) - -## Version 0.4.336902 - 2022-07-19 ([Link](https://www.nuget.org/packages/upgrade-assistant/0.4.336902)) - -### Added -- Binary Analysis support (https://github.com/dotnet/upgrade-assistant/pull/1210) - -### Changed -- Format flag (`--format`) now available OOB for Analysis output - -### Fixed -- `ConfigurationManager` error (#1151) (https://github.com/dotnet/upgrade-assistant/pull/1162) -- Bug preventing extension Samples (and presumably any external extensions) from being properly loaded (https://github.com/dotnet/upgrade-assistant/pull/1204) -- Doc updates around extension development, SARIF viewing - -## Version 0.3.330701 - 2022-06-08 ([Link](https://www.nuget.org/packages/upgrade-assistant/0.3.330701)) - -### Added -- UWP conversion support to Windows App SDK (https://github.com/dotnet/upgrade-assistant/pull/1121) - -### Changed -- Updated install command documentation to include nuget source feed URL (https://github.com/dotnet/upgrade-assistant/pull/1138) - -## Version 0.3.326103 - 2022-05-13 ([Link](https://www.nuget.org/packages/upgrade-assistant/0.3.326103)) - -### Fixed -- Fix template file creation when directory does not exist(https://github.com/dotnet/upgrade-assistant/pull/1084) -- Fix for community reported issues to make analysis messages more actionable (https://github.com/dotnet/upgrade-assistant/issues/1048) and (https://github.com/dotnet/upgrade-assistant/issues/1047) (PR - https://github.com/dotnet/upgrade-assistant/pull/1116) - -### Changed -- Update WCF documentation to point to CoreWCF as well as gRPC(https://github.com/dotnet/upgrade-assistant/pull/1111) - -## Version 0.3.310801 - 2022-02-08 ([Link](https://www.nuget.org/packages/upgrade-assistant/0.3.310801)) -### Added -- Add solution wide project file conversion behind feature flag (https://github.com/dotnet/upgrade-assistant/pull/996) -- Move transitive reference analyzer to step after other analyzers (https://github.com/dotnet/upgrade-assistant/pull/1001) -- Add feature flag to enable running on non-Windows machines (https://github.com/dotnet/upgrade-assistant/pull/1022) -- Add command to show feature flags and if they are enabled (https://github.com/dotnet/upgrade-assistant/pull/1004) -- Add command 'analysis list-formats` to see available formats (https://github.com/dotnet/upgrade-assistant/pull/1029) -- Read evaluated packagereference versions to support CPvM (https://github.com/dotnet/upgrade-assistant/pull/1035) - -### Fixed -- Register default extensions first (https://github.com/dotnet/upgrade-assistant/issues/989) (PR - https://github.com/dotnet/upgrade-assistant/pull/1020) - Thanks for the PR @jbearfoot - -## Version 0.3.261602 - 2021-12-16 ([Link](https://www.nuget.org/packages/upgrade-assistant/0.3.261602)) - -### Added -- Added support for analysis report to be generated in HTML format(https://github.com/dotnet/upgrade-assistant/pull/966) - -## Version 0.3.256001 - 2021-11-17 ([Link](https://www.nuget.org/packages/upgrade-assistant/0.3.256001)) - -### Added -- Pushed extensions for loose assembly lookup and Maui (preview) conversions to NuGet.org - -### Changed -- Updated SARIF output for analyze to newer version (https://github.com/dotnet/upgrade-assistant/pull/927) - -## Version 0.3.255803 - 2021-11-09 ([Link](https://www.nuget.org/packages/upgrade-assistant/0.3.255803)) -### Added -- In lieu of .NET 6 GA, Current, LTS and Preview now point to .NET 6 in upgrade-assistant (https://github.com/dotnet/upgrade-assistant/pull/907) - -### Fixed -- Razor source updater bug fixes (#919)[https://github.com/dotnet/upgrade-assistant/pull/919]. Issues addressed - - (https://github.com/dotnet/upgrade-assistant/issues/856) - - (https://github.com/dotnet/upgrade-assistant/issues/914) - - (https://github.com/dotnet/upgrade-assistant/issues/915) - -## Version 0.3.252501 - 2021-11-01 ([Link](https://www.nuget.org/packages/upgrade-assistant/0.3.252501)) -### Added -- Extensions can now be downloaded and installed into an upgrade context via a NuGet feed (see [docs](docs/design/Extension_Management.md) for details) (#873)[https://github.com/dotnet/upgrade-assistant/pull/855] -- Added extension for identifying loose assemblies with data to identify loose assemblies from NuGet.org (see [docs](docs/design/Loose_binary_identification.md) for details) (https://github.com/dotnet/upgrade-assistant/pull/855) -- Source updater for handling HighDpiMode setting in Winforms (https://github.com/dotnet/upgrade-assistant/pull/877) -- More verbose logging for Diagnostic Analysis in Analyze Command (https://github.com/dotnet/upgrade-assistant/pull/877) - -### Removed -- Removed option to run `try-convert` as an exe and now will always be run in-process [#870](https://github.com/dotnet/upgrade-assistant/pull/870) - -## Version 0.3.246501 - 2021-09-15 ([Link](https://www.nuget.org/packages/upgrade-assistant/0.3.246501)) -### Fixed -- Fixed issue with Package Analyzer to not enumerate the same collection that is being modified. [#836](https://github.com/dotnet/upgrade-assistant/issues/836) - -## Version 0.3.242703 - 2021-08-31 ([Link](https://www.nuget.org/packages/upgrade-assistant/0.3.242703)) -### Added -- Alert users about the deprecated controls in Windows Forms [#800](https://github.com/dotnet/upgrade-assistant/pull/800) -- Added a command line option to specifiy a path to msbuild via `--msbuild-path` ([#802](https://github.com/dotnet/upgrade-assistant/pull/802)) -- Support for running on .NET 6 Preview 7 ([#832](https://github.com/dotnet/upgrade-assistant/pull/832)) - -### Changed -- Removed a check that wouldn't include preview .NET SDK instances ([#802](https://github.com/dotnet/upgrade-assistant/pull/802)) -- Log file outputs structured logging rather than just text ([#822](https://github.com/dotnet/upgrade-assistant/pull/822)) -- Fixed an issue where running against VS 2017 wouldn't resolve targets in installed workloads ([#832](https://github.com/dotnet/upgrade-assistant/pull/832)) -- Do not clear console in between runs so log files aren't lost ([#826](https://github.com/dotnet/upgrade-assistant/pull/826)) -- `try-convert` is now hosted in process. If there are any issues with the hosted version, you may revert to old behavior using the feature flag `UA_FEATURES=TRY_CONVERT_EXE` ([#826](https://github.com/dotnet/upgrade-assistant/pull/825)) - -## Version 0.2.241603 - 2021-08-16 ([Link](https://www.nuget.org/packages/upgrade-assistant/0.2.241603)) -### Added -- Analyze command now supports flagging of unsupported API usage in project / solution [#764](https://github.com/dotnet/upgrade-assistant/pull/764) -- Added dependency analyzer for System.Windows.Forms.DataVisualization [#792](https://github.com/dotnet/upgrade-assistant/pull/792) -- Added .NET MAUI extension steps to add TFMs for .NET MAUI [#790](https://github.com/dotnet/upgrade-assistant/pull/790) - - Adds templates files per project - - Manages project property transforms as per migration requirements - - Makes C# source code updates for new .NET MAUI APIs. - -## Version 0.2.237901 - 2021-07-30 ([Link](https://www.nuget.org/packages/upgrade-assistant/0.2.237901)) - -### Changed -- Updated try-convert tool version from `0.7.226301` to `0.9.232202` - -### Added -- Added command line argument to select VS version (`--vs-path`) in cases where multiple are installed [#753](https://github.com/dotnet/upgrade-assistant/pull/753) -- Added analyzers for identifying common namespaces, types, and members that require manual fixup and will produce diagnostics with links to relevant docs. The list of APIs identified by the analyzer can be expanded by adding to DefaultApiAlerts.json or by adding a .apitargets file to a project's additional files. [#685](https://github.com/dotnet/upgrade-assistant/pull/685) -- Link to survey [#735](https://github.com/dotnet/upgrade-assistant/pull/735) - -## Version 0.2.236301 - 2021-07-15 ([Link](https://www.nuget.org/packages/upgrade-assistant/0.2.236301)) - -### Added -- `analyze` command to provide pre-upgrade package analysis and produce a sarif log of the results [#24](https://github.com/dotnet/upgrade-assistant/issues/24) -- Validation diagram to help maintain the architectural decisions so far and codify it into the build process. [#696](https://github.com/dotnet/upgrade-assistant/pull/696) - -### Fixed -- Fixed regression where `--skip-backup` and `--entrypoint` options were not being passed through [#695](https://github.com/dotnet/upgrade-assistant/pull/695) - -## Version 0.2.233001 - 2021-06-30 ([Link](https://www.nuget.org/packages/upgrade-assistant/0.2.233001)) - -### Added -- New project readiness checks evaluate if the project contains unsupported technologies to increase awareness before users invest significant time trying to upgrade. [#617](https://github.com/dotnet/upgrade-assistant/pull/617) -- Usage telemetry has been added to help guide product development. See [https://aka.ms/upgrade-assistant-telemetry](https://aka.ms/upgrade-assistant-telemetry) for details [#644](https://github.com/dotnet/upgrade-assistant/pull/644). -- Command line option to pass options through in the form of `--option KEY=Value` [#651](https://github.com/dotnet/upgrade-assistant/pull/651) -- Added an analyzer and code fix provider to remove unnecessary attributes and upgrade changed attributes (based on type mappings in registered typemap files) [#641](https://github.com/dotnet/upgrade-assistant/pull/641) -- The `SourceUpdaterStep` and `RazorSourceUpdater` will now alert the user of any diagnostics from registered analyzers that require manual fixups (because no code fix was available). This allows Upgrade Assistant to notify users of code patterns that it can identify as needing updated but is unable to update automatically. [#662](https://github.com/dotnet/upgrade-assistant/pull/662) -- Added RemoveProperty method to enable removal of a property from the project file. [#668](https://github.com/dotnet/upgrade-assistant/pull/668) - -### Fixed -- Updated `HttpContext.Current` analyzer to more correctly identify uses of `HttpContext.Current` that need replaced [#628](https://github.com/dotnet/upgrade-assistant/pull/628). -- The Upgrade Assistant analyzer package no longer adds a WebTypeReplacements.typemap file to projects it's added to (more precisely, the file is present and available for analyzers to use but isn't visible in the solution explorer anymore) [#632](https://github.com/dotnet/upgrade-assistant/pull/632). -- Addressed compile time errors that surfaced from Visual Basic Runtime and the My. namespace ([629](https://github.com/dotnet/upgrade-assistant/pull/629)) -- Exposed Sdk in IProjectFile to enable development of custom extensions to add/remove Sdk. [#614](https://github.com/dotnet/upgrade-assistant/issues/614) - -## Version 0.2.231403 - 2021-06-14 ([Link](https://www.nuget.org/packages/upgrade-assistant/0.2.231403)) - -### Fixed -- Updated `HttpContext.Current` code fix to use an internal `HttpContextHelper` that will work in multi-project solutions [#599](https://github.com/dotnet/upgrade-assistant/pull/599). -- Fixed a bug that was preventing the Upgrade Assistant analyzer package from being added to upgraded projects [#620](https://github.com/dotnet/upgrade-assistant/pull/620). -- Fixed a bug in `PackageLoader` that was causing many extraneous warning messages when verbose logging was enabled [#619](https://github.com/dotnet/upgrade-assistant/pull/619). -- Fixed a bug in `SourceUpdaterStep` that was leaving an extra .cs file in projects after upgrade which introduced build errors in the project (since the .cs files were already automatically included) [#616](https://github.com/dotnet/upgrade-assistant/pull/616). -- Exposed Imports in IProjectFile to enable development of custom extensions to add/remove imports. [#612](https://github.com/dotnet/upgrade-assistant/issues/612) - -## Version 0.2.227701 - 2021-05-27 ([Link](https://www.nuget.org/packages/upgrade-assistant/0.2.227701)) - -### Added -- Added an analyzer and code fix provider to upgrade System.Web.Mvc.Controller to Microsoft.AspNetCore.Mvc.Controller [#534](https://github.com/dotnet/upgrade-assistant/pull/534) -- Added additional code fixer for `HttpContext.Current` that will replace calls with method injection [#536](https://github.com/dotnet/upgrade-assistant/pull/536) -- Added a Razor upgrade sub-step to replace @helper functions in Razor views with local methods [#559](https://github.com/dotnet/upgrade-assistant/pull/559) -- Analyzers that recommend replacing one type with another are now combined into a single analyzer (`TypeUpgradeAnalyzer`) with behavior that can be customized via AdditionalTexts containing old -> new type mappings [#540](https://github.com/dotnet/upgrade-assistant/pull/540) -- BinaryFormatterUnsafeDeserializer now works with Visual Basic [#544](https://github.com/dotnet/upgrade-assistant/pull/544) - -### Fixed -- VB projects that have a MyType property that requires Windows will now default to net5.0-windows [#529](https://github.com/dotnet/upgrade-assistant/pull/529) -- Restores are now more likely to be performed if needed so errors about finding targets won't be surfaced. A clearer message will be surfaced as well if this occurs. [#525](https://github.com/dotnet/upgrade-assistant/pull/525) -- Updated the ApiController upgrade code fix provider to upgrade to Microsoft.AspNetCore.Mvc.ControllerBase instead of Microsoft.AspNetCore.Mvc.Controller [#534](https://github.com/dotnet/upgrade-assistant/pull/534) - -### Breaking change -- Upgrade path now uses the command `upgrade`. In order to use the tool to upgrade projects, the command looks like `upgrade-assistant upgrade ` [#541](https://github.com/dotnet/upgrade-assistant/pull/541) - -## Version 0.2.226201 - 2021-05-12 ([Link](https://www.nuget.org/packages/upgrade-assistant/0.2.226201)) - -### Added -- A new command line option (`--target-tfm-support` to select the support model of LTS/Preview/Current that is desired [#469](https://github.com/dotnet/upgrade-assistant/pull/469) - -### Fixed -- VB Win Forms projects should keep import for 'System.Windows.Forms' [#474](https://github.com/dotnet/upgrade-assistant/pull/474) - -## Version 0.2.222702 - 2021-04-27 ([Link](https://www.nuget.org/packages/upgrade-assistant/0.2.222702)) - -### Added -- Multiple entrypoints can now be added by using globbing and multiple instances of the `--entry-point` argument [#425](https://github.com/dotnet/upgrade-assistant/pull/425) -- NuGet credential providers will now be used, if present (may require running in interactive mode) [#448](https://github.com/dotnet/upgrade-assistant/pull/448) -- Source analyzers and code fix providers are now applied to source embedded in Razor documents [#455](https://github.com/dotnet/upgrade-assistant/pull/455) -- Persist Backup path in .upgrade-assistant state file [#447](https://github.com/dotnet/upgrade-assistant/pull/447) Thanks for the PR, [@oteione](https://github.com/oteinone)! - -### Fixed -- UpgradeSteps should be filtered based on project components [#255](https://github.com/dotnet/upgrade-assistant/issues/255) -- Do not add _ViewImports.cshtml to VB projects [#378](https://github.com/dotnet/upgrade-assistant/issues/378) - -### Breaking change -- The commandline argument `-e` is now shorthand for `--entry-point` rather than `--extension` [#425](https://github.com/dotnet/upgrade-assistant/pull/425) - -## Version 0.2.220602 - 2021-04-06 ([Link](https://www.nuget.org/packages/upgrade-assistant/0.2.220602)) -### Added -- Added support for WPF and Unit Test projects written with Visual Basic [#403](https://github.com/dotnet/upgrade-assistant/pull/403) - -### Fixed -- Allows projects to be read if they have multiple TFMs. The tool still can't upgrade them, but it won't block upgrading dependent projects [#379](https://github.com/dotnet/upgrade-assistant/issues/379) -- Fixed issue surfacing from floating package references [#371](https://github.com/dotnet/upgrade-assistant/pull/371) -- Microsoft.AspNetCore.Mvc.NewtonsoftJson package should no longer be added to .NET Framework projects [#376](https://github.com/dotnet/upgrade-assistant/issues/376) -- Fixed issue to ignore disabled NuGet sources [#396](https://github.com/dotnet/upgrade-assistant/issues/396) -- Ensured restore is run when required [#402](https://github.com/dotnet/upgrade-assistant/issues/402) - -## Version 0.2.217201 - 2021-03-23 ([Link](https://www.nuget.org/packages/upgrade-assistant/0.2.217201)) -### Added -- Include try-convert version in upgrade-assistant package [#358](https://github.com/dotnet/upgrade-assistant/issues/358) -- Add check to ensure project files can be successfully loaded prior to upgrading them. [#346](https://github.com/dotnet/upgrade-assistant/issues/346) -- Add a command to select a different current project [#343](https://github.com/dotnet/upgrade-assistant/issues/343) -- Add a step to update package dependecies before TFM change [#342](https://github.com/dotnet/upgrade-assistant/issues/342) -- Add a source updater to update BinaryFormatter.UnsafeDeserialize calls to BinaryFormatter.Deserialize in appropriate cases. [#339](https://github.com/dotnet/upgrade-assistant/issues/339) -- Be sure to include log exception information if upgrade steps fail [#335](https://github.com/dotnet/upgrade-assistant/issues/335) -- Update package updater to upgrade System.Configuration and System.Data.Entity references. [#324](https://github.com/dotnet/upgrade-assistant/issues/324) -- Include try-convert as part of build [#322](https://github.com/dotnet/upgrade-assistant/issues/322) -- More extensibility samples and docs [#305](https://github.com/dotnet/upgrade-assistant/issues/305) -- Add support to load VB project files [#299](https://github.com/dotnet/upgrade-assistant/issues/299) -- Add support for PCL [#294](https://github.com/dotnet/upgrade-assistant/issues/294) -- Add trouble-shooting tips for installing with invalid/auth NuGet sources [#291](https://github.com/dotnet/upgrade-assistant/issues/291) -- Add a sample demonstrating how to make a custom upgrade step [#283](https://github.com/dotnet/upgrade-assistant/issues/283) -- Add option to provide entry-point and make non-interactive mode visible [#282](https://github.com/dotnet/upgrade-assistant/issues/282) -- Add a way to verify upgrade readiness [#279](https://github.com/dotnet/upgrade-assistant/issues/279) -- Allow controlling file/console logging independently [#278](https://github.com/dotnet/upgrade-assistant/issues/278) -- Add SetPropertyValue to IProjectFile and MSBuildProject.File [#274](https://github.com/dotnet/upgrade-assistant/issues/274) - -### Changed -- Update web references in libraries [#354](https://github.com/dotnet/upgrade-assistant/issues/354) -- Don't save 'upgrade complete' in state file [#352](https://github.com/dotnet/upgrade-assistant/issues/352) -- Set an error code if the app terminates unexpectedly [#348](https://github.com/dotnet/upgrade-assistant/issues/348) -- Allow sub-steps to be conditional on project components [#317](https://github.com/dotnet/upgrade-assistant/issues/317) -- Sets the default serializer to Newtonsoft for Web Apps to improve backward compatibility [#306](https://github.com/dotnet/upgrade-assistant/issues/306) -- Tool now exits with error if run from non-Windows machine [#281](https://github.com/dotnet/upgrade-assistant/issues/281) -- Change to only target windows for now [#264](https://github.com/dotnet/upgrade-assistant/issues/264) -- Package Microsoft.DotNet.UpgradeAssistant.Extensions as a NuGet package [#261](https://github.com/dotnet/upgrade-assistant/issues/261) - -### Fixed -- Don't prompt the user to select a current project if all projects related to the entry point are upgraded. [#351](https://github.com/dotnet/upgrade-assistant/issues/351) -- Fix bugs when upgrading just one project in a larger solution and updated ready checks to apply per-project instead of solution-wide. [#314](https://github.com/dotnet/upgrade-assistant/issues/314) - -### Removed -- Remove MSBuild from being included in projects [#325](https://github.com/dotnet/upgrade-assistant/issues/325) - - -## Version 0.2.212405 - Preview 1 - 2021-02-24 ([Link](https://www.nuget.org/packages/upgrade-assistant/0.2.212405)) - -The Preview 1 release, was the first public release that supports upgrading ASP.NET MVC, Windows Forms, WPF, Console, and Class Libraries .NET Framework applications to .NET 5. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 5332f2b9b..c15b58395 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -3,46 +3,31 @@ One of the easiest ways for you to contribute is to participate in discussions on GitHub issues. You can also contribute by submitting pull requests with code changes. ## General feedback and discussions? + Start a discussion on the [repository issue tracker](https://github.com/dotnet/upgrade-assistant/issues). ## Bugs and feature requests? + For non-security related bugs, please [log a new issue](https://github.com/dotnet/upgrade-assistant/issues) or simply click [this link](https://github.com/dotnet/upgrade-assistant/issues/new?assignees=&labels=bug&template=20_bug_report.md). ## Get and build source code In order to get the source, clone the repo with submodules: -``` +```bash git clone https://github.com/dotnet/upgrade-assistant git submodule update --init --recursive ``` -The project is always targeting the latest SDK, so if you don't have that installed, you can set up a local dev environment by doing the following: - -1. Run `./build.bat` to ensure download the correct SDK -2. Launch `Microsoft.DotNet.UpgradeAssistant.sln` from that directory +Once complete, launch `UpgradeAssistant.Extensions.sln` from the upgrade-assistant directory. ## How to submit a PR We are always happy to see PRs from community members both for bug fixes as well as new features. -To help you be successful we've put together a few simple rules to follow when you prepare to contribute to our codebase: - -**Finding an issue to work on** - We've created a separate bucket of issues, which would be great candidates for community members to contribute to. We mark these issues with the `help wanted` label. You can find all these issues [here](https://github.com/dotnet/upgrade-assistant/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22). - -Within that set, we have additionally marked issues which are good candidates for first-time contributors. Those do not require too much familiarity with the codebase and are more novice-friendly. Those are marked with `good first issue` label. The full list of such issues can be found [here](https://github.com/dotnet/upgrade-assistant/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22). - -If there is some other area not included here where you want to contribute to, first open an issue to describe the problem you are trying to solve and state that you're willing to contribute a fix for it. We will then discuss in that issue, if this is an issue we would like addressed and the best approach to solve it. - -**Before writing code** +To help you be successful we've put together a few simple rules to follow when you prepare to contribute to our codebase: - This can save you a lot of time. We've seen PRs where customers solve an issue in a way which either wouldn't fit into upgrade-assistant because of how it's designed or would change upgrade-assistant in a way which is not something we'd like to do. To avoid these situations, we encourage customers to discuss the preferred design with the team first. To do so, file a new `design proposal` issue, link to the issue you'd like to address and provide detailed information about how you'd like to solve a specific problem. We triage issues periodically and it will not take long for a team member to engage with you on that proposal. - When you get an agreement from our team members that the design proposal you have is solid, then go ahead and prepare the PR. - To file a design proposal, look for the relevant issue in the `New issue` page or simply click [this link](https://github.com/dotnet/upgrade-assistant/issues/new?assignees=&labels=design-proposal&template=10_design_proposal.md): - ![image](https://user-images.githubusercontent.com/34246760/107969904-41b9ae80-6f65-11eb-8b84-d15e7d94753b.png) - -**Before submitting the pull request** +### Before submitting the pull request Before submitting a pull request, make sure that it checks the following requirements: @@ -60,52 +45,27 @@ If your pull request contains any of the below, it's less likely to be merged: - Changes that are mostly about refactoring existing code or code style - Very large PRs that would take hours to review (remember, we're trying to help lots of people at once). For larger work areas, please discuss with us to find ways of breaking it down into smaller, incremental pieces that can go into separate PRs. -**During pull request review** -A core contributor will review your pull request and provide feedback. To ensure that there is not a large backlog of inactive PRs, the pull request will be marked as stale after two weeks of no activity. After another four days, it will be closed. - -## Architecture - -Before contributing to Upgrade Assistant, you should be familiar with the logical components that comprise the tool and architecture validation processes, as described in the [Upgrade Assistant architecture documentation](docs/architecture.md). - -## Resources to help you get started - -Here are some resources to help you get started on how to contribute code or new content. - -* Look at the [Contributor documentation](/README.md) to get started on building the source code on your own. -* ["Help wanted" issues](https://github.com/dotnet/upgrade-assistant/labels/help%20wanted) - these issues are up for grabs. Comment on an issue if you want to create a fix. -* ["Good first issue" issues](https://github.com/dotnet/upgrade-assistant/labels/good%20first%20issue) - we think these are a good for newcomers. -* [Best Practices for Roslyn Analyzers and Code Fixers](./docs/roslyn_best_practices.md) - our goal is to build analyzers that are performant and available for both C# and Visual Basic by default. - -### Identifying the scale - -If you would like to contribute to upgrade-assistant, first identify the scale of what you would like to contribute. If it is small (grammar/spelling or a bug fix) feel free to start working on a fix. If you are submitting a feature or substantial code contribution, please discuss it with the team and ensure it follows the product roadmap. You might also read these two blogs posts on contributing code: [Open Source Contribution Etiquette](http://tirania.org/blog/archive/2010/Dec-31.html) by Miguel de Icaza and [Don't "Push" Your Pull Requests](https://www.igvita.com/2011/12/19/dont-push-your-pull-requests/) by Ilya Grigorik. All code submissions will be rigorously reviewed and tested further by the upgrade-assistant team, and only those that meet an extremely high bar for both quality and design/roadmap appropriateness will be merged into the source. - ### Submitting a pull request You will need to sign a [Contributor License Agreement](https://cla.dotnetfoundation.org/) when submitting your pull request. To complete the Contributor License Agreement (CLA), you will need to follow the instructions provided by the CLA bot when you send the pull request. This needs to only be done once for any .NET Foundation OSS project. If you don't know what a pull request is read this article: https://help.github.com/articles/using-pull-requests. Make sure the repository can build and all tests pass. Familiarize yourself with the project workflow and our coding conventions. For general coding guidelines, see [here](https://github.com/dotnet/aspnetcore/wiki/Engineering-guidelines#coding-guidelines). -### Tests +### During pull request review -[Tests](/tests) in upgrade-assistant follow the following pattern: +A core contributor will review your pull request and provide feedback. To ensure that there is not a large backlog of inactive PRs, the pull request will be marked as stale after two weeks of no activity. After another four days, it will be closed. -- Testing Framework used is [XUnit](https://docs.microsoft.com/en-us/dotnet/core/testing/unit-testing-with-dotnet-test). -- Mocking Framework used is [Moq](https://github.com/Moq/moq4) (with [AutoMock](https://autofaccn.readthedocs.io/en/latest/integration/moq.html)). -- Data generation Framework used is [AutoFixture](https://github.com/AutoFixture/AutoFixture/wiki/Cheat-Sheet). +## Resources to help you get started -Tests need to be provided for every bug/feature(except docs or samples) that is completed. +Here are some resources to help you get started on how to contribute code or new content. -Ad-hoc testing of the analyzer/codefixers can be done via `src/extensions/default/analyzers/Vsix/Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Vsix.csproj`. Set it as start-up and it will launch the experimental instance of Visual Studio with the analyzers/codefixers added as an extension. +- Look at the [Contributor documentation](/README.md) to get started on building the source code on your own. +- The **UpgradeAssistant.Mappings.Tests** project will validate that the syntax of packagemap and apimap json files is correct. ### Feedback Your pull request will now go through extensive checks by the subject matter experts on our team. Please be patient while upgrade-assistant team gets through it. Update your pull request according to feedback until it is approved by one of the upgrade-assistant team members. Once the PR is approved, one of the upgrade-assistant team members will merge your PR into the repo. -### Dev Environment FAQ -The tool may produce long file paths during build, in order to not run into PathTooLongException either change the LongPathsEnabled setting under registry or build upgrade-assistant from a folder location with a shorter path. - -More information on DevOps, check this [link](./docs/devops.md). - ## Code of conduct + See [CODE-OF-CONDUCT.md](./CODE-OF-CONDUCT.md) diff --git a/README.md b/README.md index b883323e2..1121dcb98 100644 --- a/README.md +++ b/README.md @@ -36,13 +36,10 @@ The tool supports C# and Visual Basic projects. ##### Directory Structure -In the [src/Microsoft.UpgradeAssistant.Mappings/mappings](src/Microsoft.UpgradeAssistant.Mappings/mappings) directory, each vendor *SHOULD* create their own subdirectory. +In the [src/UpgradeAssistant.Mappings/mappings](src/UpgradeAssistant.Mappings/mappings) directory, each vendor *SHOULD* create their own subdirectory. Each vendor *MAY* decide to subdivide their vendor-specific subdirectory into further subdirectories based on product names or any other criteria that makes sense for their needs. -For example, the [sample mappings directory](samples/mappings) contains a subdirectory called *Microsoft* that is further subdivided by subdirectories including -*AzureFunctions*, *Common*, *Maui*, *Web*, *WinUI* and *Windows.Forms*. - Nested in these subdirectories are 3 types of files: *metadata.json*, *packagemap.json*, and *apimap.json*. ##### metadata.json diff --git a/azure-pipelines/build.yml b/azure-pipelines/build.yml index 42175de86..7292b220e 100644 --- a/azure-pipelines/build.yml +++ b/azure-pipelines/build.yml @@ -1,13 +1,18 @@ name: $(Date:yyyyMMdd).$(Rev:r) +parameters: +- name: OfficialRelease + displayName: "Build and publish an official release" + type: boolean + default: false variables: +- name: Build.OfficialRelease + value: ${{ parameters.OfficialRelease }} - name: Codeql.Enabled value: true -- name: PublishNuGetOrg - value: false - name: TeamName - value: vscx-tools-authoring + value: dotnetupgradeassistant - name: TimestampPackage - value: true + value: ${{ not (parameters.OfficialRelease) }} trigger: branches: include: @@ -42,7 +47,7 @@ extends: publishVstsFeed: 97a41293-2972-4f48-8c0e-05493ae82010 - output: nuget displayName: 'NuGet push to NuGet.org' - condition: and(and(succeeded(), eq(variables['PublishNuGetOrg'], 'true')), eq(variables['TimestampPackage'], 'false')) + condition: and(succeeded(), eq(variables['Build.OfficialRelease'], 'true')) packageParentPath: '$(Build.ArtifactStagingDirectory)\Packages' packagesToPush: $(Build.ArtifactStagingDirectory)\Packages\*.nupkg;!$(Build.ArtifactStagingDirectory)\Packages\*.symbols.nupkg nuGetFeedType: external @@ -91,5 +96,5 @@ extends: displayName: Build Mappings NuGet package inputs: solution: src\UpgradeAssistant.Mappings\UpgradeAssistant.Mappings.csproj - msbuildArgs: /t:Pack /p:PackageOutputPath="$(Build.ArtifactStagingDirectory)\Packages" /p:TimestampPackage=$(TimestampPackage) + msbuildArgs: /t:Pack /p:TimestampPackage=$(TimestampPackage) /p:PackageOutputPath="$(Build.ArtifactStagingDirectory)\Packages" configuration: Release diff --git a/src/UpgradeAssistant.Mappings/mappings/jsuarezruiz/AlohaKit.Animations/alohakit.animations.apimap.json b/src/UpgradeAssistant.Mappings/mappings/jsuarezruiz/AlohaKit.Animations/alohakit.animations.apimap.json new file mode 100644 index 000000000..7c6614820 --- /dev/null +++ b/src/UpgradeAssistant.Mappings/mappings/jsuarezruiz/AlohaKit.Animations/alohakit.animations.apimap.json @@ -0,0 +1,7 @@ +{ + "Xamanimation": { + "value": "AlohaKit.Animations", + "kind": "namespace", + "state": "Replaced" + } +} \ No newline at end of file diff --git a/src/UpgradeAssistant.Mappings/mappings/jsuarezruiz/AlohaKit.Animations/alohakit.animations.packagemap.json b/src/UpgradeAssistant.Mappings/mappings/jsuarezruiz/AlohaKit.Animations/alohakit.animations.packagemap.json new file mode 100644 index 000000000..3b853eb4b --- /dev/null +++ b/src/UpgradeAssistant.Mappings/mappings/jsuarezruiz/AlohaKit.Animations/alohakit.animations.packagemap.json @@ -0,0 +1,15 @@ +{ + "packages": [ + { + "name": "Xamanimation", + "frameworks": { + ".NETCoreApp,Version=v8.0": [ + { + "name": "AlohaKit.Animations", + "version": "1.*" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/src/UpgradeAssistant.Mappings/mappings/jsuarezruiz/AlohaKit.Animations/metadata.json b/src/UpgradeAssistant.Mappings/mappings/jsuarezruiz/AlohaKit.Animations/metadata.json new file mode 100644 index 000000000..9f075dbea --- /dev/null +++ b/src/UpgradeAssistant.Mappings/mappings/jsuarezruiz/AlohaKit.Animations/metadata.json @@ -0,0 +1,4 @@ +{ + "traits": "(Xamarin | Maui)", + "order": 1000 +}