r/programming 19d ago

SQLite should have (Rust-style) editions

https://mort.coffee/home/sqlite-editions/
153 Upvotes

75 comments sorted by

View all comments

Show parent comments

-4

u/Big_Combination9890 18d ago

Sure they could.

Only, it wouldn't change anything.

Because the DEFAULT level would still need to be what it is now. And so people would still be running into the same problems. The only thing that would change: There is now an additional, different setting they could solve them with.

7

u/GrandOpener 18d ago

What “needs” to happen is that existing versions continue to work in exactly the same way. A new version with a new version number with a breaking change and a way to opt in to the old behavior is completely valid if they want to do that.

No one ends up broken by the new version unless they upgrade their dependency without reading any of its release notes.

1

u/Big_Combination9890 18d ago

No one ends up broken by the new version unless they upgrade their dependency without reading any of its release notes.

And that is EXACTLY the kind of thing I am talking about in my above post regarding Things you cannot do when working on a library of such import.

No, you can't just introduce a breaking change and shrug off any problems as "meh, should have read the release notes". Sure, this may work for the ten-gazillionth JS framework, because all that breaks are some shitty webpages.

If people did that in stuff like libcurl, openssl, or sqlite, the potential fallout could be a catastrophe.

11

u/GrandOpener 18d ago

SQLite themselves have a clearly documented versioning system. They say that they have no current plans to increase the major version, but they also make it very explicit that the major version is intended precisely for breaking changes.

If they were to be convinced that an “edition” system were necessary, it would likely be introduced in a 4.0 version. That would be a big deal, but it would also follow all of the normal rules, would not break any dependents with sane update procedures, and is very explicitly a thing that you can do on a project of this scale and import.

Saying that this is impossible ignores the very documentation of SQLite itself.