Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions .config/dotnet-tools.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,13 @@
]
},
"dotnet-reportgenerator-globaltool": {
"version": "4.2.15",
"version": "5.4.1",
"commands": [
"reportgenerator"
]
},
"paket": {
"version": "6.0.13",
"version": "10.3.1",
"commands": [
"paket"
]
Expand All @@ -32,10 +32,10 @@
"fsharp-analyzers"
]
},
"fantomas-tool": {
"version": "4.5.6",
"fantomas": {
"version": "6.3.15",
"commands": [
"fantomas"
"fantomas"
]
}
}
Expand Down
14 changes: 7 additions & 7 deletions .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
FROM debian:buster-slim
FROM debian:bookworm-slim


RUN apt-get update \
&& apt-get install -y --no-install-recommends \
ca-certificates \
\
# .NET Core dependencies
# .NET dependencies
libc6 \
libgcc1 \
libgcc-s1 \
libgssapi-krb5-2 \
libicu63 \
libssl1.1 \
libicu72 \
libssl3 \
libstdc++6 \
zlib1g \
curl \
Expand All @@ -21,10 +21,10 @@ RUN apt-get update \


ENV \
# Enable detection of running in a container
DOTNET_RUNNING_IN_CONTAINER=true \
DOTNET_INSTALL_DIR=/usr/share/dotnet/ \
DOTNET_ROOT=/usr/share/dotnet/
DOTNET_ROOT=/usr/share/dotnet/ \
DOTNET_NOLOGO=1

COPY ./.devcontainer/install-dotnets.sh global.json* .

Expand Down
20 changes: 12 additions & 8 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,15 @@
"forwardPorts": [
0
],
"extensions": [
"ionide.ionide-fsharp",
"ms-dotnettools.csharp",
"editorconfig.editorconfig",
"ionide.ionide-paket",
"ionide.ionide-fake"
]
}
"customizations": {
"vscode": {
"extensions": [
"ionide.ionide-fsharp",
"ms-dotnettools.csharp",
"editorconfig.editorconfig",
"ionide.ionide-paket",
"ionide.ionide-fake"
]
}
}
}
13 changes: 1 addition & 12 deletions .devcontainer/install-dotnets.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/bin/bash

# downloads installer script https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-install-script
# downloads installer script https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-install-script
curl -SL --output dotnet-install.sh https://dot.net/v1/dotnet-install.sh


Expand All @@ -10,14 +10,3 @@ if test -f "$FILE"; then
echo "installing dotnet via $FILE"
/bin/bash dotnet-install.sh --verbose --jsonfile $FILE
fi


# Add additional versions if required
DOTNET_VERSIONS=(
# 'latest'
'5.0.100'
)
for version in ${DOTNET_VERSIONS[@]}; do
echo "installing dotnet $version"
/bin/bash dotnet-install.sh --verbose --version $version
done
3 changes: 1 addition & 2 deletions .devcontainer/settings.vscode.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
{
"FSharp.fsacRuntime":"netcore",
"FSharp.enableAnalyzers": true,
"FSharp.analyzersPath": [
"./packages/analyzers"
]
}
}
10 changes: 10 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,16 @@ end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true

# Fantomas settings (pinned to fantomas 6 defaults to prevent future mass reformatting)
[*.{fs,fsi,fsx}]
max_line_length = 120
fsharp_max_if_then_else_short_width = 60
fsharp_max_infix_operator_expression = 80
fsharp_max_record_width = 40
fsharp_max_array_or_list_width = 80
fsharp_max_value_binding_width = 80
fsharp_max_function_binding_width = 40

[paket.*]
trim_trailing_whitespace = true
indent_size = 2
Expand Down
12 changes: 4 additions & 8 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,26 +14,22 @@ jobs:
runs-on: ${{ matrix.os }}

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
# Not specifying a version will attempt to install via global.json
- name: Setup .NET Core SDK
uses: actions/setup-dotnet@v1.9.0
- name: Setup .NET SDK
uses: actions/setup-dotnet@v4
with:
dotnet-version: '6.x'
dotnet-version: '10.x'

- name: Build
if: runner.os != 'Windows'
run: |
chmod +x ./build.sh
./build.sh
env:
# Work around https://github.com/actions/setup-dotnet/issues/29
#DOTNET_ROOT: ${{ runner.tool_cache }}/dncs/${{ matrix.dotnet }}/x64
CI: true
- name: Build
if: runner.os == 'Windows'
run: ./build.cmd
env:
# Work around https://github.com/actions/setup-dotnet/issues/29
#DOTNET_ROOT: ${{ runner.tool_cache }}/dncs/${{ matrix.dotnet }}/x64
CI: true
1,011 changes: 514 additions & 497 deletions .paket/Paket.Restore.targets

Large diffs are not rendered by default.

1 change: 0 additions & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
{
"FSharp.fsacRuntime":"netcore",
"FSharp.enableAnalyzers": true,
"FSharp.analyzersPath": [
"./packages/analyzers"
Expand Down
16 changes: 15 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,19 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [10.0.0] - 2026-04-05

### Changed
- Migrated to .NET 10 / EF Core 10
- Updated all dependencies: FSharp.Core 6→9, FSharp.Compiler.Service 41→43, paket 6→10, fantomas 4→6, FAKE 5→6
- Adapted to EF Core 10 breaking changes (removed/renamed APIs, new interface members, constructor changes)
- Updated CI workflow to .NET 10 with latest GitHub Actions
- Added C# interop project for TestRelationalTypeMappingSource (F# cannot handle covariant return types)
- Updated devcontainer to Debian bookworm and .NET 10
- Relaxed FSharp.Core dependency constraint (>= 9.0.100 instead of exact)
- Replaced deprecated PackageLicenseUrl with PackageLicenseExpression (MIT)
- Updated documentation (README, Getting Started, docsSrc) for .NET 10

## [6.0.7] - 2022-06-26

### Fixed
Expand Down Expand Up @@ -68,7 +81,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Automatic registration of DesignTimeServices - https://github.com/efcore/EFCore.FSharp/pull/86
- DbContextHelpers - curried functions for interacting with DbContext to allow for a more 'native' F# experience

[Unreleased]: https://github.com/efcore/EFCore.FSharp/compare/v6.0.7...HEAD
[Unreleased]: https://github.com/efcore/EFCore.FSharp/compare/v10.0.0...HEAD
[10.0.0]: https://github.com/efcore/EFCore.FSharp/compare/v6.0.7...v10.0.0
[6.0.7]: https://github.com/efcore/EFCore.FSharp/compare/v6.0.6...v6.0.7
[6.0.6]: https://github.com/efcore/EFCore.FSharp/compare/v6.0.5...v6.0.6
[6.0.5]: https://github.com/efcore/EFCore.FSharp/compare/v6.0.4...v6.0.5
Expand Down
2 changes: 1 addition & 1 deletion Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<!-- summary is not migrated from project.json, but you can use the <Description> property for that if needed. -->
<PackageTags>f#, fsharp</PackageTags>
<PackageProjectUrl>https://github.com/efcore/EFCore.FSharp</PackageProjectUrl>
<PackageLicenseUrl>https://github.com/efcore/EFCore.FSharp/blob/master/LICENSE.md</PackageLicenseUrl>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
<RepositoryType>git</RepositoryType>
<Authors>efcore</Authors>
Expand Down
21 changes: 18 additions & 3 deletions EFCore.FSharp.sln
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "docsTool", "docsTool\docsTo
EndProject
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "build", "build\build.fsproj", "{40D2259D-991D-44C4-B45D-C88CE0710C23}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EFCore.FSharp.Tests.CSharpInterop", "tests\EFCore.FSharp.Tests.CSharpInterop\EFCore.FSharp.Tests.CSharpInterop.csproj", "{20918426-CC33-430A-AD54-9497F22ADBED}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Expand All @@ -24,9 +26,6 @@ Global
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{5D30E174-2538-47AC-8443-318C8C5DC2C9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5D30E174-2538-47AC-8443-318C8C5DC2C9}.Debug|Any CPU.Build.0 = Debug|Any CPU
Expand Down Expand Up @@ -76,9 +75,25 @@ Global
{40D2259D-991D-44C4-B45D-C88CE0710C23}.Release|x64.Build.0 = Release|Any CPU
{40D2259D-991D-44C4-B45D-C88CE0710C23}.Release|x86.ActiveCfg = Release|Any CPU
{40D2259D-991D-44C4-B45D-C88CE0710C23}.Release|x86.Build.0 = Release|Any CPU
{20918426-CC33-430A-AD54-9497F22ADBED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{20918426-CC33-430A-AD54-9497F22ADBED}.Debug|Any CPU.Build.0 = Debug|Any CPU
{20918426-CC33-430A-AD54-9497F22ADBED}.Debug|x64.ActiveCfg = Debug|Any CPU
{20918426-CC33-430A-AD54-9497F22ADBED}.Debug|x64.Build.0 = Debug|Any CPU
{20918426-CC33-430A-AD54-9497F22ADBED}.Debug|x86.ActiveCfg = Debug|Any CPU
{20918426-CC33-430A-AD54-9497F22ADBED}.Debug|x86.Build.0 = Debug|Any CPU
{20918426-CC33-430A-AD54-9497F22ADBED}.Release|Any CPU.ActiveCfg = Release|Any CPU
{20918426-CC33-430A-AD54-9497F22ADBED}.Release|Any CPU.Build.0 = Release|Any CPU
{20918426-CC33-430A-AD54-9497F22ADBED}.Release|x64.ActiveCfg = Release|Any CPU
{20918426-CC33-430A-AD54-9497F22ADBED}.Release|x64.Build.0 = Release|Any CPU
{20918426-CC33-430A-AD54-9497F22ADBED}.Release|x86.ActiveCfg = Release|Any CPU
{20918426-CC33-430A-AD54-9497F22ADBED}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{5D30E174-2538-47AC-8443-318C8C5DC2C9} = {C397A34C-84F1-49E7-AEBC-2F9F2B196216}
{1CA2E092-2320-451D-A4F0-9ED7C7C528CA} = {ACBEE43C-7A88-4FB1-9B06-DB064D22B29F}
{20918426-CC33-430A-AD54-9497F22ADBED} = {ACBEE43C-7A88-4FB1-9B06-DB064D22B29F}
EndGlobalSection
EndGlobal
2 changes: 1 addition & 1 deletion GETTING_STARTED.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ This guide is for a simple single-project setup rather than a production-ready t

This guide assumes:

- You have the `.NET Core SDK` installed (tested with version 3.1, though it may work with other versions)
- You have the `.NET SDK` installed (version 10.0 or higher)
- You have `SQLite` installed and a basic knowledge of how to explore a SQLite database

# Setup
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ This can then be referenced as usual.

Make sure the following **requirements** are installed on your system:

- [dotnet SDK](https://www.microsoft.com/net/download/core) 5.0 or higher
- [dotnet SDK](https://dotnet.microsoft.com/en-us/download) 10.0 or higher

or

Expand Down
Loading
Loading