diff --git a/build/BundledRuntimes.props b/build/BundledRuntimes.props index 45234b98b..40003b788 100644 --- a/build/BundledRuntimes.props +++ b/build/BundledRuntimes.props @@ -6,21 +6,24 @@ -internal + + -upgrade + - dotnet-runtime-deps-$(SharedHostVersion)-$(CoreSetupRid)$(InstallerExtension) + dotnet-runtime-deps-$(SharedHostVersion)-$(CoreSetupRid)$(InstallerEndSuffix)$(InstallerExtension) $(PackagesDirectory)/$(DownloadedRuntimeDepsInstallerFileName) $(CoreSetupRid) x64 - dotnet-host$(InstallerStartSuffix)-$(SharedHostVersion)-$(SharedFrameworkInstallerFileRid)$(InstallerExtension) + dotnet-host$(InstallerStartSuffix)-$(SharedHostVersion)-$(SharedFrameworkInstallerFileRid)$(InstallerEndSuffix)$(InstallerExtension) $(PackagesDirectory)/$(DownloadedSharedHostInstallerFileName) - dotnet-hostfxr$(InstallerStartSuffix)-$(HostFxrVersion)-$(SharedFrameworkInstallerFileRid)$(InstallerExtension) + dotnet-hostfxr$(InstallerStartSuffix)-$(HostFxrVersion)-$(SharedFrameworkInstallerFileRid)$(InstallerEndSuffix)$(InstallerExtension) $(PackagesDirectory)/$(DownloadedHostFxrInstallerFileName) - dotnet-runtime$(InstallerStartSuffix)-$(MicrosoftNETCoreAppPackageVersion)-$(SharedFrameworkInstallerFileRid)$(InstallerExtension) + dotnet-runtime$(InstallerStartSuffix)-$(MicrosoftNETCoreAppPackageVersion)-$(SharedFrameworkInstallerFileRid)$(InstallerEndSuffix)$(InstallerExtension) $(PackagesDirectory)/$(DownloadedSharedFrameworkInstallerFileName) @@ -34,7 +37,7 @@ $(AspNetCoreSharedFxInstallerRid) x64 - aspnetcore-runtime-$(AspNetCoreVersion)-$(AspNetCoreSharedFxInstallerRid)$(InstallerExtension) + aspnetcore-runtime-$(AspNetCoreVersion)-$(AspNetCoreSharedFxInstallerRid)$(InstallerEndSuffix)$(InstallerExtension) aspnetcore-runtime-internal-$(AspNetCoreVersion)-$(AspNetCoreSharedFxInstallerRid).wixlib $(PackagesDirectory)/$(DownloadedAspNetCoreSharedFxInstallerFileName) diff --git a/build/DependencyVersions.props b/build/DependencyVersions.props index 541798aac..abc39ac02 100644 --- a/build/DependencyVersions.props +++ b/build/DependencyVersions.props @@ -1,9 +1,9 @@ - 2.1.0-rc1-30661 + 2.1.0-rtm-30752 $(MicrosoftAspNetCoreAllPackageVersion) - 2.1.0-rtm-26505-04 + 2.1.0-rtm-26508-02 $(MicrosoftNETCoreAppPackageVersion) 15.7.177 $(MicrosoftBuildPackageVersion) @@ -29,8 +29,8 @@ $(MicrosoftTemplateEngineCliPackageVersion) $(MicrosoftTemplateEngineCliPackageVersion) $(MicrosoftTemplateEngineCliPackageVersion) - 2.1.0-rtm-26505-04 - 2.1.0-rtm-26505-04 + 2.1.0-rtm-26508-02 + 2.1.0-rtm-26508-02 0.1.1-rtm-62905-02 1.3.1-alpha-62905-02 $(MicrosoftDotNetProjectJsonMigrationPackageVersion) @@ -44,7 +44,7 @@ $(NuGetBuildTasksPackageVersion) $(NuGetBuildTasksPackageVersion) $(NuGetBuildTasksPackageVersion) - 15.7.0 + 15.8.0-preview-20180510-03 $(MicrosoftNETTestSdkPackageVersion) $(MicrosoftNETTestSdkPackageVersion) 0.2.0-beta-000042 diff --git a/build/Package.targets b/build/Package.targets index 77ea2aa33..cbb5d7152 100644 --- a/build/Package.targets +++ b/build/Package.targets @@ -4,6 +4,7 @@ + diff --git a/build/Version.props b/build/Version.props index 2877c012a..d10ef2251 100644 --- a/build/Version.props +++ b/build/Version.props @@ -5,6 +5,7 @@ 100 preview1 + $(VersionMajor).$(VersionMinor) $(VersionMajor).$(VersionMinor).$(VersionPatch) $(CliVersionNoSuffix)-$(ReleaseSuffix) $(CliVersionNoSuffix) - $(ReleaseSuffix) diff --git a/build/package/Installer.DEB.targets b/build/package/Installer.DEB.targets index a3800edce..349089d86 100644 --- a/build/package/Installer.DEB.targets +++ b/build/package/Installer.DEB.targets @@ -1,11 +1,8 @@ - - dotnet-sdk-$(SdkVersion) - - + DependsOnTargets="Init; + CalculateLinuxNativeInstallerDependencyVersions"> $(MSBuildThisFileDirectory)/dotnet-deb-tool-consumer @@ -25,18 +22,23 @@ - $(MicrosoftNETCoreAppPackageVersion) + $(MicrosoftNETCoreAppMajorMinorVersion) dotnet-runtime-deps-$(RuntimeDepsPackageVersion) - $(SdkVersion) + $(MajorMinorVersion) dotnet-sdk-$(SdkDebianPackageVersion) - $(MicrosoftNETCoreAppPackageVersion) + $(MicrosoftNETCoreAppPackageVersion) + $(MicrosoftNETCoreAppMajorMinorVersion) + dotnet-runtime-$(SharedFxDebianPackageFileVersion) + $(SharedFxDebianPackageFileName.ToLower()) dotnet-runtime-$(SharedFxDebianPackageVersion) $(SharedFxDebianPackageName.ToLower()) - $(HostFxrVersion) + $(HostFxrMajorMinorVersion) dotnet-hostfxr-$(HostFxrDebianPackageVersion) $(HostFxrDebianPackageName.ToLower()) dotnet-host - aspnetcore-runtime-$(AspNetCoreVersion) + aspnetcore-runtime-$(AspNetCoreVersion) + $(AspNetCoreSharedFxDebianPackageFileName.ToLower()) + aspnetcore-runtime-$(AspNetCoreMajorMinorVersion) $(AspNetCoreSharedFxDebianPackageName.ToLower()) @@ -99,11 +101,17 @@ - $(SdkVersion) + $(MajorMinorVersion) $(SdkBrandName) + + $(MicrosoftNETCoreAppPackageVersionWithTilda) + + + $(AspNetCoreVersionWithTilda) + $(SdkVersion) diff --git a/build/package/Installer.RPM.targets b/build/package/Installer.RPM.targets index 4fbc87067..e6e4fa917 100644 --- a/build/package/Installer.RPM.targets +++ b/build/package/Installer.RPM.targets @@ -68,13 +68,13 @@ - $(MicrosoftNETCoreAppPackageVersion) + $(MicrosoftNETCoreAppMajorMinorPatchVersion) $(AspNetCoreSharedFxRpmPackageName) - $(AspNetCoreVersion) + $(AspNetCoreMajorMinorPatchVersion) $(SharedFxRpmPackageName) @@ -143,10 +143,10 @@ - + $(MicrosoftNETCoreAppPackageVersion) - dotnet-runtime-deps-$(RuntimeDepsPackageVersion) + dotnet-runtime-deps-$(RuntimeDepsPackageVersion) $(SdkVersion) $(OutputDirectory)/sdk $(InstallerOutputDirectory)/$(DistroSpecificArtifactNameWithVersionCombinedHostHostFxrFrameworkSdk)$(InstallerExtension) @@ -168,17 +168,22 @@ - $(SdkVersion) + $(MajorMinorVersion) $(ArtifactNameCombinedHostHostFxrFrameworkSdk)-$(SdkRpmPackageVersion) - $(MicrosoftNETCoreAppPackageVersion) + $(MicrosoftNETCoreAppMajorMinorVersion) + $(MicrosoftNETCoreAppPackageVersion) dotnet-runtime-$(SharedFxRpmPackageVersion) $(SharedFxRpmPackageName.ToLower()) + dotnet-runtime-$(SharedFxRpmPackageFileVersion) + $(SharedFxRpmPackageFileName.ToLower()) $(HostFxrVersion) dotnet-hostfxr-$(HostFxrRpmPackageVersion) $(HostFxrRpmPackageName.ToLower()) dotnet-host - aspnetcore-runtime-$(AspNetCoreVersion) + aspnetcore-runtime-$(AspNetCoreMajorMinorVersion) $(AspNetCoreSharedFxRpmPackageName.ToLower()) + aspnetcore-runtime-$(AspNetCoreVersion) + $(AspNetCoreSharedFxRpmPackageFileName.ToLower()) $(ScriptsDir)/$(AfterInstallHostScriptName) $(RpmLayoutScripts)/$(AfterInstallHostScriptName) @@ -238,10 +243,10 @@ - - + + - + diff --git a/build/package/LinuxNativeInstallerDependencyVersions.targets b/build/package/LinuxNativeInstallerDependencyVersions.targets new file mode 100644 index 000000000..27acc4fb3 --- /dev/null +++ b/build/package/LinuxNativeInstallerDependencyVersions.targets @@ -0,0 +1,35 @@ + + + + + $([MSBuild]::Add($(MicrosoftNETCoreAppPackageVersion.IndexOf('.')), 1)) + $(MicrosoftNETCoreAppPackageVersion.IndexOf('.', $(MicrosoftNETCoreAppPatchSeparatorIndex))) + $(MicrosoftNETCoreAppPackageVersion.Substring(0, $(MicrosoftNETCoreAppPatchSeparatorIndex))) + + $(MicrosoftNETCoreAppPackageVersion.IndexOf('-')) + $(MicrosoftNETCoreAppPackageVersion) + $(MicrosoftNETCoreAppPackageVersion.Substring(0, $(MicrosoftNETCoreAppVersionPreReleaseSeparator))) + $([MSBuild]::Add($(MicrosoftNETCoreAppVersionPreReleaseSeparator), 1)) + $(MicrosoftNETCoreAppPackageVersion.Substring($(MicrosoftNETCoreAppVersionPreReleaseSeparatorStartIndex))) + $(MicrosoftNETCoreAppMajorMinorPatchVersion) + $(MicrosoftNETCoreAppMajorMinorPatchVersion)~$(MicrosoftNETCoreVersionSuffix) + + $([MSBuild]::Add($(AspNetCoreVersion.IndexOf('.')), 1)) + $(AspNetCoreVersion.IndexOf('.', $(AspNetCoreVersionPatchSeparatorIndex))) + $(AspNetCoreVersion.Substring(0, $(AspNetCoreVersionPatchSeparatorIndex))) + + $(AspNetCoreVersion.IndexOf('-')) + $(AspNetCoreVersion) + $(AspNetCoreVersion.Substring(0, $(AspNetCoreVersionPreReleaseSeparator))) + $([MSBuild]::Add($(AspNetCoreVersionPreReleaseSeparator), 1)) + $(AspNetCoreVersion.Substring($(AspNetCoreVersionPreReleaseSeparatorStartIndex))) + $(AspNetCoreMajorMinorPatchVersion) + $(AspNetCoreMajorMinorPatchVersion)~$(AspNetCoreVersionSuffix) + + $([MSBuild]::Add($(HostFxrVersion.IndexOf('.')), 1)) + $(HostFxrVersion.IndexOf('.', $(HostFxrVersionPatchSeparatorIndex))) + $(HostFxrVersion.Substring(0, $(HostFxrVersionPatchSeparatorIndex))) + + + + diff --git a/packaging/deb/dotnet-debian_config.json b/packaging/deb/dotnet-debian_config.json index 307c8b897..e6f046507 100644 --- a/packaging/deb/dotnet-debian_config.json +++ b/packaging/deb/dotnet-debian_config.json @@ -29,7 +29,7 @@ }, "debian_dependencies":{ - "%SHARED_FRAMEWORK_DEBIAN_PACKAGE_NAME%" : {}%SHARED_FRAMEWORK_DEBIAN_PACKAGE_ADDITIONAL_DEPENDENCY%, - "%ASPNETCORE_SHAREDFX_DEBIAN_PACKAGE_NAME%": {} + "%SHARED_FRAMEWORK_DEBIAN_PACKAGE_NAME%" : { "package_version": "%SHARED_FRAMEWORK_DEBIAN_PACKAGE_VERSIONS%" }%SHARED_FRAMEWORK_DEBIAN_PACKAGE_ADDITIONAL_DEPENDENCY%, + "%ASPNETCORE_SHAREDFX_DEBIAN_PACKAGE_NAME%": { "package_version": "%ASPNETCORE_SHAREDFX_DEBIAN_PACKAGE_VERSION%" } } } diff --git a/src/Microsoft.DotNet.Configurer/NoOpFileSentinel.cs b/src/Microsoft.DotNet.Configurer/NoOpFileSentinel.cs index e77097011..80e3d0831 100644 --- a/src/Microsoft.DotNet.Configurer/NoOpFileSentinel.cs +++ b/src/Microsoft.DotNet.Configurer/NoOpFileSentinel.cs @@ -7,9 +7,16 @@ namespace Microsoft.DotNet.Configurer { public class NoOpFileSentinel : IFileSentinel { + private bool _exists; + + public NoOpFileSentinel(bool exists) + { + _exists = exists; + } + public bool Exists() { - return true; + return _exists; } public void Create() diff --git a/src/dotnet/Program.cs b/src/dotnet/Program.cs index 6ae1409ce..ce08bcb56 100644 --- a/src/dotnet/Program.cs +++ b/src/dotnet/Program.cs @@ -147,7 +147,7 @@ namespace Microsoft.DotNet.Cli { aspNetCertificateSentinel = new NoOpAspNetCertificateSentinel(); firstTimeUseNoticeSentinel = new NoOpFirstTimeUseNoticeSentinel(); - toolPathSentinel = new NoOpFileSentinel(); + toolPathSentinel = new NoOpFileSentinel(exists: false); hasSuperUserAccess = true; } diff --git a/test/dotnet.Tests/GivenThatTheUserIsRunningDotNetForTheFirstTime.cs b/test/dotnet.Tests/GivenThatTheUserIsRunningDotNetForTheFirstTime.cs index bccc3c053..b554d528e 100644 --- a/test/dotnet.Tests/GivenThatTheUserIsRunningDotNetForTheFirstTime.cs +++ b/test/dotnet.Tests/GivenThatTheUserIsRunningDotNetForTheFirstTime.cs @@ -6,6 +6,7 @@ using System.IO; using System.Collections.Generic; using Microsoft.DotNet.Cli.Utils; using Microsoft.DotNet.Cli; +using Microsoft.DotNet.Configurer; using Microsoft.DotNet.TestFramework; using Microsoft.DotNet.Tools.Test.Utilities; using Xunit; @@ -193,6 +194,49 @@ namespace Microsoft.DotNet.Tests .ContainVisuallySameFragment(Configurer.LocalizableStrings.AspNetCertificateInstalled); } + [LinuxOnlyFact] + public void ItCreatesTheProfileFileOnLinuxWhenInvokedFromNativeInstaller() + { + var emptyHome = Path.Combine(_testDirectory, "empty_home"); + var profiled = Path.Combine(_testDirectory, "profile.d"); + + var command = new DotnetCommand().WithWorkingDirectory(_testDirectory); + command.Environment["HOME"] = emptyHome; + command.Environment["USERPROFILE"] = emptyHome; + command.Environment["APPDATA"] = emptyHome; + command.Environment["DOTNET_CLI_TEST_FALLBACKFOLDER"] = _nugetFallbackFolder.FullName; + command.Environment["DOTNET_SKIP_FIRST_TIME_EXPERIENCE"] = ""; + command.Environment["DOTNET_CLI_TEST_LINUX_PROFILED_PATH"] = profiled; + command.Environment["DOTNET_DISABLE_MULTICOREJIT"] = "true"; + command.Environment["SkipInvalidConfigurations"] = "true"; + command.ExecuteWithCapturedOutput("internal-reportinstallsuccess test").Should().Pass(); + + File.Exists(profiled).Should().BeTrue(); + File.ReadAllText(profiled).Should().Be( + $"export PATH=\"$PATH:{new CliFolderPathCalculator().ToolsShimPathInUnix.PathWithDollar}\""); + } + + [MacOsOnlyFact] + public void ItCreatesThePathDFileOnMacOSWhenInvokedFromNativeInstaller() + { + var emptyHome = Path.Combine(_testDirectory, "empty_home"); + var pathsd = Path.Combine(_testDirectory, "paths.d"); + + var command = new DotnetCommand().WithWorkingDirectory(_testDirectory); + command.Environment["HOME"] = emptyHome; + command.Environment["USERPROFILE"] = emptyHome; + command.Environment["APPDATA"] = emptyHome; + command.Environment["DOTNET_CLI_TEST_FALLBACKFOLDER"] = _nugetFallbackFolder.FullName; + command.Environment["DOTNET_SKIP_FIRST_TIME_EXPERIENCE"] = ""; + command.Environment["DOTNET_CLI_TEST_OSX_PATHSD_PATH"] = pathsd; + command.Environment["DOTNET_DISABLE_MULTICOREJIT"] = "true"; + command.Environment["SkipInvalidConfigurations"] = "true"; + command.ExecuteWithCapturedOutput("internal-reportinstallsuccess test").Should().Pass(); + + File.Exists(pathsd).Should().BeTrue(); + File.ReadAllText(pathsd).Should().Be(new CliFolderPathCalculator().ToolsShimPathInUnix.PathWithTilde); + } + [Fact] public void ItRestoresTheNuGetPackagesToTheNuGetCacheFolder() {