Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
06c70bb
Basic repo creation implemented, with tests.
carmiac Apr 11, 2026
a9b3217
add git push/pull helpers
carmiac Apr 11, 2026
26fbaaf
add version
carmiac Apr 11, 2026
e69b03b
Add get_version_by_parent_version_id and test
carmiac Apr 11, 2026
73989ec
add get_child_version
carmiac Apr 12, 2026
660881c
add snapshot system
carmiac Apr 12, 2026
c104e0c
fix git cleanup and misc clippy issues
carmiac Apr 12, 2026
ec2ae74
fix/log some git issues from snapshot testing
carmiac Apr 13, 2026
94fbbd4
fix snapshot encryption
carmiac Apr 14, 2026
9b2818a
add some documentation
carmiac Apr 14, 2026
d40262f
Add more snapshot tests
carmiac Apr 14, 2026
e603030
add cleanup after snapshot
carmiac Apr 17, 2026
7fc7ecf
add documentation
carmiac Apr 17, 2026
fd09e02
cleanup of snapshot code, add documentation
carmiac Apr 18, 2026
022948a
misc cleanup
carmiac Apr 18, 2026
faad1ba
Merge branch 'main' into git-sync
carmiac Apr 18, 2026
8cb46b2
lint
carmiac Apr 18, 2026
9a4b371
Merge branch 'git-sync' of github.com:carmiac/taskchampion into git-sync
carmiac Apr 18, 2026
64c3c0a
fix typos and clarify new repo comment
carmiac Apr 23, 2026
7fcb702
two feature levels -> one
carmiac Apr 23, 2026
78c4e55
move remote from String to Option<String>
carmiac Apr 23, 2026
d9cfb36
redirect git output to logs
carmiac Apr 23, 2026
ddb036b
Split git_cmd into git_cmd_ok to simplify calls.
carmiac Apr 23, 2026
4747da0
add some helper fns
carmiac Apr 23, 2026
e4be3b6
create a git struct to hold the git helpers and the git path
carmiac Apr 23, 2026
a110d6d
lots of documentaion cleanup
carmiac Apr 24, 2026
eee941f
fix snaphot urgency to only count post-snapshot versions
carmiac Apr 24, 2026
f568ff3
cleanup cleanup and add cleanup tests
carmiac Apr 24, 2026
b681fe8
lint
carmiac Apr 25, 2026
75f0c67
clippy
carmiac Apr 25, 2026
e1b277b
Bump the cargo group with 3 updates
dependabot[bot] Apr 11, 2026
56eb65c
Bump rand from 0.9.2 to 0.9.4
dependabot[bot] Apr 14, 2026
82b18cc
fix typos and clarify new repo comment
carmiac Apr 23, 2026
6af28a9
two feature levels -> one
carmiac Apr 23, 2026
c5362fb
move remote from String to Option<String>
carmiac Apr 23, 2026
a409c74
redirect git output to logs
carmiac Apr 23, 2026
5684939
Split git_cmd into git_cmd_ok to simplify calls.
carmiac Apr 23, 2026
f1af201
add some helper fns
carmiac Apr 23, 2026
4a3cc69
create a git struct to hold the git helpers and the git path
carmiac Apr 23, 2026
f641b67
lots of documentaion cleanup
carmiac Apr 24, 2026
2422827
fix snaphot urgency to only count post-snapshot versions
carmiac Apr 24, 2026
38d7b49
cleanup cleanup and add cleanup tests
carmiac Apr 24, 2026
5232d91
lint
carmiac Apr 25, 2026
5c83d81
clippy
carmiac Apr 25, 2026
5e857d3
move free git functions into the git struct
carmiac Apr 25, 2026
ece145b
clippy
carmiac Apr 25, 2026
3007f5f
Merge branch 'git-sync' of github.com:carmiac/taskchampion into git-sync
carmiac Apr 25, 2026
5c97a9f
Merge branch 'main' into git-sync
carmiac Apr 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
128 changes: 120 additions & 8 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

40 changes: 32 additions & 8 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ edition = "2021"
rust-version = "1.91.1"

[workspace]
members = [ "xtask" ]
members = ["xtask"]
resolver = "2"

[lib]
Expand All @@ -24,15 +24,32 @@ crate-type = ["cdylib", "rlib"]
default = ["sync", "bundled", "storage", "tls-webpki-roots"]

# Support for all sync solutions
sync = ["server-sync", "server-gcp", "server-aws", "server-local"]
sync = ["server-sync", "server-gcp", "server-aws", "server-local", "server-git"]
# Support for sync to a server
server-sync = ["encryption", "http"]
# Support for sync to GCP
server-gcp = ["cloud", "encryption", "http", "dep:google-cloud-storage", "dep:reqwest-middleware"]
server-gcp = [
"cloud",
"encryption",
"http",
"dep:google-cloud-storage",
"dep:reqwest-middleware",
]
# Support for sync to AWS
server-aws = ["cloud", "encryption", "http", "dep:aws-sdk-s3", "dep:aws-config", "dep:aws-credential-types", "dep:aws-smithy-runtime-api", "dep:aws-smithy-types"]
server-aws = [
"cloud",
"encryption",
"http",
"dep:aws-sdk-s3",
"dep:aws-config",
"dep:aws-credential-types",
"dep:aws-smithy-runtime-api",
"dep:aws-smithy-types",
]
# Suppport for sync to another SQLite database on the same machine
server-local = ["dep:rusqlite"]
# Support for sync via Git
server-git = ["dep:serde_with", "dep:glob", "encryption"]

# Support for all task storage backends (except indexeddb, which only works on WASM builds)
storage = ["storage-sqlite"]
Expand Down Expand Up @@ -64,12 +81,13 @@ async-trait = "0.1.89"
byteorder = "1.5"
chrono = { version = "^0.4.44", features = ["serde"] }
flate2 = "1"
serde_with = { version = "3.18.0", features = ["base64"], optional = true }
idb = { version = "0.6.4", optional = true }
log = "^0.4.17"
# Reqwest is "stuck" at 0.12 because that's what google-cloud-storage depends on.
reqwest = { version = "0.12", default-features = false, optional = true }
ring = { version = "0.17", optional = true }
rusqlite = { version = "0.39", features = [ "fallible_uint" ], optional = true}
rusqlite = { version = "0.39", features = ["fallible_uint"], optional = true }
serde_json = "^1.0"
serde = { version = "^1.0.147", features = ["derive"] }
strum = "0.28"
Expand All @@ -78,11 +96,14 @@ tokio = { version = "1", features = ["macros", "sync", "rt"] }
thiserror = "2.0"
uuid = { version = "^1.23.1", features = ["serde", "v4"] }
url = { version = "2", optional = true }
glob = { version = "0.3.3", optional = true }

## wasm-only dependencies.
[target.'cfg(target_arch = "wasm32")'.dependencies]
uuid = { version = "1", features = ["js"] }
ring = { version = "0", optional = true, features = ["wasm32_unknown_unknown_js"] }
ring = { version = "0", optional = true, features = [
"wasm32_unknown_unknown_js",
] }
getrandom = { version = "0.4", features = ["wasm_js"] }
wasm-bindgen = { version = "0.2" }
wasm-bindgen-futures = { version = "0.4" }
Expand All @@ -101,7 +122,7 @@ web-sys = { version = "0.3.83", optional = true, features = [
"EventTarget",
"Event",
"console",
]}
] }

## non-wasm dependencies
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
Expand All @@ -110,7 +131,10 @@ aws-config = { version = "1.8", default-features = false, features = ["rt-tokio"
aws-credential-types = { version = "1", default-features = false, features = ["hardcoded-credentials"], optional = true }
aws-smithy-runtime-api = { version = "1.11", default-features = false, optional = true }
aws-smithy-types = { version = "1.4", default-features = false, optional = true }
google-cloud-storage = { version = "0.24.0", default-features = false, features = ["rustls-tls", "auth"], optional = true }
google-cloud-storage = { version = "0.24.0", default-features = false, features = [
"rustls-tls",
"auth",
], optional = true }
reqwest-middleware = { version = "0.4", optional = true }

## common dev-dependencies
Expand Down
Loading
Loading