taskchampion-rb 0.9.5 → 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 +23 -1
- data/Cargo.lock +10 -24
- 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 +2 -2
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,7 +1,29 @@
|
|
|
1
1
|
## [Unreleased]
|
|
2
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
|
+
|
|
13
|
+
## [0.9.6] - 2026-10-22
|
|
14
|
+
|
|
15
|
+
- Update `rb-sys` to 0.9.130 (pulling in `bindgen` 0.72.1) in
|
|
16
|
+
`Cargo.lock`. The previously locked `bindgen` 0.69.5 cannot parse
|
|
17
|
+
Ruby's `rb_data_type_struct` with libclang 22, as shipped on Ubuntu
|
|
18
|
+
26.04, so `magnus` failed to compile there.
|
|
19
|
+
- Drop the stale Ruby 3.5 preview from the CI matrix; CI now tests 3.3
|
|
20
|
+
and 3.4. Ruby 4.0 is not yet supported (`magnus` 0.7 does not build
|
|
21
|
+
against it).
|
|
22
|
+
|
|
23
|
+
## [0.9.5] - 2026-09-10
|
|
24
|
+
|
|
3
25
|
- Drop support for Ruby 3.2 (reached EOL March 2026). Minimum supported
|
|
4
|
-
Ruby is now 3.3
|
|
26
|
+
Ruby is now 3.3.
|
|
5
27
|
- Enable the `bundled` feature of the `taskchampion` crate so SQLite is
|
|
6
28
|
compiled from source into the extension. Previously `default-features
|
|
7
29
|
= false` dropped `bundled`, making the build link against system
|
data/Cargo.lock
CHANGED
|
@@ -115,20 +115,18 @@ checksum = "0e050f626429857a27ddccb31e0aca21356bfa709c04041aefddac081a8f068a"
|
|
|
115
115
|
|
|
116
116
|
[[package]]
|
|
117
117
|
name = "bindgen"
|
|
118
|
-
version = "0.
|
|
118
|
+
version = "0.72.1"
|
|
119
119
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
120
|
-
checksum = "
|
|
120
|
+
checksum = "993776b509cfb49c750f11b8f07a46fa23e0a1386ffc01fb1e7d343efc387895"
|
|
121
121
|
dependencies = [
|
|
122
122
|
"bitflags",
|
|
123
123
|
"cexpr",
|
|
124
124
|
"clang-sys",
|
|
125
125
|
"itertools",
|
|
126
|
-
"lazy_static",
|
|
127
|
-
"lazycell",
|
|
128
126
|
"proc-macro2",
|
|
129
127
|
"quote",
|
|
130
128
|
"regex",
|
|
131
|
-
"rustc-hash
|
|
129
|
+
"rustc-hash",
|
|
132
130
|
"shlex",
|
|
133
131
|
"syn",
|
|
134
132
|
]
|
|
@@ -862,12 +860,6 @@ version = "1.5.0"
|
|
|
862
860
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
863
861
|
checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
|
|
864
862
|
|
|
865
|
-
[[package]]
|
|
866
|
-
name = "lazycell"
|
|
867
|
-
version = "1.3.0"
|
|
868
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
869
|
-
checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
|
|
870
|
-
|
|
871
863
|
[[package]]
|
|
872
864
|
name = "libc"
|
|
873
865
|
version = "0.2.174"
|
|
@@ -881,7 +873,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
881
873
|
checksum = "07033963ba89ebaf1584d767badaa2e8fcec21aedea6b8c0346d487d49c28667"
|
|
882
874
|
dependencies = [
|
|
883
875
|
"cfg-if",
|
|
884
|
-
"windows-targets 0.
|
|
876
|
+
"windows-targets 0.52.6",
|
|
885
877
|
]
|
|
886
878
|
|
|
887
879
|
[[package]]
|
|
@@ -1163,7 +1155,7 @@ dependencies = [
|
|
|
1163
1155
|
"pin-project-lite",
|
|
1164
1156
|
"quinn-proto",
|
|
1165
1157
|
"quinn-udp",
|
|
1166
|
-
"rustc-hash
|
|
1158
|
+
"rustc-hash",
|
|
1167
1159
|
"rustls",
|
|
1168
1160
|
"socket2",
|
|
1169
1161
|
"thiserror 2.0.12",
|
|
@@ -1183,7 +1175,7 @@ dependencies = [
|
|
|
1183
1175
|
"lru-slab",
|
|
1184
1176
|
"rand",
|
|
1185
1177
|
"ring",
|
|
1186
|
-
"rustc-hash
|
|
1178
|
+
"rustc-hash",
|
|
1187
1179
|
"rustls",
|
|
1188
1180
|
"rustls-pki-types",
|
|
1189
1181
|
"slab",
|
|
@@ -1253,18 +1245,18 @@ dependencies = [
|
|
|
1253
1245
|
|
|
1254
1246
|
[[package]]
|
|
1255
1247
|
name = "rb-sys"
|
|
1256
|
-
version = "0.9.
|
|
1248
|
+
version = "0.9.130"
|
|
1257
1249
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1258
|
-
checksum = "
|
|
1250
|
+
checksum = "02faf625bb10ba893e3ae620f19c9fb1b5f8fcae0fe4eb86bb3f2230fad75edb"
|
|
1259
1251
|
dependencies = [
|
|
1260
1252
|
"rb-sys-build",
|
|
1261
1253
|
]
|
|
1262
1254
|
|
|
1263
1255
|
[[package]]
|
|
1264
1256
|
name = "rb-sys-build"
|
|
1265
|
-
version = "0.9.
|
|
1257
|
+
version = "0.9.130"
|
|
1266
1258
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1267
|
-
checksum = "
|
|
1259
|
+
checksum = "05be6f9c86fe5482808162826f6c047d093b3670582296c770de1d94f8066694"
|
|
1268
1260
|
dependencies = [
|
|
1269
1261
|
"bindgen",
|
|
1270
1262
|
"lazy_static",
|
|
@@ -1406,12 +1398,6 @@ dependencies = [
|
|
|
1406
1398
|
"smallvec",
|
|
1407
1399
|
]
|
|
1408
1400
|
|
|
1409
|
-
[[package]]
|
|
1410
|
-
name = "rustc-hash"
|
|
1411
|
-
version = "1.1.0"
|
|
1412
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1413
|
-
checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
|
|
1414
|
-
|
|
1415
1401
|
[[package]]
|
|
1416
1402
|
name = "rustc-hash"
|
|
1417
1403
|
version = "2.1.1"
|
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
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: taskchampion-rb
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.9.
|
|
4
|
+
version: 0.9.7
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Tim Case
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-
|
|
11
|
+
date: 2026-10-22 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rb_sys
|