Remove Jet (MS Access) support#2279
Conversation
There was a problem hiding this comment.
Pull request overview
Removes the legacy Jet (MS Access) provider from FluentMigrator by deleting the Jet runner implementation, removing Jet-specific IDs/registrations, and cleaning up tests, samples, and solution references that depended on it.
Changes:
- Deleted the entire
FluentMigrator.Runner.Jetproject and its Jet-specific processor/generator/type-map code. - Removed Jet-related tests, helpers, and project/package references from the test suite.
- Removed Jet identifiers and DI registration hooks from shared runner APIs and sample apps.
Reviewed changes
Copilot reviewed 31 out of 31 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
test/FluentMigrator.Tests/Unit/Runners/DatabaseIdentifierTests.cs |
Removed Jet processor/generator coverage from shared ID tests. |
test/FluentMigrator.Tests/Unit/Generators/Jet/JetTableTests.cs |
Deleted Jet table generator tests. |
test/FluentMigrator.Tests/Unit/Generators/Jet/JetSchemaTests.cs |
Deleted Jet schema generator tests. |
test/FluentMigrator.Tests/Unit/Generators/Jet/JetIndexTests.cs |
Deleted Jet index generator tests. |
test/FluentMigrator.Tests/Unit/Generators/Jet/JetGeneratorTests.cs |
Deleted Jet generator behavior tests. |
test/FluentMigrator.Tests/Unit/Generators/Jet/JetDataTests.cs |
Deleted Jet data SQL tests. |
test/FluentMigrator.Tests/Unit/Generators/Jet/JetConstraintsTests.cs |
Deleted Jet constraint generator tests. |
test/FluentMigrator.Tests/Unit/Generators/Jet/JetColumnTests.cs |
Deleted Jet column generator tests. |
test/FluentMigrator.Tests/Unit/Generators/GenericGenerator/QuoterTests.cs |
Removed Jet quoter coverage from generic quoter tests. |
test/FluentMigrator.Tests/IntegrationTestOptions.cs |
Removed Jet integration-test option and OleDb dependency. |
test/FluentMigrator.Tests/Integration/Processors/Jet/JetProcessorTests.cs |
Deleted Jet processor integration tests. |
test/FluentMigrator.Tests/Integration/Processors/Jet/JetIntegrationTests.cs |
Deleted Jet integration test base setup. |
test/FluentMigrator.Tests/HostUtilities.cs |
Removed Jet-specific host helper. |
test/FluentMigrator.Tests/Helpers/JetTestTable.cs |
Deleted Jet test-table helper. |
test/FluentMigrator.Tests/FluentMigrator.Tests.csproj |
Removed Jet project/package references and old compile exclusions. |
src/FluentMigrator/ProcessorId.cs |
Removed Jet processor identifiers from public constants. |
src/FluentMigrator/GeneratorIdConstants.cs |
Removed Jet generator identifier constant. |
src/FluentMigrator.Runner/FluentMigrator.Runner.csproj |
Removed Jet runner project reference. |
src/FluentMigrator.Runner/FluentMigrationRunnerBuilderExtensions.cs |
Removed Jet from AddAllDatabases(). |
src/FluentMigrator.Runner.Jet/Processors/Jet/JetProcessor.cs |
Deleted Jet processor implementation. |
src/FluentMigrator.Runner.Jet/JetRunnerBuilderExtensions.cs |
Deleted AddJet() registration extension. |
src/FluentMigrator.Runner.Jet/Generators/Jet/JetTypeMap.cs |
Deleted Jet type-map implementation. |
src/FluentMigrator.Runner.Jet/Generators/Jet/JetQuoter.cs |
Deleted Jet quoter. |
src/FluentMigrator.Runner.Jet/Generators/Jet/JetGenerator.cs |
Deleted Jet SQL generator. |
src/FluentMigrator.Runner.Jet/Generators/Jet/JetColumn.cs |
Deleted Jet column formatter. |
src/FluentMigrator.Runner.Jet/Generators/Jet/IJetTypeMap.cs |
Deleted Jet type-map interface. |
src/FluentMigrator.Runner.Jet/FluentMigrator.Runner.Jet.csproj |
Deleted the Jet runner project file. |
samples/FluentMigrator.Example.TypeMapper/Program.cs |
Removed Jet type-map usage from sample output. |
samples/FluentMigrator.Example.TypeMapper/FluentMigrator.Example.TypeMapper.csproj |
Removed Jet sample project reference. |
samples/FluentMigrator.Example.Migrator/Program.DependencyInjection.cs |
Removed Jet registration from DI sample. |
FluentMigrator.sln |
Removed Jet project and solution configuration entries. |
| @@ -11,7 +11,6 @@ public static class ProcessorIdConstants | |||
| public const string Firebird = nameof(Firebird); | |||
| [Obsolete("Hana support will go away unless someone in the community steps up to provide support.")] | |||
| public const string Hana = nameof(Hana); | |||
| @@ -11,7 +11,6 @@ public static class ProcessorIdConstants | |||
| public const string Firebird = nameof(Firebird); | |||
| [Obsolete("Hana support will go away unless someone in the community steps up to provide support.")] | |||
| public const string Hana = nameof(Hana); | |||
| @@ -25,7 +25,6 @@ public static class GeneratorIdConstants | |||
| public const string Firebird = nameof(Firebird); | |||
|
@millonbigs-cpu Is there a reason you keep approving this PR? |
|
@millonbigs-cpu Please respond or I will block you from the repo. |
|
Pls help i don't know to do this |
@millonbigs-cpu |
|
@copilot Rebase this to main branch. We've fixed a ton of build issues. Then double check there are no Jet references left. |
Done in fe02436. I merged latest main into this branch and removed the remaining Jet references; a repository-wide check now shows no Jet/MS Access/AddJet/Jet constant references left. |
Test Results 2 files ± 0 2 suites ±0 43s ⏱️ -14s Results for commit 30e8277. ± Comparison against base commit beeb4b3. This pull request removes 134 and adds 2 tests. Note that renamed tests count towards both.♻️ This comment has been updated with latest results. |
Package validation (EnablePackageValidation against baseline 8.0.1) fails with CP0002 because ProcessorId.Jet, ProcessorIdConstants.Jet, and GeneratorIdConstants.Jet were removed from the public API. This removal is the point of the PR, so record baseline suppressions generated via /p:ApiCompatGenerateSuppressionFile=true. Co-Authored-By: Claude Fable 5 <[email protected]>
… doc The class-level XML doc is compiled for every TFM, but RuntimeFeature.IsDynamicCodeSupported only exists on .NET (Core), so the cref fails to resolve on net48 and netstandard2.0. Use <c> in the class summary instead; the cref inside the #elif NET block is unaffected since it only compiles where the property exists. Co-Authored-By: Claude Fable 5 <[email protected]>
| /// Provides a centralized check for whether dynamic code (reflection emit, etc.) is supported | ||
| /// at runtime. In production builds this delegates directly to | ||
| /// <see cref="System.Runtime.CompilerServices.RuntimeFeature.IsDynamicCodeSupported"/>, | ||
| /// <c>System.Runtime.CompilerServices.RuntimeFeature.IsDynamicCodeSupported</c> |
There was a problem hiding this comment.
@copilot we should use pre-processor directives so that on NETFRAMEWORK, we use this style, and on NETCOREAPP we use <see cref="System.Runtime.CompilerServices.RuntimeFeature.IsDynamicCodeSupported"/>, Refer to https://learn.microsoft.com/en-us/dotnet/standard/frameworks#preprocessor-symbols for the complete list of preprocessor symbols.
There was a problem hiding this comment.
Updated in 30e8277. AotSupport now uses preprocessor-gated XML docs: NETCOREAPP uses <see cref="System.Runtime.CompilerServices.RuntimeFeature.IsDynamicCodeSupported"/>, while non-NETCOREAPP targets use the non-cref style. I also aligned the implementation branch to #elif NETCOREAPP.
Summary - Code CoverageSummary
CoverageFluentMigrator - 82.5%
FluentMigrator.Abstractions - 87.3%
FluentMigrator.Extensions.MySql - 55.5%
FluentMigrator.Extensions.Oracle - 79.1%
FluentMigrator.Extensions.Postgres - 72.3%
FluentMigrator.Extensions.Snowflake - 14.2%
FluentMigrator.Extensions.SqlServer - 84.8%
FluentMigrator.Runner - 0%
FluentMigrator.Runner.Core - 76.8%
FluentMigrator.Runner.Db2 - 62.8%
FluentMigrator.Runner.Firebird - 28.6%
FluentMigrator.Runner.Hana - 48.6%
FluentMigrator.Runner.MySql - 93.5%
FluentMigrator.Runner.Oracle - 81.1%
FluentMigrator.Runner.Postgres - 91.9%
FluentMigrator.Runner.Redshift - 73.6%
FluentMigrator.Runner.Snowflake - 67.2%
FluentMigrator.Runner.SQLite - 89.7%
FluentMigrator.Runner.SqlServer - 88.1%
Migrate - 61.9%
|
|
@fubar-coder @PhenX Pour one out for the homies. Jet is dead. https://open.spotify.com/track/24ON9YjaePe19d5x6B78ar?si=c91c7731a8724971 |
Jet has been end-of-life for two decades. This removes all Jet-related code from the codebase.
Removed
src/FluentMigrator.Runner.Jet/— entire project: generator, quoter, type map, column, processor, DI extensionstest/.../Unit/Generators/Jet/— 7 unit test filestest/.../Integration/Processors/Jet/— 2 integration test filestest/.../Helpers/JetTestTable.csUpdated
FluentMigrator.sln— project entry and all build configurationsProcessorIdConstants/ProcessorId/GeneratorIdConstants— removedJetconstantsFluentMigrationRunnerBuilderExtensions.AddAllDatabases()— removedAddJet()callFluentMigrator.Runner.csproj— removed conditionalnet48project referenceFluentMigrator.Tests.csproj— removed project reference, compile exclusions, andSystem.Data.OleDbdependencyIntegrationTestOptions— removedJetproperty andSystem.Data.OleDbusingDatabaseIdentifierTests/QuoterTests/HostUtilities— removed Jet test cases and helpersAddJet()calls andIJetTypeMapreferencesWarning
Firewall rules blocked me from connecting to one or more addresses (expand for details)
I tried to connect to the following addresses, but was blocked by firewall rules:
308vsblobprodsu6weus54.blob.core.windows.net/usr/bin/dotnet dotnet restore --no-dependencies /tmp/codeql-scratch-ebbaa93091d3517f/dbs/csharp/working/8AEA375C9885230658FAC60AC8549FD5/missingpackages_workingdir --packages /tmp/codeql-scratch-ebbaa93091d3517f/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /tmp/codeql-scratch-ebbaa93091d3517f/dbs/csharp/working/nugetconfig/nuget.config --force conf�� essorId.cs --global it user.email(dns block)l78vsblobprodsu6weus64.blob.core.windows.net/usr/bin/dotnet dotnet restore --no-dependencies /home/REDACTED/work/fluentmigrator/fluentmigrator/FluentMigrator.sln --packages /tmp/codeql-scratch-ebbaa93091d3517f/dbs/csharp/working/packages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal /p:TargetFrameworkRootPath=/tmp/codeql-scratch-ebbaa93091d3517f/dbs/csharp/working/emptyFakeDotnetRoot /p:NetCoreTargetingPackRoot=/tmp/codeql-scratch-ebbaa93091d3517f/dbs/csharp/working/emptyFakeDotnetRoot /p:AllowMissingPrunePackageData=true(dns block)/usr/bin/dotnet dotnet restore --no-dependencies /home/REDACTED/work/fluentmigrator/fluentmigrator/src/FluentMigrator.MSBuild/FluentMigrator.MSBuild.csproj --packages /tmp/codeql-scratch-ebbaa93091d3517f/dbs/csharp/working/packages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal /p:TargetFrameworkRootPath=/tmp/codeql-scratch-ebbaa93091d3517f/dbs/csharp/working/emptyFakeDotnetRoot /p:NetCoreTargetingPackRoot=/tmp/codeql-scratch-ebbaa93091d3517f/dbs/csharp/working/emptyFakeDotnetRoot /p:AllowMissingPrunePackageData=true(dns block)pyvvsblobprodsu6weus63.blob.core.windows.net/usr/bin/dotnet dotnet restore --no-dependencies /home/REDACTED/work/fluentmigrator/fluentmigrator/FluentMigrator.sln --packages /tmp/codeql-scratch-ebbaa93091d3517f/dbs/csharp/working/packages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal /p:TargetFrameworkRootPath=/tmp/codeql-scratch-ebbaa93091d3517f/dbs/csharp/working/emptyFakeDotnetRoot /p:NetCoreTargetingPackRoot=/tmp/codeql-scratch-ebbaa93091d3517f/dbs/csharp/working/emptyFakeDotnetRoot /p:AllowMissingPrunePackageData=true(dns block)/usr/bin/dotnet dotnet restore --no-dependencies /home/REDACTED/work/fluentmigrator/fluentmigrator/samples/FluentMigrator.Example.MSBuild/FluentMigrator.Example.MSBuild.csproj --packages /tmp/codeql-scratch-ebbaa93091d3517f/dbs/csharp/working/packages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal /p:TargetFrameworkRootPath=/tmp/codeql-scratch-ebbaa93091d3517f/dbs/csharp/working/emptyFakeDotnetRoot /p:NetCoreTargetingPackRoot=/tmp/codeql-scratch-ebbaa93091d3517f/dbs/csharp/working/emptyFakeDotnetRoot /p:AllowMissingPrunePackageData=true(dns block)y78vsblobprodsu6weus75.blob.core.windows.net/usr/bin/dotnet dotnet restore --no-dependencies /tmp/codeql-scratch-ebbaa93091d3517f/dbs/csharp/working/AEE4041E5A245B9F9161B5C3BF3844A0/missingpackages_workingdir --packages /tmp/codeql-scratch-ebbaa93091d3517f/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /tmp/codeql-scratch-ebbaa93091d3517f/dbs/csharp/working/nugetconfig/nuget.config --force conf�� essorId.cs --global ndor/bin/git user.email(dns block)If you need me to access, download, or install something from one of these locations, you can either: