-
Notifications
You must be signed in to change notification settings - Fork 56
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
Provide an easy way to compile with official sqlite3 amalgamation #17
Comments
Prepare your own SQLite3 amalgamation and just replace
Now If you cannot run the Also, if you are unlucky, the result may not compile straight out of the box if the used SQLite3 version differs enough. Fortunately, the required changes have been so far trivial across several years in the past (e.g., slightly adjust calls to SQLite3 functions which have been renamed or updated to take one additional parameter etc). I agree that the procedure could be easier as it is in the official SEE extension case. However, I don't like the idea of making sqleet concatenable like SEE, because then we would lose the control of SQLite3 compile-time configuration (config.c), which is crucial for security reasons. Maybe writing a separate script or improving |
I originally created this issue with the goal of creating drop-in replacement amalgamations, but on second thought, this method actually does satisfy my needs. I'll be using the same versions of sqlite as sqleet (no mis-matched versions)—the only difference is that my amalgamation will be created using various non-default configuration (e.g., As far as I can tell, none of those While it turns out my needs are already met, I would recommend simplifying
In any case, thanks for making this great library. |
That sounds OK to me.
Commit 0dc5a18 added I also removed the
|
This is great, thanks! |
@resilar I just found out (via #20) that release branches and tags are supposed to be post-amalgamation. I started on Since I need to compile against my own version of |
Yes, there was an issue with Sorry in advance for the wall of text. And big thanks for your patience with the project so far, especially since the user experience has not been the smoothest possible. Feedback about how people use sqleet is valuable in order to improve the library. The core issue is that branches, tags & releases are a bit abused in the repo for reason(s) not immediately obvious. The main requirement is that we want to offer old sqleet release amalgamations targeting specific SQLite3 versions in case some users are locked into a specific SQLite3 version. Currently the old releases are unmaintained, i.e., bug fixes are not backported to them. This is clearly not ideal but I do not see an easy way to address this without substantial amount of boring work needed to support (already) ten releases. * Other requirements are imposed by Github's clunky release feature. Using a tag name Anyway, I have been recently planning to resolve the current releases/branches/tags mess as follows:
This is what I would do now knowing the intricacies of Github more thoroughly. Any comments or ideas before I rush to implement this? (*) As a side note: If someone were to request support for an old sqleet release (via the Github issue tracker), then I could make it happen. However, it is still quite straightforward to take a bug-fixed newer version of sqleet and compile it against old SQLite3 (some trivial changes to the code may be needed; for example, |
This does solve my problem for now, thanks.
Thank you for making this great library and putting it in the public domain!
This would be ideal. From my perspective, release tags/branches should always be on a regular git timeline, and special pre-built deliverables should be delivered separately.
In this case, what would the bugfix release be named/tagged as? Given how the semver numbers are used to match the sqlite3 version, I assume the sqleet patch would have to be indicated by some other naming convention, perhaps appended to the sqlite3 version number?
Doing this on a per-request basis is probably good enough. I can't imagine that too many people would have such a rigid need for backwards compatibility, given that this project is relatively young. |
Thanks for your input.
Yes, naming bug fix tags can be tricky because of the weird way sqleet versions are numbered to match SQLite3 versions (although I don't see an easy way to fix the tag naming issue by changing the version numbering convention). AFAIK semver allows appending a suffix to version number (e.g.,
Yes. Given the age of the project, I'm considering updating existing releases to the new system. It should not cause significant breakage for users, I think. |
Now the latest release v0.27.1 follows the new release convention. I decided to compress the deliverables because amalgamated Older releases ( Closing the issue. Reopen if you find mistakes or shortcomings in the new release approach. |
The README states:
However, I want to use my own custom amalgamation (some compile-time options must be provided when generating the amalgamation itself).
The official SEE extension makes it very easy to turn a regular amalgamation into one that supports encryption:
see-prefix.txt
see.c
Could there be a simple way to do the same thing using
sqleet
?The text was updated successfully, but these errors were encountered: