Repository navigation
SqliteVec: drop net462 and netstandard2.0 support - #63
Merged
Merged
Conversation
sqlite3_load_extension is stubbed out in SQLitePCLRaw's .NET Framework (net471) and .NET Standard (netstandard2.0) provider assets, so vec0 can never load when consumed as net462 or netstandard2.0 -- confirmed via MEVD/test/SqliteVec.ConformanceTests and an independent standalone net472 repro (#62). Only the net8.0 SQLitePCLRaw asset (resolved by our net8.0/net10.0 targets) works correctly. - Drop net462/netstandard2.0 from TargetFrameworks; keep net10.0;net8.0. - Remove the now-always-true "#if NET" conditionals (and their "#else" .NET Framework/.NET Standard fallbacks) from the provider source, since NET is defined for all remaining TFMs. - Drop net472 from SqliteVec.ConformanceTests (was net10.0 plus the shared NetFrameworkTfm property). - Bump package version to 1.0.3-preview. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: dc4fb29c-b28c-4a98-85a7-d15fbb0629d1
Contributor
There was a problem hiding this comment.
🟢 Approval recommended
The framework changes are consistent, focused, tested, and include the required provider version update.
0 open findings
What changed in this PR
Drops unsupported SqliteVec target frameworks and removes obsolete compatibility branches.
Changes:
- Restricts SqliteVec to .NET 8 and .NET 10.
- Updates conformance tests to .NET 10.
- Bumps the package version and simplifies framework-specific code.
| File | Description |
|---|---|
SqliteVec.ConformanceTests.csproj |
Removes .NET Framework testing. |
SqliteVec.csproj |
Drops unsupported TFMs and bumps version. |
SqliteVectorStore.cs |
Removes obsolete conditional return types. |
SqlitePropertyMapping.cs |
Unconditionally supports modern date/time types. |
SqliteModelBuilder.cs |
Simplifies supported-type validation. |
SqliteMapper.cs |
Removes the legacy vector-mapping fallback. |
SqliteFilterTranslator.cs |
Removes obsolete date/time conditionals. |
🧠 Review effort: Balanced
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Contributor
Author
|
Note to self: once we get this merged, I need to update dotnet/extensions workarounds: |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Drops
net462andnetstandard2.0support from the SqliteVec provider.Why
Fixes #62.
sqlite3_load_extensionis stubbed out in SQLitePCLRaw'snet471(.NET Framework) andnetstandard2.0provider assets, so thevec0extension can never load when the package is consumed asnet462ornetstandard2.0— regardless of CPU architecture. Only thenet8.0SQLitePCLRaw asset (resolved by ournet8.0/net10.0targets) works correctly.This was confirmed two ways:
MEVD/test/SqliteVec.ConformanceTestslocally onnet472: fails withBadImageFormatException(default build resolves awin-x86native asset while the host runs x64) and, once that's worked around withPlatformTarget=x64, fails again withSQLite Error 1: ''from the stubbedsqlite3_load_extension.net472console app that installs the packed NuGet package directly (no test harness involved) reproduces the exact same two failures.dotnet/extensionshits the same issue and works around it by forcingPlatformTarget=x64for non-.NETCoreAppTFMs, then explicitly skipping their only Sqlite-related test on Full Framework ("We don't run Sqlite tests on Full Framework due to some native dependency issues").Changes
SqliteVec.csproj:TargetFrameworks→net10.0;net8.0; version bumped to1.0.3-preview.SqliteVec.ConformanceTests.csproj: dropnet472, nownet10.0only.#if NET/#elseconditionals (and their Full Framework/.NET Standard fallbacks) from the provider source, sinceNETis defined for all remaining TFMs.Testing
dotnet build MEVD/MEVD.slnf -c Release: 0 warnings/errors.SqliteVec.UnitTests: 38/38 passed.SqliteVec.ConformanceTests: 207/207 passed (net10.0).