Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
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
6 changes: 3 additions & 3 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 @@ -35,7 +35,7 @@
"fantomas-tool": {
"version": "4.5.6",
"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"
]
}
}
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
4 changes: 2 additions & 2 deletions build/build.fs
Original file line number Diff line number Diff line change
Expand Up @@ -469,7 +469,7 @@ let updateChangelog ctx =
)

let newChangelog =
Changelog.Changelog.New(changelog.Header, changelog.Description, None, newEntry :: changelog.Entries)
Changelog.Changelog.New(changelog.Header, changelog.Description, None, newEntry :: changelog.Entries, [])

latestEntry <- newEntry

Expand All @@ -494,7 +494,7 @@ let updateChangelog ctx =
|> List.ofSeq
|> List.rev

let isRef line =
let isRef (line: string) =
System.Text.RegularExpressions.Regex.IsMatch(line, @"^\[.+?\]:\s?[a-z]+://.*$")

let linkReferenceTargets =
Expand Down
2 changes: 1 addition & 1 deletion build/build.fsproj
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net6.0</TargetFramework>
<TargetFramework>net10.0</TargetFramework>
<WarnOn>3390;$(WarnOn)</WarnOn>
<IsPackable>false</IsPackable>
</PropertyGroup>
Expand Down
2 changes: 1 addition & 1 deletion docsSrc/Tutorials/Getting_Started.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
## Prerequisites
This guide assumes:

* You have the .NET 5.0 SDK installed
* You have the .NET 10.0 SDK installed
* You have created a project and added the `dotnet-ef` tool

## Installing the package
Expand Down
2 changes: 1 addition & 1 deletion docsTool/Program.fs
Original file line number Diff line number Diff line change
Expand Up @@ -217,7 +217,7 @@ module GenerateDocs =
(fun opts ->
{ opts with
OutputPath = Some cfg.PublishPath.FullName
Framework = Some "net6.0" })
Framework = Some "net10.0" })
p)

let generateAPI (cfg: Configuration) =
Expand Down
2 changes: 1 addition & 1 deletion docsTool/docsTool.fsproj
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net5.0</TargetFramework>
<TargetFramework>net10.0</TargetFramework>
<IsPackable>false</IsPackable>
</PropertyGroup>

Expand Down
2 changes: 1 addition & 1 deletion global.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"sdk": {
"version": "6.0.100",
"version": "10.0.100",
"rollForward": "latestMinor"
}
}
Loading