Skip to content

Commit fe0273d

Browse files
authored
Merge branch 'main' into html-HIDE_REPRESENTATION-define
2 parents b90702a + eaa9c4a commit fe0273d

239 files changed

Lines changed: 30754 additions & 2733 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.

.config/dotnet-tools.json

Lines changed: 14 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,29 +2,26 @@
22
"version": 1,
33
"isRoot": true,
44
"tools": {
5-
"fsdocs-tool": {
6-
"version": "20.0.0-alpha-009",
7-
"commands": [
8-
"fsdocs"
9-
]
10-
},
11-
"fake-cli": {
12-
"version": "5.22.0",
13-
"commands": [
14-
"fake"
15-
]
16-
},
175
"paket": {
18-
"version": "7.1.5",
6+
"version": "9.0.2",
197
"commands": [
208
"paket"
21-
]
9+
],
10+
"rollForward": false
11+
},
12+
"fsdocs-tool": {
13+
"version": "20.0.1",
14+
"commands": [
15+
"fsdocs"
16+
],
17+
"rollForward": false
2218
},
2319
"fantomas": {
24-
"version": "5.0.0-alpha-008",
20+
"version": "7.0.1",
2521
"commands": [
2622
"fantomas"
27-
]
23+
],
24+
"rollForward": false
2825
}
2926
}
30-
}
27+
}

.devcontainer/devcontainer.json

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
// For format details, see https://aka.ms/devcontainer.json. For config options, see the
2+
// README at: https://github.com/devcontainers/templates/tree/main/src/docker-existing-dockerfile
3+
{
4+
"name": "Existing Dockerfile",
5+
"build": {
6+
// Sets the run context to one level up instead of the .devcontainer folder.
7+
"context": "..",
8+
// Update the 'dockerFile' property if you aren't using the standard 'Dockerfile' filename.
9+
"dockerfile": "../Dockerfile"
10+
},
11+
"customizations": {
12+
"vscode": {
13+
"extensions": [
14+
"ms-azuretools.vscode-docker",
15+
"ms-dotnettools.csdevkit",
16+
"Ionide.Ionide-fsharp",
17+
"Ionide.Ionide-Paket",
18+
"shardulm94.trailing-spaces",
19+
"esbenp.prettier-vscode",
20+
"DavidAnson.vscode-markdownlint",
21+
"yzhang.markdown-all-in-one"
22+
]
23+
}
24+
}
25+
26+
// Features to add to the dev container. More info: https://containers.dev/features.
27+
// "features": {},
28+
29+
// Use 'forwardPorts' to make a list of ports inside the container available locally.
30+
// "forwardPorts": [],
31+
32+
// Uncomment the next line to run commands after the container is created.
33+
// "postCreateCommand": "cat /etc/os-release",
34+
35+
// Configure tool-specific properties.
36+
// "customizations": {},
37+
38+
// Uncomment to connect as an existing user other than the container default. More info: https://aka.ms/dev-containers-non-root.
39+
// "remoteUser": "devcontainer"
40+
}

.gitattributes

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,3 +30,5 @@
3030

3131
# correct file type displays in gitlab to not be so overwhelmingly HTML
3232
tests/FSharp.Data.Tests/Data/**.htm* -linguist-detectable
33+
34+
.github/workflows/*.lock.yml linguist-generated=true merge=ours
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
name: 'Daily Perf Improver Build Steps'
2+
description: 'Sets up the environment for F# Data performance development work'
3+
4+
runs:
5+
using: 'composite'
6+
steps:
7+
- name: Setup .NET 8
8+
uses: actions/setup-dotnet@v4
9+
with:
10+
dotnet-version: '8.0.x'
11+
12+
- name: Restore .NET local tools
13+
shell: bash
14+
run: dotnet tool restore
15+
16+
- name: Restore Paket packages
17+
shell: bash
18+
run: dotnet paket restore
19+
20+
- name: Build solution (Release)
21+
shell: bash
22+
run: dotnet run --project build/build.fsproj -- -t Build
23+
24+
- name: Run tests to ensure everything works
25+
shell: bash
26+
run: dotnet run --project build/build.fsproj -- -t RunTests
27+
28+
- name: Check code formatting
29+
shell: bash
30+
run: dotnet run --project build/build.fsproj -- -t CheckFormat
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
name: 'Generate Test Coverage Report'
2+
description: 'Build project, run tests with coverage collection, and generate coverage report'
3+
4+
runs:
5+
using: 'composite'
6+
steps:
7+
- name: Setup .NET Core 8
8+
uses: actions/setup-dotnet@v4
9+
with:
10+
dotnet-version: 8.0.400
11+
12+
- name: Restore .NET local tools
13+
shell: bash
14+
run: dotnet tool restore
15+
16+
- name: Restore packages
17+
shell: bash
18+
run: dotnet paket restore
19+
20+
- name: Build all projects
21+
shell: bash
22+
run: dotnet run --project build/build.fsproj -- -t Build
23+
24+
- name: Install coverage collector globally
25+
shell: bash
26+
run: dotnet tool install -g dotnet-coverage || true
27+
28+
- name: Run tests with coverage collection
29+
shell: bash
30+
run: |
31+
# Use .NET's built-in test runner directly with the available test projects
32+
dotnet test tests/FSharp.Data.Core.Tests/FSharp.Data.Core.Tests.fsproj \
33+
--collect:"Code Coverage" \
34+
--results-directory ./TestResults/ \
35+
--logger "console;verbosity=normal" \
36+
--no-build || true
37+
38+
# Also try with coverlet if available
39+
dotnet test tests/FSharp.Data.Core.Tests/FSharp.Data.Core.Tests.fsproj \
40+
/p:CollectCoverage=true \
41+
/p:CoverletOutputFormat=cobertura \
42+
/p:CoverletOutput=./TestResults/coverage.xml \
43+
--no-build || echo "Coverlet not available, using basic collection"
44+
45+
- name: Install ReportGenerator tool (if not already available)
46+
shell: bash
47+
run: dotnet tool install -g dotnet-reportgenerator-globaltool || true
48+
49+
- name: Generate coverage report
50+
shell: bash
51+
run: |
52+
# Try to find and process any coverage files that were generated
53+
if find TestResults -name "*.cobertura.xml" -o -name "*.xml" -o -name "*.coverage" | head -1 >/dev/null 2>&1; then
54+
echo "Found coverage files, generating report..."
55+
reportgenerator \
56+
-reports:"TestResults/**/*.cobertura.xml;TestResults/**/coverage.xml;TestResults/**/*.coverage" \
57+
-targetdir:"TestResults/CoverageReport" \
58+
-reporttypes:"Html;Cobertura;TextSummary" \
59+
-verbosity:Info || echo "Report generation failed, but continuing..."
60+
else
61+
echo "No coverage files found, creating basic summary..."
62+
mkdir -p TestResults/CoverageReport
63+
echo "No coverage data was successfully collected during this run." > TestResults/CoverageReport/Summary.txt
64+
echo "This may be due to missing coverage collection tools or configuration issues." >> TestResults/CoverageReport/Summary.txt
65+
fi
66+
67+
- name: Display coverage summary
68+
shell: bash
69+
run: |
70+
echo "=== COVERAGE SUMMARY ==="
71+
if [ -f "TestResults/CoverageReport/Summary.txt" ]; then
72+
cat "TestResults/CoverageReport/Summary.txt"
73+
else
74+
echo "Coverage summary file not found"
75+
fi
76+
echo "========================"
77+
78+
- name: Upload coverage report as artifact
79+
uses: actions/upload-artifact@v4
80+
with:
81+
name: coverage-report
82+
path: |
83+
TestResults/CoverageReport/
84+
TestResults/**/coverage.cobertura.xml
85+
retention-days: 30

.github/dependabot.yml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# To get started with Dependabot version updates, you'll need to specify which
2+
# package ecosystems to update and where the package manifests are located.
3+
# Please see the documentation for more information:
4+
# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
5+
# https://containers.dev/guide/dependabot
6+
7+
version: 2
8+
updates:
9+
- package-ecosystem: "devcontainers"
10+
directory: "/"
11+
schedule:
12+
interval: weekly
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
tools:
3+
claude:
4+
allowed:
5+
Bash: ["*"]
6+
---
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
---
2+
tools:
3+
claude:
4+
allowed:
5+
Bash:
6+
- "gh label list:*"
7+
- "gh label view:*"
8+
---
9+
10+
## GitHub Tools
11+
12+
You can use the GitHub MCP tools to perform various tasks in the repository. In addition to the tools listed below, you can also use the following `gh` command line invocations:
13+
14+
- List labels: `gh label list ...`
15+
- View label: `gh label view <label-name> ...`
16+
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
> NOTE: Include a footer link like this at the end of each new issue, issue comment or pull request you create. Do this in addition to any other footers you are instructed to include.
2+
3+
```markdown
4+
> AI-generated content by [${{ github.workflow }}](https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}) may contain mistakes.
5+
```
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
---
2+
tools:
3+
claude:
4+
allowed:
5+
Edit:
6+
MultiEdit:
7+
Write:
8+
Bash:
9+
- "echo:*"
10+
---
11+
12+
### Output Report implemented via GitHub Action Job Summary
13+
14+
You will use the Job Summary for GitHub Actions run ${{ github.run_id }} in ${{ github.repository }} to report progess. This means writing to the special file $GITHUB_STEP_SUMMARY. You can write the file using "echo" or the "Write" tool. GITHUB_STEP_SUMMARY is an environment variable set by GitHub Actions which you can use to write the report. You can read this environment variable using the bash command "echo $GITHUB_STEP_SUMMARY".
15+
16+
At the end of the workflow, finalize the job summry with a very, very succinct summary in note form of
17+
- the steps you took
18+
- the problems you found
19+
- the actions you took
20+
- the exact bash commands you executed
21+
- the exact web searches you performed
22+
- the exact MCP function/tool calls you used
23+
24+
If any step fails, then make this really obvious with emoji. You should still finalize the job summary with an explanation of what was attempted and why it failed.
25+
26+
Include this at the end of the job summary:
27+
28+
```
29+
> AI-generated content by [${{ github.workflow }}](https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}) may contain mistakes.
30+
```

0 commit comments

Comments
 (0)