You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This is a fork of [GRDB](https://github.com/groue/GRDB.swift) with added support for [SQLCipher Community Edition](https://www.zetetic.net/sqlcipher/open-source/), packaged into XCFramework so that it can be consumed as a Swift Package.
5
4
6
-
The default branch for this repository is `main` (as opposed to upstream's `master`) and it doesn't include GRDB (or SQLCipher) source code – only the Swift Package definition and release scripts/assets. XCFramework archives are attached directly in [GitHub Releases](https://github.com/duckduckgo/GRDB.swift/releases).
5
+
This is a fork of [GRDB](https://github.com/groue/GRDB.swift) with added support for [SQLCipher Community Edition](https://www.zetetic.net/sqlcipher/open-source/), packaged into XCFramework so that it can be consumed as a Swift Package, for Inline, initially made by DuckDuckGo.
6
+
7
+
The default branch for this repository is `main` (as opposed to upstream's `master`) and it doesn't include GRDB (or SQLCipher) source code – only the Swift Package definition and release scripts/assets. XCFramework archives are attached directly in [GitHub Releases](https://github.com/inlinehq/GRDB.swift/releases).
7
8
8
9
## Version
9
10
@@ -12,52 +13,56 @@ The default branch for this repository is `main` (as opposed to upstream's `mast
12
13
* SQLCipher: *${sqlcipher_version}*
13
14
14
15
## Contributions
15
-
We do not accept contributions to this repository at this time. However, feel free to open an issue in order to start a discussion.
16
16
17
-
## We are hiring!
18
-
DuckDuckGo is growing fast and we continue to expand our fully distributed team. We embrace diverse perspectives, and seek out passionate, self-motivated people, committed to our shared vision of raising the standard of trust online. If you are a senior software engineer capable in either iOS or Android, visit our [careers](https://duckduckgo.com/hiring/#open) page to find out more about our openings!
17
+
We do not accept contributions to this repository at this time. However, feel free to open an issue in order to start a discussion.
18
+
19
+
## Thanks to DuckDuckGo
20
+
21
+
DuckDuckGo has made the initial version of this package possible.
19
22
20
23
## Updating from Upstream
21
24
22
25
The update process is semi-automatic, i.e. it uses a shell script that guides you through, but the script requires user input and must be run locally.
23
26
24
27
Run `prepare_release.sh`, which:
25
28
26
-
* Creates a temporary directory.
27
-
* Clones upstream GRDB.swift into a subdirectory.
28
-
* Clones SQLCipher into another subdirectory.
29
-
* Checks out the latest tags of upstream GRDB.swift and SQLCipher.
30
-
* Compares tags with versions included in the current release (based on the content of this README file).
31
-
* If versions didn't change, the script stops here.
32
-
* If there are updates, the script asks you to input the new version (see [Versioning](#versioning)). The script then generates an updated README.md with udpated versions.
33
-
* Builds SQLCipher and moves sqlite3.c/h to GRDB.swift project.
34
-
* Patches GRDB to include SQLCipher sources.
35
-
* If patching fails, the script stops and asks you to patch the project yourself. Once done, it stores the patch for later use.
36
-
* Builds GRDB and runs unit tests.
37
-
* Builds frameworks for iOS, iOS Simulator and macOS and creates XCFramework.
38
-
* Updates Package.swift with the new version and new XCFramework checksum.
39
-
* Commits changes, tags the commit, pushes to origin and creates GitHub release.
29
+
- Creates a temporary directory.
30
+
- Clones upstream GRDB.swift into a subdirectory.
31
+
- Clones SQLCipher into another subdirectory.
32
+
- Checks out the latest tags of upstream GRDB.swift and SQLCipher.
33
+
- Compares tags with versions included in the current release (based on the content of this README file).
34
+
- If versions didn't change, the script stops here.
35
+
- If there are updates, the script asks you to input the new version (see [Versioning](#versioning)). The script then generates an updated README.md with udpated versions.
36
+
- Builds SQLCipher and moves sqlite3.c/h to GRDB.swift project.
37
+
- Patches GRDB to include SQLCipher sources.
38
+
- If patching fails, the script stops and asks you to patch the project yourself. Once done, it stores the patch for later use.
39
+
- Builds GRDB and runs unit tests.
40
+
- Builds frameworks for iOS, iOS Simulator and macOS and creates XCFramework.
41
+
- Updates Package.swift with the new version and new XCFramework checksum.
42
+
- Commits changes, tags the commit, pushes to origin and creates GitHub release.
40
43
41
44
Once the script is done:
42
-
* create PR for BSK referencing the new GRDB.swift version,
43
-
* create PRs for iOS and macOS apps referencing your BSK branch.
45
+
46
+
- create PR for BSK referencing the new GRDB.swift version,
47
+
- create PRs for iOS and macOS apps referencing your BSK branch.
44
48
45
49
### Versioning
46
50
47
51
For versioning, follow [Semantic Versioning Rules](https://semver.org), but note you don't need
48
52
to use the same version as GRDB. Examples:
49
53
50
-
* Upstream GRDB 5.6.0, after merge -> 5.12.0
51
-
* This project 1.0.0 -> 1.1.0
54
+
- Upstream GRDB 5.6.0, after merge -> 5.12.0
55
+
56
+
- This project 1.0.0 -> 1.1.0
52
57
53
-
* Upstream GRDB 5.12.0, after merge -> 6.0.0
54
-
* This project 1.1.0 -> 2.0.0
58
+
- Upstream GRDB 5.12.0, after merge -> 6.0.0
59
+
- This project 1.1.0 -> 2.0.0
55
60
56
61
### Compiling SQLCipher manually
57
62
58
63
In case `prepare_release.sh` script fails, you need to compile SQLCipher amalgamation package
59
64
manually. See [general instructions](https://github.com/sqlcipher/sqlcipher#compiling-for-unix-like-systems):
60
65
61
-
* Use `./configure --with-crypto-lib=none`.
62
-
* Remember to use `make sqlite3.c` and not `make`.
63
-
* Copy `sqlite3.c` and `sqlite3.h` to `Sources/SQLCipher/sqlite3.c` and `Sources/SQLCipher/include/sqlite3.h`.
66
+
- Use `./configure --with-crypto-lib=none`.
67
+
- Remember to use `make sqlite3.c` and not `make`.
68
+
- Copy `sqlite3.c` and `sqlite3.h` to `Sources/SQLCipher/sqlite3.c` and `Sources/SQLCipher/include/sqlite3.h`.
0 commit comments