Skip to content

Commit

Permalink
Prepare to ship fcs 38.0.1 (#10592)
Browse files Browse the repository at this point in the history
* add check for system assemblies completion

* add check for system assemblies completion

* add check for system assemblies completion

* merge issues

* add FCS release definition links

* Fix FSC nuget package dependencies.  Use FSharp.Org tool Icon as package icon. (#10588)

* src/fsharp/DotNetFrameworkDependencies.fs

* System.Config

* version

* Update bframework refencing (#10502)

* Fix release notes link

* temp (#10506)

Co-authored-by: Don Syme <donsyme@fastmail.com>
Co-authored-by: Brett V. Forsgren <brettfo@microsoft.com>
  • Loading branch information
3 people authored Dec 4, 2020
1 parent 952f389 commit d2ef973
Show file tree
Hide file tree
Showing 9 changed files with 250 additions and 83 deletions.
12 changes: 10 additions & 2 deletions INTERNAL.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,13 +56,21 @@ it's a good idea to check the previous link for any old or stalled insertions in
## Less interesting links

[FSharp.Core (Official NuGet Release)](https://dev.azure.com/dnceng/internal/_release?_a=releases&definitionId=72).
Uploads the final FSharp.Core package from the specified build to NuGet. This should only be run when we know for
Uploads the final `FSharp.Core` package from the specified build to NuGet. This should only be run when we know for
certain which build produced the final offical package.

[FSharp.Core (Preview NuGet Release)](https://dev.azure.com/dnceng/internal/_release?_a=releases&definitionId=92).
Uploads the preview FSharp.Core.5.0.0-beta.* package from the specified build to NuGet. This should be run every time
Uploads the preview `FSharp.Core.*-beta.*` package from the specified build to NuGet. This should be run every time
a new SDK preview is released.

[FCS (Official NuGet Release)](https://dev.azure.com/dnceng/internal/_release?view=mine&_a=releases&definitionId=99).
Uploads the final `FSharp.Compiler.Service` package from the specified build to NuGet. Only builds from the `release/fcs`
branch can be selected. This should only be run when we're fairly certain that the package is complete.

[FCS (Preview NuGet Release)](https://dev.azure.com/dnceng/internal/_release?view=mine&_a=releases&definitionId=98).
Uploads the preview `FSharp.Compiler.Service.*-beta.*` package from the specified build to NuGet. Only builds from the
`main` branch can be selected. This can be run whenever we think we're ready to preview a new FCS build.

[Nightly VSIX (main) uploader](https://dev.azure.com/dnceng/internal/_release?_a=releases&definitionId=70). Uploads
a package from every build of `main` to the [Nightly VSIX feed](README.md#using-nightly-releases-in-visual-studio).

Expand Down
6 changes: 3 additions & 3 deletions eng/Versions.props
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,11 @@
<FSCoreVersionPrefix>$(FSMajorVersion).$(FSMinorVersion).$(FSBuildVersion)</FSCoreVersionPrefix>
<FSCoreVersion>$(FSMajorVersion).$(FSMinorVersion).$(FSBuildVersion).$(FSRevisionVersion)</FSCoreVersion>
<FCSMajorVersion>38</FCSMajorVersion>
<FCSMinorVersion>$(FSMinorVersion)</FCSMinorVersion>
<FCSBuildVersion>$(FSBuildVersion)</FCSBuildVersion>
<FCSMinorVersion>0</FCSMinorVersion>
<FCSBuildVersion>1</FCSBuildVersion>
<FCSRevisionVersion>$(FSRevisionVersion)</FCSRevisionVersion>
<FSharpCompilerServicePackageVersion>$(FCSMajorVersion).$(FCSMinorVersion).$(FCSBuildVersion)</FSharpCompilerServicePackageVersion>
<FSharpCompilerServiceReleaseNotesVersion>$(FCSMajorVersion)-$(FCSMinorVersion)-$(FCSBuildVersion)</FSharpCompilerServiceReleaseNotesVersion>
<FSharpCompilerServiceReleaseNotesVersion>$(FCSMajorVersion)$(FCSMinorVersion)$(FCSBuildVersion)</FSharpCompilerServiceReleaseNotesVersion>
<!-- The current published nuget package -->
<FSharpCoreShippedPackageVersion>4.7.2</FSharpCoreShippedPackageVersion>
<!-- The pattern for specifying the preview package -->
Expand Down
218 changes: 152 additions & 66 deletions src/fsharp/DotNetFrameworkDependencies.fs
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ module internal FSharp.Compiler.DotNetFrameworkDependencies
location

let inline ifEmptyUse alternative filename = if String.IsNullOrWhiteSpace filename then alternative else filename

let getFSharpCoreLibraryName = "FSharp.Core"
let getFsiLibraryName = "FSharp.Compiler.Interactive.Settings"
let getDefaultFSharpCoreLocation = Path.Combine(fSharpCompilerLocation, getFSharpCoreLibraryName + ".dll")
Expand Down Expand Up @@ -62,15 +62,27 @@ module internal FSharp.Compiler.DotNetFrameworkDependencies
// packs\Microsoft.NETCore.App.Ref\sdk-version\netcoreappn.n
// we will rely on the sdk-version match on the two paths to ensure that we get the product that ships with the
// version of the runtime we are executing on
// Use the reference assemblies for the highest netcoreapp tfm that we find in that location.
// Use the reference assemblies for the highest netcoreapp tfm that we find in that location that is
// lower than or equal to the implementation version.
let zeroVersion = Version("0.0.0.0")
let version, frameworkRefsPackDirectoryRoot =
try
let version = DirectoryInfo(implementationAssemblyDir).Name
let computeVersion version =
match Version.TryParse(version) with
| true, v -> v
| false, _ -> zeroVersion

let version = computeVersion (DirectoryInfo(implementationAssemblyDir).Name)
let microsoftNETCoreAppRef = Path.Combine(implementationAssemblyDir, "../../../packs/Microsoft.NETCore.App.Ref")
if Directory.Exists(microsoftNETCoreAppRef) then
Some version, Some microsoftNETCoreAppRef
let directory = DirectoryInfo(microsoftNETCoreAppRef).GetDirectories()
|> Array.map (fun di -> computeVersion di.Name)
|> Array.sort
|> Array.filter(fun v -> v <= version)
|> Array.last
Some (directory.ToString()), Some microsoftNETCoreAppRef
else
Some version, None
None, None
with | _ -> None, None

// Tries to figure out the tfm for the compiler instance.
Expand Down Expand Up @@ -369,91 +381,132 @@ module internal FSharp.Compiler.DotNetFrameworkDependencies
// referenced from TcGlobals must be listed here.
let systemAssemblies =
HashSet [
// NOTE: duplicates are ok in this list

// .NET Framework list
yield "mscorlib"
yield "netstandard"
yield "System.Runtime"
yield getFSharpCoreLibraryName

yield "System"
yield "System.Xml"
yield "System.Runtime.Remoting"
yield "System.Runtime.Serialization.Formatters.Soap"
yield "System.Data"
yield "System.Deployment"
yield "System.Design"
yield "System.Messaging"
yield "System.Drawing"
yield "System.Net"
yield "System.Web"
yield "System.Web.Services"
yield "System.Windows.Forms"
yield "System.Core"
yield "System.Runtime"
yield "System.Observable"
yield "System.Numerics"
yield "System.ValueTuple"

// Additions for coreclr and portable profiles
yield "System.Collections"
yield "System.Collections.Concurrent"
yield "System.Console"
yield "System.Diagnostics.Debug"
yield "System.Diagnostics.Tools"
yield "System.Globalization"
yield "System.IO"
yield "System.Linq"
yield "System.Linq.Expressions"
yield "System.Linq.Queryable"
yield "System.Net.Requests"
yield "System.Reflection"
yield "System.Reflection.Emit"
yield "System.Reflection.Emit.ILGeneration"
yield "System.Reflection.Extensions"
yield "System.Resources.ResourceManager"
yield "System.Runtime.Extensions"
yield "System.Runtime.InteropServices"
yield "System.Runtime.InteropServices.PInvoke"
yield "System.Runtime.Numerics"
yield "System.Text.Encoding"
yield "System.Text.Encoding.Extensions"
yield "System.Text.RegularExpressions"
yield "System.Threading"
yield "System.Threading.Tasks"
yield "System.Threading.Tasks.Parallel"
yield "System.Threading.Thread"
yield "System.Threading.ThreadPool"
yield "System.Threading.Timer"

yield getFSharpCoreLibraryName
yield "FSharp.Compiler.Interactive.Settings"
yield "Microsoft.Win32.Registry"
yield "System.Diagnostics.Tracing"
yield "System.Globalization.Calendars"
yield "System.Reflection.Primitives"
yield "System.Runtime.Handles"
yield "Microsoft.CSharp"
yield "Microsoft.VisualBasic"
yield "Microsoft.VisualBasic.Core"
yield "Microsoft.Win32.Primitives"
yield "System.IO.FileSystem"
yield "System.Net.Primitives"
yield "System.Net.Sockets"
yield "System.Private.Uri"
yield "Microsoft.Win32.Registry"
yield "System.AppContext"
yield "System.Buffers"
yield "System.Collections"
yield "System.Collections.Concurrent"
yield "System.Collections.Immutable"
yield "System.Collections.NonGeneric"
yield "System.Collections.Specialized"
yield "System.ComponentModel"
yield "System.ComponentModel.Annotations"
yield "System.ComponentModel.DataAnnotations"
yield "System.ComponentModel.EventBasedAsync"
yield "System.ComponentModel.Primitives"
yield "System.ComponentModel.TypeConverter"
yield "System.Configuration"
yield "System.Console"
yield "System.Core"
yield "System.Data"
yield "System.Data.Common"
yield "System.Data.DataSetExtensions"
yield "System.Deployment"
yield "System.Design"
yield "System.Diagnostics.Contracts"
yield "System.Diagnostics.Debug"
yield "System.Diagnostics.DiagnosticSource"
yield "System.Diagnostics.FileVersionInfo"
yield "System.Diagnostics.Process"
yield "System.Diagnostics.StackTrace"
yield "System.Diagnostics.TextWriterTraceListener"
yield "System.Diagnostics.Tools"
yield "System.Diagnostics.TraceSource"
yield "System.Diagnostics.Tracing"
yield "System.Drawing"
yield "System.Drawing.Primitives"
yield "System.Dynamic.Runtime"
yield "System.Formats.Asn1"
yield "System.Globalization"
yield "System.Globalization.Calendars"
yield "System.Globalization.Extensions"
yield "System.IO"
yield "System.IO.Compression"
yield "System.IO.Compression.Brotli"
yield "System.IO.Compression.FileSystem"
yield "System.IO.Compression.ZipFile"
yield "System.IO.FileSystem"
yield "System.IO.FileSystem.DriveInfo"
yield "System.IO.FileSystem.Primitives"
yield "System.IO.FileSystem.Watcher"
yield "System.IO.IsolatedStorage"
yield "System.IO.MemoryMappedFiles"
yield "System.IO.Pipes"
yield "System.IO.UnmanagedMemoryStream"
yield "System.Linq"
yield "System.Linq.Expressions"
yield "System.Linq.Expressions"
yield "System.Linq.Parallel"
yield "System.Linq.Queryable"
yield "System.Memory"
yield "System.Messaging"
yield "System.Net"
yield "System.Net.Http"
yield "System.Net.Http.Json"
yield "System.Net.HttpListener"
yield "System.Net.Mail"
yield "System.Net.NameResolution"
yield "System.Net.NetworkInformation"
yield "System.Net.Ping"
yield "System.Net.Primitives"
yield "System.Net.Requests"
yield "System.Net.Security"
yield "System.Net.ServicePoint"
yield "System.Net.Sockets"
yield "System.Net.WebClient"
yield "System.Net.WebHeaderCollection"
yield "System.Net.WebProxy"
yield "System.Net.WebSockets"
yield "System.Net.WebSockets.Client"
yield "System.Numerics"
yield "System.Numerics.Vectors"
yield "System.ObjectModel"
yield "System.Observable"
yield "System.Private.Uri"
yield "System.Reflection"
yield "System.Reflection.DispatchProxy"
yield "System.Reflection.Emit"
yield "System.Reflection.Emit.ILGeneration"
yield "System.Reflection.Emit.Lightweight"
yield "System.Reflection.Extensions"
yield "System.Reflection.Metadata"
yield "System.Reflection.Primitives"
yield "System.Reflection.TypeExtensions"
yield "System.Resources.Reader"
yield "System.Resources.ResourceManager"
yield "System.Resources.Writer"
yield "System.Runtime"
yield "System.Runtime.CompilerServices.Unsafe"
yield "System.Runtime.CompilerServices.VisualC"
yield "System.Runtime.Extensions"
yield "System.Runtime.Handles"
yield "System.Runtime.InteropServices"
yield "System.Runtime.InteropServices.PInvoke"
yield "System.Runtime.InteropServices.RuntimeInformation"
yield "System.Runtime.InteropServices.WindowsRuntime"
yield "System.Runtime.Intrinsics"
yield "System.Runtime.Loader"
yield "System.Runtime.Numerics"
yield "System.Runtime.Remoting"
yield "System.Runtime.Serialization"
yield "System.Runtime.Serialization.Formatters"
yield "System.Runtime.Serialization.Formatters.Soap"
yield "System.Runtime.Serialization.Json"
yield "System.Runtime.Serialization.Primitives"
yield "System.Runtime.Serialization.Xml"
yield "System.Security"
yield "System.Security.Claims"
yield "System.Security.Cryptography.Algorithms"
yield "System.Security.Cryptography.Cng"
Expand All @@ -464,10 +517,43 @@ module internal FSharp.Compiler.DotNetFrameworkDependencies
yield "System.Security.Cryptography.X509Certificates"
yield "System.Security.Principal"
yield "System.Security.Principal.Windows"
yield "System.Security.SecureString"
yield "System.ServiceModel.Web"
yield "System.ServiceProcess"
yield "System.Text.Encoding"
yield "System.Text.Encoding.CodePages"
yield "System.Text.Encoding.Extensions"
yield "System.Text.Encodings.Web"
yield "System.Text.Json"
yield "System.Text.RegularExpressions"
yield "System.Threading"
yield "System.Threading.Channels"
yield "System.Threading.Overlapped"
yield "System.Threading.Tasks"
yield "System.Threading.Tasks.Dataflow"
yield "System.Threading.Tasks.Extensions"
yield "System.Threading.Tasks.Parallel"
yield "System.Threading.Thread"
yield "System.Threading.ThreadPool"
yield "System.Threading.Timer"
yield "System.Transactions"
yield "System.Transactions.Local"
yield "System.ValueTuple"
yield "System.Web"
yield "System.Web.HttpUtility"
yield "System.Web.Services"
yield "System.Windows"
yield "System.Windows.Forms"
yield "System.Xml"
yield "System.Xml.Linq"
yield "System.Xml.ReaderWriter"
yield "System.Xml.Serialization"
yield "System.Xml.XDocument"
yield "System.Xml.XmlDocument"
yield "System.Xml.XmlSerializer"
yield "System.Xml.XPath"
yield "System.Xml.XPath.XDocument"
yield "WindowsBase"
]

// The set of references entered into the TcConfigBuilder for scripts prior to computing the load closure.
Expand Down
33 changes: 28 additions & 5 deletions src/fsharp/FSharp.Compiler.Service/FSharp.Compiler.Service.fsproj
Original file line number Diff line number Diff line change
Expand Up @@ -20,14 +20,38 @@
<NuspecFile>FSharp.Compiler.Service.nuspec</NuspecFile>
<IsPackable>true</IsPackable>
<PackageDescription>The F# Compiler Services package For F# $(FSLanguageVersion) exposes additional functionality for implementing F# language bindings, additional tools based on the compiler or refactoring tools. The package also includes F# interactive service that can be used for embedding F# scripting into your applications. Contains code from the F# Software Foundation.</PackageDescription>
<PackageReleaseNotes>/blob/main/release-notes.md#FSharp-Compiler-Service-$(FSharpCompilerServiceReleaseNotesVersion)</PackageReleaseNotes>
<PackageReleaseNotes>https://github.com/dotnet/fsharp/blob/main/release-notes.md#FSharp-Compiler-Service-$(FSharpCompilerServiceReleaseNotesVersion)</PackageReleaseNotes>
<PackageTags>F#, fsharp, interactive, compiler, editor</PackageTags>
<PackageIconFullPath>$(MSBuildThisFileDirectory)logo.png</PackageIconFullPath>
</PropertyGroup>

<ItemGroup>
<NuspecProperty Include="FSharpCoreVersion=$(FSCorePackageVersion)" Condition="'$(VersionSuffix)'==''" />
<NuspecProperty Include="FSharpCoreVersion=$(FSCorePackageVersion)-$(VersionSuffix)" Condition="'$(VersionSuffix)'!=''" />
<NuspecProperty Include="TargetFramework=$(TargetFramework)" />
<NuspecProperty Include="FSharpCorePackageVersion=$(FSCorePackageVersion)" Condition="'$(VersionSuffix)'==''" />
<NuspecProperty Include="FSharpCorePackageVersion=$(FSCorePackageVersion)-$(VersionSuffix)" Condition="'$(VersionSuffix)'!=''" />
<NuspecProperty Include="MicrosoftBuildFrameworkPackageVersion=$(MicrosoftBuildFrameworkVersion)" />
<NuspecProperty Include="MicrosoftBuildTasksCorePackageVersion=$(MicrosoftBuildTasksCoreVersion)" />
<NuspecProperty Include="MicrosoftBuildUtilitiesCorePackageVersion=$(MicrosoftBuildUtilitiesCoreVersion)" />
<NuspecProperty Include="SystemBuffersPackageVersion=$(SystemBuffersVersion)" />
<NuspecProperty Include="SystemCollectionsImmutablePackageVersion=$(SystemCollectionsImmutableVersion)" />
<NuspecProperty Include="SystemDiagnosticsProcessPackageVersion=$(SystemDiagnosticsProcessVersion)" />
<NuspecProperty Include="SystemDiagnosticsTraceSourcePackageVersion=$(SystemDiagnosticsTraceSourceVersion)" />
<NuspecProperty Include="SystemLinqExpressionsPackageVersion=$(SystemLinqExpressionsVersion)" />
<NuspecProperty Include="SystemLinqQueryablePackageVersion=$(SystemLinqQueryableVersion)" />
<NuspecProperty Include="SystemMemoryPackageVersion=$(SystemMemoryVersion)" />
<NuspecProperty Include="SystemNetRequestsPackageVersion=$(SystemNetRequestsVersion)" />
<NuspecProperty Include="SystemNetSecurityPackageVersion=$(SystemNetSecurityVersion)" />
<NuspecProperty Include="SystemReflectionEmitPackageVersion=$(SystemReflectionEmitVersion)" />
<NuspecProperty Include="SystemReflectionMetadataPackageVersion=$(SystemReflectionMetadataVersion)" />
<NuspecProperty Include="SystemReflectionTypeExtensionsPackageVersion=$(SystemReflectionTypeExtensionsVersion)" />
<NuspecProperty Include="SystemRuntimePackageVersion=$(SystemRuntimeVersion)" />
<NuspecProperty Include="SystemRuntimeInteropServicesPackageVersion=$(SystemRuntimeInteropServicesVersion)" />
<NuspecProperty Include="SystemRuntimeLoaderPackageVersion=$(SystemRuntimeLoaderVersion)" />
<NuspecProperty Include="SystemSecurityClaimsPackageVersion=$(SystemSecurityClaimsVersion)" />
<NuspecProperty Include="SystemSecurityCryptographyAlgorithmsPackageVersion=$(SystemSecurityCryptographyAlgorithmsVersion)" />
<NuspecProperty Include="SystemSecurityPrincipalPackageVersion=$(SystemSecurityPrincipalVersion)" />
<NuspecProperty Include="SystemThreadingTasksParallelPackageVersion=$(SystemThreadingTasksParallelVersion)" />
<NuspecProperty Include="SystemThreadingThreadPackageVersion=$(SystemThreadingThreadVersion)" />
<NuspecProperty Include="SystemThreadingThreadPoolPackageVersion=$(SystemThreadingThreadPoolVersion)" />
</ItemGroup>

<ItemGroup>
Expand All @@ -44,7 +68,6 @@
</ItemGroup>

<ItemGroup>
<None Include="$(MSBuildThisFileDirectory)..\misc\logo.png" Pack="true" Visible="false" PackagePath="" />
<EmbeddedText Include="..\FSComp.txt">
<Link>FSComp.txt</Link>
</EmbeddedText>
Expand Down
Loading

0 comments on commit d2ef973

Please sign in to comment.