GRDB 7 beta

Hello, I'm pleased to announce a new release of the Swift toolkit for SQLite databases.

GRDB 7.0.0-beta is Xcode 16 and Swift 6 ready!

To upgrade, please follow the migration guide.

Raising the Swift concurrency checkings of Swift 6 can create compiler warnings. The new Swift Concurrency and GRDB guide is there to help you use GRDB from your Swift 6 code.

If you are looking for inspiration, the demo app was rewritten from scratch in a brand new Xcode 16 project.

Please upgrade your applications, and report any issue on GitHub!

Full release notes

9 Likes

i can’t seem to build the v7.0.0-beta.2 successfully using the 6.0.1 toolchain, here is a log of the documentation build on Swiftinit:

https://static.swiftinit.org/logs/2024-09-29/5916/23-1727627278357.build.log

i also attempted to build the tag locally and got the same result. any idea what’s going on?

The logs you linked to say that various types such as DispatchQoS, DispatchSpecificKey are not Sendable.

In the SDK that ships with Xcode 16, those types are Sendable (or conditionally Sendable).

It looks like the SDK you are using is not up-to-date. I recommend upgrading, or opening issues in the related repositories.

i see, i believe this is because DispatchQoS and DispatchSpecificKey simply did not receive these conformances in Swift 6.0.1 on linux, which is yet another in a long list of platform traps between the macOS and linux versions of the standard library.

i understand GRDB.swift does not officially support linux, however, the 6.x release series was (serendipitously) buildable on linux, which allowed us to index the documentation for those tags on Swiftinit.

although you could probably restore linux buildability by adding #if-gated conformances or @preconcurrency imports, this really feels like something that needs to be fixed in the standard library itself.

GRDB 6 could build on Linux thanks to the contributions of generous users. I hope GRDB 7 will eventually build on Linux as well. I agree it's more an issue with the SDK than with the library itself.

i opened `DispatchQoS` and `DispatchSpecificKey` should have consistent `Sendable` conformances between macOS and linux · Issue #76773 · swiftlang/swift · GitHub against swiftlang/swift and i created this PR for GRDB.swift itself:

as i am developing from linux i wasn’t able to complete all the steps on the PR checklist, unfortunately.

Thank you very much! :heart:

1 Like

Congratulations on this big milestone, Gwendal! :clap:

1 Like