Replies: 5 comments 1 reply
-
|
Awesome. Thank you! |
Beta Was this translation helpful? Give feedback.
-
|
I'd appreciate this very much! |
Beta Was this translation helpful? Give feedback.
-
|
It sounds perfect! |
Beta Was this translation helpful? Give feedback.
-
|
Hello @R4N, This sounds good to me. Users have been wanting to use GRDB+SQLCipher with the Swift Package Manager for several years now. Looking forward in the future, when the two existing blockers1 are lifted, it is likely that groue/GRDB will integrate a package trait for SQLCipher (as well as other SQLite variants). We have no idea of when the blockers will be lifted, so it's good that users have a short-term solution. The proposed hosting on the SQLCipher GitHub organization fits my desire of keeping groue/GRDB as agnostic as possible on the underlying SQLite library, and my account @groue independent from the sqlcipher/SQLCipher.swift package itself. To illustrate, I have no way to address the fact that sqlcipher/SQLCipher.swift currently supports Apple platforms, but not Linux, Android, etc. The proposed solution does not address the support of SQLCipher for companion libraries (GRDBQuery for SwiftUI, and GRDBSnapshotTesting for testing). This is due to the unsatisfying implementation of package traits at the present time1, and not the responsibility of SQLCipher or myself.
You have my warm blessing. I don't think you need me to perform any action, with the exception of merging some pull requests, for example for linking to the new repository. It is probably not necessary to invite me as a collaborator until this is really needed. You know I will help when the time comes. And I don't need to be a collaborator to open a pull request. Footnotes
|
Beta Was this translation helpful? Give feedback.
-
|
Great. I've created the new fork under the SQLCipher organization here: https://github.com/sqlcipher/GRDB.swift The first v7.10.0 release is tagged which includes the necessary modifications to Package.swift along with a callout at the top of the README.md about it being a managed fork which automatically enables SQLCipher encryption. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Now that the v7.10.0 release is released, users are starting to look towards the recommended path for using GRDB+SQLCipher SPM.
The current integration supported by v7.10.0 requires a fork of the GRDB repository along with changes to switch the provider to use SQLCipher. We all agreed that this was the best technical approach in previous discussions.
Even so, forking introduces a few barriers for adoption by developer end-users:
As a result of these problems it seems like requiring every user to make their own fork is not a very developer-friendly approach.
A better solution would be to introduce a managed fork that includes the SQLCipher changes. GRDB+SQLCipher is an excellent candidate for this approach, which would solve most of these user-impacting problems as follows.
We propose creating this fork under the SQLCipher GitHub organization account, and adding @groue as a maintainer/collaborator (if desired). This would have the following benefits for end-users:
In addition, with this approach, the SQLCipher team is prepared to:
There really aren't any major risks or downsides to this approach. In fact, the SQLCipher team must already create a fork to support our own use and testing of GRDB. Because the fork will exist anyway this would really just be a matter of guiding developers to use it as an integration option.
In addition, there are no impacts on users who have their own custom requirements beyond the scope of the standard SQLCipher package. They would still be completely free to create their own custom forks using the steps in the CustomSQLCipherBuilds documentation.
Since there are no significant downsides to this approach, and developers are already seeking guidance on adoption from, we would like to consider implementing this approach soon. Let us know if you have any feedback on this approach. Thanks!
Beta Was this translation helpful? Give feedback.
All reactions