Skip to content

Commit b26941b

Browse files
author
dotnet-automerge-bot
authored
Merge pull request #7105 from dotnet/merges/release/dev16.3-to-release/fsharp47
Merge release/dev16.3 to release/fsharp47
2 parents 1b6cf9f + 7891cbd commit b26941b

152 files changed

Lines changed: 2293 additions & 1314 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,3 +128,4 @@ tests/fsharpqa/testenv/bin/System.ValueTuple.dll
128128
msbuild.binlog
129129
/fcs/FSharp.Compiler.Service.netstandard/*.fs
130130
/fcs/FSharp.Compiler.Service.netstandard/*.fsi
131+
/.ionide/

CODE_OF_CONDUCT.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ Project maintainers who do not follow or enforce the Code of Conduct in good fai
4040

4141
## Attribution
4242

43-
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]
43+
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [https://contributor-covenant.org/version/1/4][version]
4444

45-
[homepage]: http://contributor-covenant.org
46-
[version]: http://contributor-covenant.org/version/1/4/
45+
[homepage]: https://contributor-covenant.org
46+
[version]: https://contributor-covenant.org/version/1/4/

DEVGUIDE.md

Lines changed: 95 additions & 118 deletions
Large diffs are not rendered by default.

NuGet.config

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<?xml version="1.0" encoding="utf-8"?>
1+
<?xml version="1.0" encoding="utf-8"?>
22
<configuration>
33
<solution>
44
<add key="disableSourceControlIntegration" value="true" />

README.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ These are the branches in use:
6565

6666
* `dev15.9`
6767
- Long-term servicing branch for VS 2017 update 15.9.x. We do not expect to service that release, but if we do, that's where the changes will go.
68-
68+
6969
* `dev16.x`
7070
- Latest release branch for the particular point release of Visual Studio.
7171
- Incorporates features and fixes from master up to a particular branch point, then selective cherry-picks.
@@ -84,28 +84,28 @@ Evolution of the F# language and core library follows a process spanning two add
8484

8585
The following links can help you get an overview of some technical aspects of the F# language and compiler:
8686

87-
* [The F# Compiler Technical Guide](http://fsharp.github.io/2015/09/29/fsharp-compiler-guide.html)
88-
* [The F# Language Specification](http://fsharp.org/specs/language-spec/)
87+
* [The F# Compiler Technical Guide](https://fsharp.github.io/2015/09/29/fsharp-compiler-guide.html)
88+
* [The F# Language Specification](https://fsharp.org/specs/language-spec/)
8989

9090
## License
9191

9292
This project is subject to the MIT License. A copy of this license is in [License.txt](License.txt).
9393

9494
## Code of Conduct
9595

96-
This project has adopted the [Contributor Covenant](http://contributor-covenant.org/) code of conduct to clarify expected behavior in our community. You can read it at [CODE_OF_CONDUCT](CODE_OF_CONDUCT.md).
96+
This project has adopted the [Contributor Covenant](https://contributor-covenant.org/) code of conduct to clarify expected behavior in our community. You can read it at [CODE_OF_CONDUCT](CODE_OF_CONDUCT.md).
9797

9898
## Get In Touch
9999

100-
Members of the [F# Software Foundation](http://fsharp.org) are invited to the [FSSF Slack](http://fsharp.org/guides/slack/). You can find support from other contributors in the `#compiler` and `#editor-support` channels.
100+
Members of the [F# Software Foundation](https://fsharp.org) are invited to the [FSSF Slack](https://fsharp.org/guides/slack/). You can find support from other contributors in the `#compiler` and `#editor-support` channels.
101101

102102
Additionally, you can use the `#fsharp` tag on Twitter if you have general F# questions, including about this repository. Chances are you'll get multiple responses.
103103

104-
## About F#
104+
## About F\#
105105

106106
If you're curious about F# itself, check out these links:
107107

108108
* [What is F#](https://docs.microsoft.com/dotnet/fsharp/what-is-fsharp)
109109
* [Get started with F#](https://docs.microsoft.com/dotnet/fsharp/get-started/)
110-
* [F# Software Foundation](http://fsharp.org)
111-
* [F# Testimonials](http://fsharp.org/testimonials)
110+
* [F# Software Foundation](https://fsharp.org)
111+
* [F# Testimonials](https://fsharp.org/testimonials)

eng/Build.ps1

Lines changed: 60 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ param (
5353
[switch]$testVs,
5454
[switch]$testAll,
5555
[string]$officialSkipTests = "false",
56+
[switch]$noVisualStudio,
5657

5758
[parameter(ValueFromRemainingArguments=$true)][string[]]$properties)
5859

@@ -96,6 +97,7 @@ function Print-Usage() {
9697
Write-Host " -procdump Monitor test runs with procdump"
9798
Write-Host " -prepareMachine Prepare machine for CI run, clean up processes after build"
9899
Write-Host " -useGlobalNuGetCache Use global NuGet cache."
100+
Write-Host " -noVisualStudio Only build fsc and fsi as .NET Core applications. No Visual Studio required. '-configuration', '-verbosity', '-norestore', '-rebuild' are supported."
99101
Write-Host ""
100102
Write-Host "Command line arguments starting with '/p:' are passed through to MSBuild."
101103
}
@@ -145,8 +147,19 @@ function Process-Arguments() {
145147
}
146148

147149
function Update-Arguments() {
148-
if (-Not (Test-Path "$ArtifactsDir\Bootstrap\fsc\fsc.exe")) {
149-
$script:bootstrap = $True
150+
if ($script:noVisualStudio) {
151+
$script:bootstrapTfm = "netcoreapp2.1"
152+
$script:msbuildEngine = "dotnet"
153+
}
154+
155+
if ($bootstrapTfm -eq "netcoreapp2.1") {
156+
if (-Not (Test-Path "$ArtifactsDir\Bootstrap\fsc\fsc.runtimeconfig.json")) {
157+
$script:bootstrap = $True
158+
}
159+
} else {
160+
if (-Not (Test-Path "$ArtifactsDir\Bootstrap\fsc\fsc.exe") -or (Test-Path "$ArtifactsDir\Bootstrap\fsc\fsc.runtimeconfig.json")) {
161+
$script:bootstrap = $True
162+
}
150163
}
151164
}
152165

@@ -228,10 +241,37 @@ function TestUsingNUnit([string] $testProject, [string] $targetFramework) {
228241
$projectName = [System.IO.Path]::GetFileNameWithoutExtension($testProject)
229242
$testLogPath = "$ArtifactsDir\TestResults\$configuration\${projectName}_$targetFramework.xml"
230243
$testBinLogPath = "$LogDir\${projectName}_$targetFramework.binlog"
231-
$args = "test $testProject --no-restore --no-build -c $configuration -f $targetFramework -v n --test-adapter-path . --logger ""nunit;LogFilePath=$testLogPath"" /bl:$testBinLogPath"
244+
$args = "test $testProject -c $configuration -f $targetFramework -v n --test-adapter-path . --logger ""nunit;LogFilePath=$testLogPath"" /bl:$testBinLogPath"
245+
246+
if (-not $noVisualStudio -or $norestore) {
247+
$args += " --no-restore"
248+
}
249+
250+
if (-not $noVisualStudio) {
251+
$args += " --no-build"
252+
}
253+
232254
Exec-Console $dotnetExe $args
233255
}
234256

257+
function BuildCompiler() {
258+
if ($bootstrapTfm -eq "netcoreapp2.1") {
259+
$dotnetPath = InitializeDotNetCli
260+
$dotnetExe = Join-Path $dotnetPath "dotnet.exe"
261+
$fscProject = "$RepoRoot\src\fsharp\fsc\fsc.fsproj"
262+
$fsiProject = "$RepoRoot\src\fsharp\fsi\fsi.fsproj"
263+
264+
$argNoRestore = if ($norestore) { " --no-restore" } else { "" }
265+
$argNoIncremental = if ($rebuild) { " --no-incremental" } else { "" }
266+
267+
$args = "build $fscProject -c $configuration -v $verbosity -f netcoreapp2.1" + $argNoRestore + $argNoIncremental
268+
Exec-Console $dotnetExe $args
269+
270+
$args = "build $fsiProject -c $configuration -v $verbosity -f netcoreapp2.1" + $argNoRestore + $argNoIncremental
271+
Exec-Console $dotnetExe $args
272+
}
273+
}
274+
235275
function Prepare-TempDir() {
236276
Copy-Item (Join-Path $RepoRoot "tests\Resources\Directory.Build.props") $TempDir
237277
Copy-Item (Join-Path $RepoRoot "tests\Resources\Directory.Build.targets") $TempDir
@@ -260,7 +300,11 @@ try {
260300
}
261301

262302
if ($restore -or $build -or $rebuild -or $pack -or $sign -or $publish) {
263-
BuildSolution
303+
if ($noVisualStudio) {
304+
BuildCompiler
305+
} else {
306+
BuildSolution
307+
}
264308
}
265309

266310
if ($build) {
@@ -270,7 +314,7 @@ try {
270314
$desktopTargetFramework = "net472"
271315
$coreclrTargetFramework = "netcoreapp2.1"
272316

273-
if ($testDesktop) {
317+
if ($testDesktop -and -not $noVisualStudio) {
274318
TestUsingNUnit -testProject "$RepoRoot\tests\FSharp.Compiler.UnitTests\FSharp.Compiler.UnitTests.fsproj" -targetFramework $desktopTargetFramework
275319
TestUsingNUnit -testProject "$RepoRoot\tests\FSharp.Compiler.LanguageServer.UnitTests\FSharp.Compiler.LanguageServer.UnitTests.fsproj" -targetFramework $desktopTargetFramework
276320
TestUsingNUnit -testProject "$RepoRoot\tests\FSharp.Build.UnitTests\FSharp.Build.UnitTests.fsproj" -targetFramework $desktopTargetFramework
@@ -286,7 +330,7 @@ try {
286330
TestUsingNUnit -testProject "$RepoRoot\tests\fsharp\FSharpSuite.Tests.fsproj" -targetFramework $coreclrTargetFramework
287331
}
288332

289-
if ($testFSharpQA) {
333+
if ($testFSharpQA -and -not $noVisualStudio) {
290334
Push-Location "$RepoRoot\tests\fsharpqa\source"
291335
$resultsRoot = "$ArtifactsDir\TestResults\$configuration"
292336
$resultsLog = "test-net40-fsharpqa-results.log"
@@ -305,21 +349,27 @@ try {
305349
}
306350

307351
if ($testFSharpCore) {
308-
TestUsingNUnit -testProject "$RepoRoot\tests\FSharp.Core.UnitTests\FSharp.Core.UnitTests.fsproj" -targetFramework $desktopTargetFramework
352+
if (-not $noVisualStudio) {
353+
TestUsingNUnit -testProject "$RepoRoot\tests\FSharp.Core.UnitTests\FSharp.Core.UnitTests.fsproj" -targetFramework $desktopTargetFramework
354+
}
309355
TestUsingNUnit -testProject "$RepoRoot\tests\FSharp.Core.UnitTests\FSharp.Core.UnitTests.fsproj" -targetFramework $coreclrTargetFramework
310356
}
311357

312358
if ($testCompiler) {
313-
TestUsingNUnit -testProject "$RepoRoot\tests\FSharp.Compiler.UnitTests\FSharp.Compiler.UnitTests.fsproj" -targetFramework $desktopTargetFramework
359+
if (-not $noVisualStudio) {
360+
TestUsingNUnit -testProject "$RepoRoot\tests\FSharp.Compiler.UnitTests\FSharp.Compiler.UnitTests.fsproj" -targetFramework $desktopTargetFramework
361+
}
314362
TestUsingNUnit -testProject "$RepoRoot\tests\FSharp.Compiler.UnitTests\FSharp.Compiler.UnitTests.fsproj" -targetFramework $coreclrTargetFramework
315363
}
316364

317365
if ($testCambridge) {
318-
TestUsingNUnit -testProject "$RepoRoot\tests\fsharp\FSharpSuite.Tests.fsproj" -targetFramework $desktopTargetFramework
366+
if (-not $noVisualStudio) {
367+
TestUsingNUnit -testProject "$RepoRoot\tests\fsharp\FSharpSuite.Tests.fsproj" -targetFramework $desktopTargetFramework
368+
}
319369
TestUsingNUnit -testProject "$RepoRoot\tests\fsharp\FSharpSuite.Tests.fsproj" -targetFramework $coreclrTargetFramework
320370
}
321371

322-
if ($testVs) {
372+
if ($testVs -and -not $noVisualStudio) {
323373
TestUsingNUnit -testProject "$RepoRoot\vsintegration\tests\GetTypesVS.UnitTests\GetTypesVS.UnitTests.fsproj" -targetFramework $desktopTargetFramework
324374
TestUsingNUnit -testProject "$RepoRoot\vsintegration\tests\UnitTests\VisualFSharp.UnitTests.fsproj" -targetFramework $desktopTargetFramework
325375
}

eng/Version.Details.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
<ProductDependencies>
44
</ProductDependencies>
55
<ToolsetDependencies>
6-
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="1.0.0-beta.19315.2">
6+
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="1.0.0-beta.19351.4">
77
<Uri>https://github.com/dotnet/arcade</Uri>
8-
<Sha>aa4285be7fab64e2b6e62e4d5688ea50931c407c</Sha>
8+
<Sha>1fb1e240c889cd7f6e10cb1eacd129efa3ddb4b4</Sha>
99
</Dependency>
1010
</ToolsetDependencies>
1111
</Dependencies>

eng/Versions.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
</PropertyGroup>
3131
<PropertyGroup>
3232
<VSMajorVersion>16</VSMajorVersion>
33-
<VSMinorVersion>1</VSMinorVersion>
33+
<VSMinorVersion>3</VSMinorVersion>
3434
<VSGeneralVersion>$(VSMajorVersion).0</VSGeneralVersion>
3535
<VSAssemblyVersionPrefix>$(VSMajorVersion).$(VSMinorVersion).0</VSAssemblyVersionPrefix>
3636
<VSAssemblyVersion>$(VSAssemblyVersionPrefix).0</VSAssemblyVersion>

eng/build-utils.ps1

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,7 @@ function Run-MSBuild([string]$projectFilePath, [string]$buildArgs = "", [string]
230230
# Important to not set $script:bootstrapDir here yet as we're actually in the process of
231231
# building the bootstrap.
232232
function Make-BootstrapBuild() {
233-
Write-Host "Building bootstrap compiler"
233+
Write-Host "Building bootstrap '$bootstrapTfm' compiler"
234234

235235
$dir = Join-Path $ArtifactsDir "Bootstrap"
236236
Remove-Item -re $dir -ErrorAction SilentlyContinue
@@ -243,7 +243,7 @@ function Make-BootstrapBuild() {
243243

244244
# prepare compiler
245245
$projectPath = "$RepoRoot\proto.proj"
246-
Run-MSBuild $projectPath "/restore /t:Publish" -logFileName "Bootstrap" -configuration $bootstrapConfiguration
246+
Run-MSBuild $projectPath "/restore /t:Publish /p:TargetFramework=$bootstrapTfm;ProtoTargetFramework=$bootstrapTfm" -logFileName "Bootstrap" -configuration $bootstrapConfiguration
247247
Copy-Item "$ArtifactsDir\bin\fsc\$bootstrapConfiguration\$bootstrapTfm\publish" -Destination "$dir\fsc" -Force -Recurse
248248
Copy-Item "$ArtifactsDir\bin\fsi\$bootstrapConfiguration\$bootstrapTfm\publish" -Destination "$dir\fsi" -Force -Recurse
249249

eng/build.sh

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,11 @@ function TestUsingNUnit() {
176176
projectname="${projectname%.*}"
177177
testlogpath="$artifacts_dir/TestResults/$configuration/${projectname}_$targetframework.xml"
178178
args="test \"$testproject\" --no-restore --no-build -c $configuration -f $targetframework --test-adapter-path . --logger \"nunit;LogFilePath=$testlogpath\""
179-
"$DOTNET_INSTALL_DIR/dotnet" $args
179+
"$DOTNET_INSTALL_DIR/dotnet" $args || {
180+
local exit_code=$?
181+
echo "dotnet test failed (exit code '$exit_code')." >&2
182+
ExitWithExitCode $exit_code
183+
}
180184
}
181185

182186
function BuildSolution {

0 commit comments

Comments
 (0)