Commit graph

158 commits

Author SHA1 Message Date
Dustin Campbell
0a62481cc0 Create backup folder in the directory where 'dotnet migrate' is executed (#5306)
* Create backup folder in the directory where 'dotnet migrate' is executed

With this change, 'dotnet migrate' will create the backup folder in the workspace directory rather
than the parent of the workspace directory. This solves two problems:

1. It makes it easier for the user where the backup is -- it's in the directory they targeted with
'dotnet migrate'.
2. It solves a problem of file oollisions with global.json files when migrating multiple projects.
Consider the following directory structure:

    root
        |
        project1
            |
            global.json
            |
            src
                |
                project1
        project2
            |
            global.json
            |
            src
                |
                project2

    Prior to this change, running 'dotnet migrate' project1 and then running it again in project2
    would have caused an exception to be thrown because the migration would try to produce a backup
    folder like so:

    root
        |
        backup
        |  |
        |   global.json
        |   |
        |   project1
        |   |
        |   project2
        |
        |
        project1
            |
            src
                |
                project1
        project2
            |
            src
                |
                project2

    Now, we produce the following structure, which has no collisions:

    root
        |
        project1
            |
            backup
            |   |
            |   global.json
            |   |
            |   project1
            |
            src
                |
                project1
        |
        project2
            |
            backup
            |   |
            |   global.json
            |   |
            |   project2
            |
            src
                |
                project2

In addition, to help avoid further collisions, a number is appened to the backup folder's name if
it already exists. So, if the user runs dotnet migrate again for some reason, they'll see backup_1,
backup_2, etc.

* Fix test helper

* Fix foolish bug causing infinite loop

* Fix up a couple more tests

* Rework MigrationBackupPlan to process all projects at once

* Fix up tests

* Still fixing tests

* Compute common root folder of projects to determine where backup folder should be placed

* Fix typo

* Fix test to not look in backup folder now that it's in a better location
2017-01-21 01:58:28 -08:00
Livar Cunha
b8da3b9a87 Updating the versions of xunit 2.2.0-beta5-build3474 and xunit runner to 2.2.0-beta5-build1225. 2017-01-16 13:08:40 -08:00
Livar Cunha
18a3dd60b5 Fixing an issue where packages with a filter but no match were not being migrated as is, instead they were being dropped. 2017-01-12 18:23:35 -08:00
Livar
a9c5f4e90a Merge pull request #5293 from dotnet/dev/jgoshi/issue5253
Migration: do not inject built in compile includes that the SDK does
2017-01-12 15:00:03 -08:00
Pranav K
80c435e6a1 Add support for migrating Microsoft.AspNetCore.Mvc.ViewCompilation 2017-01-12 13:49:28 -08:00
Livar Cunha
deb50a3cc7 Switching to using a csv as the source of our lts packages. Also, this is a more comprehensive list. 2017-01-12 11:38:05 -08:00
Livar Cunha
12abcf7208 Adding a few more packages that were not in the manifest and moving some tests around. 2017-01-12 11:38:05 -08:00
Livar Cunha
a0aa8150de Migrating packages to LTS (1.0.3) versions if they have a smaller version than the LTS one. 2017-01-12 11:38:05 -08:00
Livar Cunha
89fba856e8 Adding ranges to the source mappings so that we can specify the origin should match this range and migrate to that version. We use this to handle LTS/FTS migration and will use that for the LTS uplift. 2017-01-12 11:38:05 -08:00
Justin Goshi
71da7f6a45 Migration: do not inject built in compile includes that the SDK does 2017-01-12 11:22:41 -08:00
Justin Goshi
03be0e56d4 Migration: Do not add RIDs for Library projects (#5279)
* WIP

* Do not add runtime identifiers for libraries

* Reusing an existing test project

* Fix up tests
2017-01-11 17:05:12 -08:00
Harsh Jain
ce64bee309 updated veersion of Microsoft.NET.Test.sdk for failing tests. 2017-01-08 03:01:58 +05:30
Livar
5bdbe354b2 Merge pull request #5226 from livarcocc/migrate_full_framework
Migration will now pick win7-x86 as the RuntimeIdentifier to be used by Full Framework TFMs
2017-01-06 14:48:35 -08:00
Livar Cunha
b41eb43883 Updating our projects and test assets to work with the latest SDK. 2017-01-05 19:44:52 -08:00
Livar Cunha
abe7641f03 Migration will now pick win7-x86 as the RuntimeIdentifier to be used by Full Framework TFMs when no RIDs exist in the source PJ. This will allow build/publish etc to continue working in csproj without extra RIDs parameters in the command line. 2017-01-05 16:52:02 -08:00
Livar
80f2ef6533 Merge pull request #5181 from harshjain2/clirunsettings
Added ability to pass runsettings as commandline parameters after --
2017-01-05 16:22:08 -08:00
Livar
8effe48566 Merge pull request #5212 from livarcocc/update_sdk_with_globbing
Updating the SDK to an SDK that includes globing for source and resources
2017-01-05 13:49:32 -08:00
Livar Cunha
3a4e23e373 Updating the SDK to an SDK that includes globing for source and resources implicitly. 2017-01-05 12:31:48 -08:00
Livar Cunha
69e963669f Adding Release to the sdk defined constants so that we don't emit it during migration anymore. 2017-01-05 11:46:02 -08:00
Harsh Jain
f04930658d Merge branch 'rel/1.0.0' into clirunsettings 2017-01-06 01:15:49 +05:30
Eric Erhardt
639d467c14 Merge pull request #5210 from eerhardt/UpdateSharedFx103
Update Microsoft.NETCore.App to 1.0.3.
2017-01-05 12:06:57 -06:00
Eric Erhardt
a80e8fa636 Update Microsoft.NETCore.App to 1.0.3. 2017-01-05 08:57:53 -06:00
Livar Cunha
a4dcff9ea8 Addressing code review comments. 2017-01-04 12:25:48 -08:00
Livar Cunha
47eafb9ef4 Removing the PackageTargetFallback condition on TFM when there is only a single TFM 2017-01-03 20:36:51 -08:00
Livar Cunha
e9561b3679 Removing the IsCrossTargetBuild from migrated scripts when there is only a single TFM 2017-01-03 17:15:39 -08:00
Harsh Jain
473d3cca37 Merge branch 'rel/1.0.0' into clirunsettings 2017-01-02 19:54:31 +05:30
Harsh Jain
245727183c Handling both mstest args and runsettings options after -- 2016-12-30 15:34:00 +05:30
Harsh Jain
8d86e14d44 Added support for passing runsettings options through command line after -- 2016-12-30 11:27:37 +05:30
Livar Cunha
24b5e00d14 Updating the expected versions in the tests for the test sdk and the test adapter and framework. 2016-12-28 23:13:02 -08:00
Livar Cunha
ad88058266 Stopped doing hoisting of transitive project dependencies and references. We also don't validate if a dependency exist, since migration strictly speaking does not need it. We move the project.json and the csproj will fail to build just like the project.json would. 2016-12-28 14:48:38 -08:00
Livar
b4ef34bc38 Merge pull request #5104 from livarcocc/update_sdks
Updating the projects files in the repo to use the SDK attribute.
2016-12-21 15:34:33 -08:00
Jon Sequeira
3b0a2f5d20 Merge pull request #5106 from jonsequitur/make-migration-backup-folder-peer-of-project
make migration backup folder a sibling of the project root
2016-12-21 12:12:11 -08:00
Livar
10a1695d6c Merge pull request #5090 from livarcocc/migrate_app_config
Emitting a None item for App.config if one exists side-by-side to the project.json
2016-12-20 16:43:24 -08:00
Livar Cunha
3b081316ad Updating the SDK version in the BundleSdks.props and adding dirs.props back to all csprojs but the TestAssets ones. 2016-12-20 16:38:04 -08:00
Livar Cunha
fadacc0aac Updating the projects files in the repo to use the SDK attribute. 2016-12-20 15:52:50 -08:00
Livar Cunha
4bda166b2f Emitting a None item for App.config if one exists side-by-side to the project.json. 2016-12-20 14:42:31 -08:00
jonsequitur
620e573f95 make migration backup folder a sibling of the project root 2016-12-20 14:35:52 -08:00
Livar
134e9af798 Merge pull request #5078 from livarcocc/preserve_rids_from_pj
Only adding rids for full framework TFMs if the project.json does not have runtimes
2016-12-19 16:20:12 -08:00
Livar
2aa166b5d0 Merge pull request #5069 from livarcocc/version_attributes
Making version an attribute for packagereference and dotnetclitoolreference
2016-12-19 09:48:00 -08:00
Livar Cunha
b2ce6c794a Only adding rids for full framework TFMs if the project.json does not already have Runtimes in its Runtimes section. 2016-12-18 18:45:35 -08:00
Livar Cunha
e1c0bbe0f7 Making version an attribute for packagereference and dotnetclitoolreference. 2016-12-16 19:13:37 -08:00
Livar
a9ca6d8c5b Merge pull request #5062 from livarcocc/clean_empty_targets_migration
Added a clean empty targets method to CleanOutputProjectRule
2016-12-16 18:07:37 -08:00
Livar Cunha
d6d6fc612b Added a unit test for cleaning empty targets.
Added a clean empty targets method to CleanOutputProjectRule that removes any targets without content inside of them from the csproj.
2016-12-16 13:31:42 -08:00
Livar Cunha
e710958b79 Adding a Exclude @(EmbeddedResource) during migration so that we don't get duplicate resources when building migrated apps. 2016-12-15 11:17:20 -08:00
Livar Cunha
56dd76bdb0 Adding Update under Content for BuildOptions as well, but limiting this change only to Web Apps at the moment, because regular SDK does not have Content Include=**/* in place yet. 2016-12-13 16:45:40 -08:00
Livar Cunha
a22f4be938 Adding a UpdateContextTransform that generates items with the Update attribute set instead of Include. Also, removed the Exists condition for published content, because now that we are using Update, that check is not needed. I left the option to set a condition on the metadata though. 2016-12-13 16:45:39 -08:00
Livar Cunha
84682562bf Adding a condition to Content CopyToPublishDirectory to validate that the file exists before trying to copy it to output, to keep the same functionality as it existed in PJ. In MSBuild world, without this condition, CopyToPublishDirectory will fail. 2016-12-13 16:45:39 -08:00
Livar
bd590f51e6 Emitting PackageId whenever we emit AssemblyName. We need to do this to preserve the behavior from PJ where the package id matched the containing PJ folder name. In MSBuild, PackageId will match AssemblyName, unless it is explicitly specified. (#4990) 2016-12-09 16:10:16 -08:00
Piotr Puszkiewicz
70c8ecbf16 Merge branch 'rel/1.0.0' into migrate_pj_without_frameworks 2016-12-09 00:30:36 -08:00
Livar
1fd99f1588 Merge rel/1.0.0-preview4 back into rel/1.0.0 (#4974)
* Updating the preview4 channel to rel-1.0.0-preview4

* Add more xlf files for new strings

* bundle fsharp sdk, only Sdk directory is required

* align f# console proj

* align f# lib template

* align f# mstest template

* align f# xunit template

* align f# web template

* fix mstest package version, aligned to c#

* remove unused directories from bundled sdks

* Adding a SdkNugetVersion property when invoking dotnet pack on test packages so that test packages can reference exact packages. We need that because of https://github.com/NuGet/Home/issues/4063. Without it, pack creates the nuspec with a version like 1.0.0-version-, instead of 1.0.0-version-<version_used_in_build>, which leads to problems when restoring the tool. Like, it ends up restoring to the closest version of the package (oldest), instead of the latest.

* Update web template for Web SDK 154 (#4948)

* Update WebSDK version

* Update web template to get rid of globs

https://github.com/aspnet/Templates/pull/735

* MSBuild to 15.1.458 (#4950)

* Adding MigrateWebSdkRule to the DefaultMigrationRuleSet (#4963)

* Adding MigrateWebSdkRule to the DefaultMigrationRuleSet and adding a E2E test to cover it.

* Do not migrate compile and EmbeddedResources for web application, because those are included in the Web Sdk already.

* Addressing code review comments
2016-12-09 00:30:02 -08:00