Skip to content

Commit ec6df2a

Browse files
committed
Update baselines
2 parents 7c1b962 + 567e53f commit ec6df2a

File tree

1,343 files changed

+12261
-3476
lines changed

Some content is hidden

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

1,343 files changed

+12261
-3476
lines changed

.config/service-branch-merge.json

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,16 @@
11
{
22
"merge-flow-configurations": {
33
// regular branch flow
4+
"release/dev17.12": {
5+
"MergeToBranch": "release/dev17.13",
6+
"ExtraSwitches": "-QuietComments"
7+
},
48
"release/dev17.13": {
5-
"MergeToBranch": "main",
9+
"MergeToBranch": "release/dev17.14",
610
"ExtraSwitches": "-QuietComments"
711
},
812
"release/dev17.14": {
9-
"MergeToBranch": "release/dev18.0",
13+
"MergeToBranch": "main",
1014
"ExtraSwitches": "-QuietComments"
1115
},
1216
"main": {

.devcontainer/devcontainer.json

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
// For format details, see https://aka.ms/vscode-remote/devcontainer.json or this file's README at:
22
{
33
"name": "F#",
4-
"image": "mcr.microsoft.com/dotnet/sdk:9.0.202",
4+
"image": "mcr.microsoft.com/dotnet/sdk:10.0.100-preview.3",
55
"features": {
6-
"ghcr.io/devcontainers/features/common-utils:2.5.2": {},
7-
"ghcr.io/devcontainers/features/git:1.3.2": {},
8-
"ghcr.io/devcontainers/features/github-cli:1.0.13": {},
9-
"ghcr.io/devcontainers/features/dotnet:2.2.0": {}
6+
"ghcr.io/devcontainers/features/common-utils:2.5.3": {},
7+
"ghcr.io/devcontainers/features/git:1.3.3": {},
8+
"ghcr.io/devcontainers/features/github-cli:1.0.14": {},
9+
"ghcr.io/devcontainers/features/dotnet:2.2.1": {}
1010
},
1111
"hostRequirements": {
1212
"cpus": 2,

.github/CODEOWNERS

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1 @@
11
* @dotnet/fsharp-team-msft
2-
/eng/DotNetBuild.props @dotnet/product-construction
3-
/eng/SourceBuild* @dotnet/source-build

.github/copilot-instructions.md

Lines changed: 39 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,65 @@
11
# GitHub Copilot Instructions for F# Compiler
22

3-
## Language and Environment
3+
## Build and test steps (Linux)
4+
5+
Always build and test the project before submitting your solution.
6+
7+
1. As an initial smoke test for a quick build, run `dotnet build ./FSharp.Compiler.Service.sln --verbosity quiet` from the repository root.
8+
Only if this succeeds, move on.
9+
2. From the repository root, run `./build.sh -c Release --norestore`. This creates a prototype compiler, and then the proto compiler builds itself again.
10+
3. Only if two previous steps suceed, run automated tests with `./build.sh -c Release --testcoreclr --norestore`.
11+
12+
13+
If the build fails with errors or non-zero exit code, fix it based on the error messages given and repeat the build step.
14+
15+
If either of the steps 1/2/3 fails, fix the errors and repeat from step 1 - up to 3 times.
16+
After that, report all relevant build errors, error messages and specific details about failing tests and their test test failure details.
17+
18+
### Fixing tests
19+
20+
- If any of the tests fail: Check if the test, test expectation (either inline in the test or a reference file configured for the test) or implementation needs updating, and fix it
21+
- If you see test failures for Surface area baselines: Refer to "Updating FCS surface area baselines" in devguide.md
22+
- If you see test failures for IL baselines: Refer to "Updating ILVerify baselines" in devguide.md
23+
24+
25+
## Acceptance criteria
26+
27+
- Code is formatted using `dotnet fantomas .` executed at the repo root.
28+
- Builds without errors.
29+
- Runs tests without errors. If some tests needed adjustments, those test expectations/baseline adjustments were done.
30+
- If the acceptance criteria was not met, collect the error messages (build failures or failing tests) and report them.
31+
32+
## Coding standards
33+
34+
### Language and Environment
435
- Use modern F# with functional-first approach
536
- Target .NET Standard 2.0 for compatibility
637
- Avoid external dependencies - the codebase is self-contained
738

8-
## Code Style and Standards
9-
- Follow [coding standards](docs/coding-standards.md), especially:
39+
### Code Style and Standards
40+
- Follow docs/coding-standards.md, especially:
1041
- Prefer immutability and pure functions
1142
- Use consistent naming (see abbreviation guide)
1243
- Process complex types recursively with pattern matching
1344
- Avoid single-character identifiers except in established patterns
1445
- This project uses .fsi signature files. When adding a new public API to a namespace/module which will be consumed from other file, add it to the respective .fsi signature file as well
15-
- Follow [overview](docs/overview.md) for key compiler data formats and representations
46+
- Follow docs/overview.md for key compiler data formats and representations
1647

17-
## Type System Handling
48+
### Type System Handling
1849
- When working with `TType` instances, use appropriate stripping functions:
1950
- `stripTyparEqns` - Removes inference equations from type parameters
2051
- `stripTyEqns` - Removes type equations and type abbreviations
2152
- `stripTyEqnsAndErase` - Also erases compilation representations
2253
- Match the appropriate stripper to the context (e.g., display vs compilation)
2354
- Check equality with `typeEquiv` after stripping rather than direct comparison
2455

25-
## Core Data Structures
56+
### Core Data Structures
2657
- Use F# discriminated unions for type representations
2758
- Respect representation hiding through access control
2859
- Use `remapX` functions when transforming types across boundaries
2960
- Be aware of performance implications for recursive type operations
3061

31-
## Documentation and Naming
62+
### Documentation and Naming
3263
- Document public APIs with XML comments
3364
- Use descriptive function names that indicate transformation direction
34-
- Follow established naming conventions in error messages
65+
- Follow established naming conventions for error messages based on FSComp.txt file. Put all error messages into the FSComp.txt file to ensure localisation

.github/workflows/add_to_project.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ permissions:
1616

1717
jobs:
1818
cleanup_old_runs:
19-
runs-on: ubuntu-20.04
19+
runs-on: ubuntu-latest
2020
if: github.event_name != 'pull_request_target'
2121
permissions:
2222
actions: write

.github/workflows/commands.yml

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,12 @@ on:
99
permissions:
1010
contents: write
1111
issues: write
12-
pull-requests: write
12+
pull-requests: read
1313

1414
jobs:
1515
cleanup_old_runs:
1616
if: github.event.schedule == '0 13 * * *'
17-
runs-on: ubuntu-20.04
17+
runs-on: ubuntu-latest
1818
permissions:
1919
actions: write
2020
env:
@@ -33,7 +33,7 @@ jobs:
3333
3434
run_command:
3535
if: github.event.issue.pull_request != '' && contains(github.event.comment.body, '/run')
36-
runs-on: ubuntu-20.04
36+
runs-on: ubuntu-latest
3737
steps:
3838
- name: Extract command to run
3939
uses: actions/github-script@v3
@@ -75,31 +75,40 @@ jobs:
7575
- name: Process fantomas command
7676
if: steps.command-extractor.outputs.result == 'fantomas'
7777
id: fantomas
78-
run: dotnet fantomas . -r
79-
- name: Process fantomas command
78+
run: dotnet fantomas .
79+
- name: Process xlf command
8080
if: steps.command-extractor.outputs.result == 'xlf'
8181
id: xlf
8282
run: dotnet build src/Compiler /t:UpdateXlf
83+
8384
- name: Commit and push changes
84-
if: steps.fantomas.outcome == 'success' || steps.xlf.outcome == 'success'
85+
if: steps.fantomas.outcome == 'success' || steps.xlf.outcome == 'success' || steps.ilverify.outcome == 'success'
8586
run: |
87+
# Only commit if there are actual changes
88+
if git diff --quiet; then
89+
echo "No changes to commit, skipping."
90+
exit 0
91+
fi
92+
8693
git config --local user.name "github-actions[bot]"
8794
git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com"
8895
git commit -a -m 'Automated command ran: ${{ steps.command-extractor.outputs.result }}
8996
9097
Co-authored-by: ${{ github.event.comment.user.login }} <${{ github.event.comment.user.id }}+${{ github.event.comment.user.login }}@users.noreply.github.com>'
91-
git push
98+
git push origin HEAD:"refs/heads/$PR_HEAD_REF"\
9299
- name: Post command comment
93-
if: steps.fantomas.outcome == 'success' || steps.xlf.outcome == 'success'
100+
if: steps.fantomas.outcome == 'success' || steps.xlf.outcome == 'success' || steps.ilverify.outcome == 'success'
94101
uses: actions/github-script@v3
95102
with:
96103
script: |
97104
// Probably, there's more universal way of getting outputs, but my gh-actions-fu is not that good.
98105
var output = ""
99106
if ("${{steps.command-extractor.outputs.result}}" == 'fantomas') {
100107
output = "${{steps.fantomas.outputs.result}}"
101-
} else if("${{steps.command-extractor.outputs.result}}" == 'xlf') {
108+
} else if ("${{steps.command-extractor.outputs.result}}" == 'xlf') {
102109
output = "${{steps.xlf.outputs.result}}"
110+
} else if ("${{steps.command-extractor.outputs.result}}" == 'ilverify') {
111+
output = "${{steps.ilverify.outputs.result}}"
103112
}
104113
const body = `Ran ${{ steps.command-extractor.outputs.result }}: https://github.com/${context.repo.owner}/${context.repo.repo}/actions/runs/${process.env.GITHUB_RUN_ID}\n${output}`;
105114
await github.issues.createComment({
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
name: "Copilot Setup Steps"
2+
3+
# Allow testing of the setup steps from your repository's "Actions" tab.
4+
on: workflow_dispatch
5+
6+
jobs:
7+
# The job MUST be called `copilot-setup-steps` or it will not be picked up by Copilot.
8+
copilot-setup-steps:
9+
runs-on: ubuntu-latest
10+
11+
permissions:
12+
contents: read
13+
14+
# You can define any steps you want, and they will run before the agent starts.
15+
# If you do not check out your code, Copilot will do this for you.
16+
steps:
17+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
18+
- uses: actions/setup-dotnet@v4
19+
with:
20+
global-json-file: global.json
21+
- name: Restore solution
22+
env:
23+
CI: false
24+
run: dotnet build ./FSharp.Compiler.Service.sln --verbosity quiet

NuGet.config

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
<clear />
99
<!--Begin: Package sources managed by Dependency Flow automation. Do not edit the sources below.-->
1010
<!-- Begin: Package sources from DotNet-msbuild-Trusted -->
11-
<add key="darc-pub-DotNet-msbuild-Trusted-7ad4e1c" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/darc-pub-DotNet-msbuild-Trusted-7ad4e1c7/nuget/v3/index.json" />
1211
<!-- End: Package sources from DotNet-msbuild-Trusted -->
1312
<!--End: Package sources managed by Dependency Flow automation. Do not edit the sources above.-->
1413
<add key="dotnet-eng" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/index.json" />
@@ -20,6 +19,8 @@
2019
<add key="dotnet8-transport" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet8-transport/nuget/v3/index.json" />
2120
<add key="dotnet9" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet9/nuget/v3/index.json" />
2221
<add key="dotnet9-transport" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet9-transport/nuget/v3/index.json" />
22+
<add key="dotnet10" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet10/nuget/v3/index.json" />
23+
<add key="dotnet10-transport" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet10-transport/nuget/v3/index.json" />
2324
<add key="dotnet-public" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public/nuget/v3/index.json" />
2425
<add key="vssdk" value="https://pkgs.dev.azure.com/azure-public/vside/_packaging/vssdk/nuget/v3/index.json" />
2526
<add key="vssdk-archived" value="https://pkgs.dev.azure.com/azure-public/vside/_packaging/vssdk-archived/nuget/v3/index.json" />

README.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,3 +132,13 @@ If you're curious about F# itself, check out these links:
132132
* [Get started with F#](https://learn.microsoft.com/dotnet/fsharp/get-started/)
133133
* [F# Software Foundation](https://fsharp.org)
134134
* [F# Testimonials](https://fsharp.org/testimonials)
135+
136+
## Contributors ✨
137+
138+
F# exists because of these wonderful people:
139+
140+
<a href="https://github.com/dotnet/fsharp/graphs/contributors">
141+
<img src="https://contrib.rocks/image?repo=dotnet/fsharp" />
142+
</a>
143+
144+
Made with [contrib.rocks](https://contrib.rocks).

0 commit comments

Comments
 (0)