Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

2.0.4 #356

Closed
ericsink opened this issue Aug 13, 2020 · 15 comments
Closed

2.0.4 #356

ericsink opened this issue Aug 13, 2020 · 15 comments

Comments

@ericsink
Copy link
Owner

This is the place to summarize or talk about what should go in 2.0.4.

The one thing I'm sure is needed is updating the e_sqlite3 builds to 3.32.x.

@ericsink
Copy link
Owner Author

@bricelam I wish to make sure that the timing of my 2.0.4 release is causing no trouble with respect to the timing of the .NET 5.0 release cycle. Please feel free to advise.

@sjlombardo
Copy link

From a scheduling perspective, SQLite 3.33 is in beta and will likely be released soon, potentially next week.

@ericsink
Copy link
Owner Author

For 2.0.4 consideration: Does something need to be done regarding #346 ?

Adding support for stmt_isexplain broke compatibilty with winsqlite3.dll.

Should support for stmt_isexplain be removed?

Should additional code be added to cope with the presence or absence of stmt_isexplain?

Should we do nothing and wait for winsqlite3.dll to catch up.

@ericsink
Copy link
Owner Author

Probably should add the bundle described in #325

@ericsink
Copy link
Owner Author

@sjlombardo Yeah so probably 3.33 then...

@ericsink
Copy link
Owner Author

Should 2.0.4 do something related to #343 ?

For example, we could move a little further away from NativeAssembly.Load() back toward regular DllImport. But this can cause problems for .NET Framework because of the need to "pre-load" the native DLL to deal with things like 32-vs-64 bit issues.

Or we could just ignore the issue and wait for the issue to get resolved in the platform (see the issue linked in #343

@bricelam
Copy link
Contributor

bricelam commented Aug 13, 2020

The .NET 5 release schedule is as predictable as ever with monthly previews and GA in November.

Month Release
August 5.0.0-preview.8
September 5.0.0-rc.1
October 5.0.0-rc.2
November 10 5.0.0

Getting this in by mid-September would probably be ideal, just so we can get some verification from our users during the RC2 release.

@bricelam
Copy link
Contributor

My two cents:

Should support for stmt_isexplain be removed?
Should additional code be added to cope with the presence or absence of stmt_isexplain?

We use it to allow executing EXPLAIN statements without forcing users to define the parameters. We only call it if the SQLite version is high enough, so the behavior of the method otherwise is largely irrelevant to Microsoft.Data.Sqlite.

https://github.com/dotnet/efcore/blob/89a30d410fc1e1f5390c0d00588336ddcb843bb8/src/Microsoft.Data.Sqlite.Core/SqliteCommand.cs#L346-L350

Probably should add the bundle described in #325

Nice to have (for SpatiaLite users).

Should 2.0.4 do something related to #343?

I'd wait for the platform fix, but of course, others may feel it's more urgent.

@bricelam
Copy link
Contributor

Any thoughts on adding some of the recent extensions included in the CLI to e_sqlite3?

  • uint (collating sequence)
  • decimal
  • ieee754

@ericsink
Copy link
Owner Author

The uint, decimal, and ieee754 features look appealing, but it looks like none of them are in the amalgamation yet. I won't rule this out, but supporting another set of native DLLs causes a feeling of dread. :-)

ericsink added a commit to ericsink/cb that referenced this issue Aug 17, 2020
ericsink added a commit to ericsink/cb that referenced this issue Aug 17, 2020
ericsink added a commit to ericsink/cb that referenced this issue Aug 17, 2020
…, and armeabi is gone. SQLite 3.33.0 no longer builds under armeabi due to missing symbols, and armeabi has been deprecated by the NDKs for a long time now. ericsink/SQLitePCL.raw#356
ericsink added a commit that referenced this issue Aug 17, 2020
…continuing to look for windows e_sqlcipher builds in v141. #356
@ericsink
Copy link
Owner Author

Things worth noting about the e_sqlite3 builds for 2.0.4:

  1. The build system for e_sqlite3 is actually over in the very-poorly-named sibling repo: https://github.com/ericsink/cb
  2. The corresponding SQLite version will be 3.33.0
  3. For Windows, these builds are compiled with Visual Studio 2019, toolset v142, whereas previously the builds were made with toolset v141.
  4. For Mac and iOS, these builds are compiled with the exact same tooling as previous versions.
  5. For Android, these builds are compiled with NDK r21d, whereas previously the builds were made with NDK r13b. The "armeabi" build has been removed, as it was removed from the NDK back in r17, and SQLite 3.33.0 no longer compiles under NDK r13b.
  6. For Linux, these builds are compiled with the exact same tooling as previous versions, hosted on Ubuntu 16.04. I tried updating to a build host based on 18.04, but the gcc-multilib package (which is the usual way to add support for compiling 32-bit) is incompatible with the cross-compiler packages (which I use for arm, aarch64, and musl), and now does not seem to be the time to sort that out.
  7. The build settings (the -DSQLITE_etc) for these builds are the same as previous builds.
  8. Tentatively, I plan for the e_sqlcipher builds for 2.0.4 to remain exactly the same builds as 2.0.3, which means they remain based on SQLite 3.28.0.

@ericsink
Copy link
Owner Author

Worth noting: for 2.0.4, all nuget packages that targeted netcoreapp3.0 have been changed to netcoreapp3.1.

ericsink added a commit that referenced this issue Aug 17, 2020
ericsink added a commit that referenced this issue Aug 17, 2020
ericsink added a commit that referenced this issue Aug 28, 2020
@ericsink
Copy link
Owner Author

2.0.4-pre20200828111558 has just been pushed up to nuget.org.

Incomplete and off-the-cuff release notes:

  1. SQLite 3.33.0
  2. bundle_sqlite3
  3. All netcoreapp3.0 TFMs updated to netcoreapp3.1
  4. e_sqlite3 and e_sqlcipher builds for linux-mips64 (thanks to @sunny868, see How to support libe_sqlite3.so for mips64 ARCH ? #360)

@ericsink
Copy link
Owner Author

ericsink commented Aug 28, 2020

More detailed draft of release notes for 2.0.4:

  1. The e_sqlite3 builds are now at SQLite 3.33.0 Sqlite 3.32 Upgrade Plans ? #350
  2. The e_sqlcipher builds remain unchanged
  3. Windows e_sqlite3 builds are now done with toolset v142
  4. Android e_sqlite3 builds are now done with NDK r21d, and armeabi is no longer supported.
  5. Builds of e_sqlite3 and e_sqlcipher are now included for linux-mips64 (thanks to @sunny868, see How to support libe_sqlite3.so for mips64 ARCH ? #360)
  6. Target netcoreapp3.1 instead of netcoreapp3.0
  7. New bundle_sqlite3 package Bring back the SQLitePCLRaw.provider.sqlite3 packages #325
  8. Fix System.AccessViolationException at System.Text.UTF8Encoding.GetCharCount(Byte*, Int32, System.Text.DecoderNLS) #321 crash bug

Notable things NOT in 2.0.4:

@ericsink
Copy link
Owner Author

ericsink commented Sep 3, 2020

2.0.4 has been pushed up to nuget.org.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants