taskchampion-rb 0.9.6 → 0.9.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +12 -0
- data/README.md +23 -3
- data/Rakefile +9 -2
- data/ext/taskchampion/Cargo.toml +7 -3
- data/ext/taskchampion/extconf.rb +11 -1
- data/lib/taskchampion/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 42b23c3273d5b9953634be0e881ce7cffbd451f29468f17eb6f9cbcdf236ce0b
|
|
4
|
+
data.tar.gz: 6dde1f28ba13970fbb850ecfc82bdd07ac4f20a5f7e2fff54e028995043f11fb
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 69a4c9013c7441a9ce966e096e07ebd41549460f8160027780ce388a4514946260748f75245cc3fed5da2964d6c029a127d2feb9fb5210589b4487f6b13be94a
|
|
7
|
+
data.tar.gz: e5af336507eb5105250be66e308527ba137ee50124cf24de34793f63d6448e618f2d7f996f0fe777bb88ce17e95c7c151755ce6815eeeac60c0bde44e8188401
|
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
## [Unreleased]
|
|
2
|
+
|
|
3
|
+
- Link the system `libsqlite3` by default again, as 0.9.4 did, so
|
|
4
|
+
`libsqlite3-dev` is once more a build prerequisite on Linux. Since
|
|
5
|
+
0.9.5 the extension compiled its own copy of SQLite, which leaves two
|
|
6
|
+
SQLite copies in any process that also loads the `sqlite3` gem; they
|
|
7
|
+
do not share POSIX file locks, which can corrupt the database.
|
|
8
|
+
- Add an opt-in switch for bundled SQLite: set
|
|
9
|
+
`TASKCHAMPION_BUNDLED_SQLITE=1` or pass `--with-bundled-sqlite` at
|
|
10
|
+
install time. Only use it when nothing else in the process loads
|
|
11
|
+
SQLite.
|
|
12
|
+
|
|
1
13
|
## [0.9.6] - 2026-10-22
|
|
2
14
|
|
|
3
15
|
- Update `rb-sys` to 0.9.130 (pulling in `bindgen` 0.72.1) in
|
data/README.md
CHANGED
|
@@ -20,15 +20,35 @@ This gem supports Ruby 3.3 and later. We follow Ruby's end-of-life (EOL) schedul
|
|
|
20
20
|
libclang over Ruby's headers to generate FFI bindings during `rake compile`.
|
|
21
21
|
- **Debian/Ubuntu:** `sudo apt install clang libclang-dev`
|
|
22
22
|
- **macOS:** `xcode-select --install`
|
|
23
|
-
3.
|
|
23
|
+
3. System SQLite development files — the extension links the system
|
|
24
|
+
`libsqlite3` by default.
|
|
25
|
+
- **Debian/Ubuntu:** `sudo apt install libsqlite3-dev`
|
|
26
|
+
- **macOS:** nothing to install; the OS ships `libsqlite3`.
|
|
27
|
+
4. Rust toolchain (optional — if `cargo` is not found, `rb-sys` bootstraps its
|
|
24
28
|
own rustup + toolchain during the build). To install it yourself:
|
|
25
29
|
|
|
26
30
|
```bash
|
|
27
31
|
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
|
|
28
32
|
```
|
|
29
33
|
|
|
30
|
-
|
|
31
|
-
|
|
34
|
+
### Bundled SQLite (opt-in)
|
|
35
|
+
|
|
36
|
+
To compile SQLite from source into the extension instead of linking the
|
|
37
|
+
system library, set the switch at install time:
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
TASKCHAMPION_BUNDLED_SQLITE=1 gem install taskchampion-rb
|
|
41
|
+
# or
|
|
42
|
+
gem install taskchampion-rb -- --with-bundled-sqlite
|
|
43
|
+
# or, with Bundler
|
|
44
|
+
bundle config build.taskchampion-rb --with-bundled-sqlite
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
> **Warning:** do not use bundled SQLite in a process that also loads another
|
|
48
|
+
> copy of SQLite, such as the `sqlite3` gem (e.g. a Rails app). Two SQLite
|
|
49
|
+
> copies in one process do not see each other's POSIX file locks, which can
|
|
50
|
+
> corrupt the database. Bundling is only safe when taskchampion-rb is the sole
|
|
51
|
+
> SQLite user in the process.
|
|
32
52
|
|
|
33
53
|
### Building from source
|
|
34
54
|
|
data/Rakefile
CHANGED
|
@@ -32,10 +32,17 @@ task :publish, [:version] do |t, args|
|
|
|
32
32
|
version = args[:version] || "patch"
|
|
33
33
|
|
|
34
34
|
puts "Bumping version (#{version})..."
|
|
35
|
-
|
|
35
|
+
# Commit and tag here rather than with bump --tag: bump's "vX.Y.Z"
|
|
36
|
+
# subject fails the commit-msg hook, and bump tags even when the
|
|
37
|
+
# commit fails.
|
|
38
|
+
sh "bump #{version} --no-commit"
|
|
39
|
+
new_version = `bump current --value-only`.strip
|
|
40
|
+
sh "git add lib/taskchampion/version.rb Gemfile.lock"
|
|
41
|
+
sh "git commit -m 'Bump to v#{new_version}'"
|
|
42
|
+
sh "git tag -a v#{new_version} -m v#{new_version}"
|
|
36
43
|
|
|
37
44
|
puts "Pushing to git..."
|
|
38
|
-
sh "git push && git push
|
|
45
|
+
sh "git push && git push origin v#{new_version}"
|
|
39
46
|
|
|
40
47
|
puts "Building and releasing gem..."
|
|
41
48
|
Rake::Task["release"].invoke
|
data/ext/taskchampion/Cargo.toml
CHANGED
|
@@ -12,11 +12,15 @@ crate-type = ["cdylib"]
|
|
|
12
12
|
[dependencies]
|
|
13
13
|
magnus = { version = "0.7", features = ["rb-sys"] }
|
|
14
14
|
rb-sys = "0.9.103"
|
|
15
|
-
#
|
|
16
|
-
|
|
17
|
-
taskchampion = { version = "2.0", default-features = false, features = ["bundled", "server-sync", "server-gcp"] }
|
|
15
|
+
# SQLite is linked from the system by default. See the bundled-sqlite feature.
|
|
16
|
+
taskchampion = { version = "2.0", default-features = false, features = ["server-sync", "server-gcp"] }
|
|
18
17
|
chrono = "0.4"
|
|
19
18
|
uuid = "1.0"
|
|
20
19
|
|
|
21
20
|
[features]
|
|
22
21
|
default = ["rb-sys/stable-api-compiled-fallback"]
|
|
22
|
+
# Compile a private copy of SQLite into the extension instead of linking the
|
|
23
|
+
# system libsqlite3. Do not enable this in a process that also loads another
|
|
24
|
+
# SQLite (e.g. the sqlite3 gem): two copies do not share POSIX file locks,
|
|
25
|
+
# which can corrupt the database. Enabled through extconf.rb.
|
|
26
|
+
bundled-sqlite = ["taskchampion/bundled"]
|
data/ext/taskchampion/extconf.rb
CHANGED
|
@@ -3,4 +3,14 @@
|
|
|
3
3
|
require "mkmf"
|
|
4
4
|
require "rb_sys/mkmf"
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
# Opt in to compiling SQLite into the extension with either
|
|
7
|
+
# TASKCHAMPION_BUNDLED_SQLITE=1
|
|
8
|
+
# or
|
|
9
|
+
# gem install taskchampion-rb -- --with-bundled-sqlite
|
|
10
|
+
# bundle config build.taskchampion-rb --with-bundled-sqlite
|
|
11
|
+
bundled_sqlite = with_config("bundled-sqlite") ||
|
|
12
|
+
%w[1 true yes].include?(ENV["TASKCHAMPION_BUNDLED_SQLITE"])
|
|
13
|
+
|
|
14
|
+
create_rust_makefile("taskchampion/taskchampion") do |r|
|
|
15
|
+
r.features = ["bundled-sqlite"] if bundled_sqlite
|
|
16
|
+
end
|
data/lib/taskchampion/version.rb
CHANGED