Dustin J. Mitchell
fd504b7d66
add num_local_operations to Replica
2022-04-23 18:51:40 +00:00
Dustin J. Mitchell
6f48f715ac
+BLOCKED, +UNBLOCKED, and +BLOCKING tags
...
These are somewhat expensive tags, as they require reference to values
outside of the task itself.
To accomplish this, the replica supplies a pre-computed DependencyMap
that is only calculated once per replica, and only from the working set.
2022-03-15 19:02:24 -04:00
Dustin J. Mitchell
2a6c91b3f9
Support expiring old, deleted tasks
2022-03-07 23:37:13 +00:00
Dustin J. Mitchell
b01285d780
add some simple replica functions
2022-02-10 01:18:50 +00:00
Dustin J. Mitchell
e5625e1597
entry and wait time support
2022-02-01 02:45:28 +00:00
Dustin J. Mitchell
8576e7ffa7
Merge pull request #330 from djmitche/issue327
...
Support an 'end' key in task maps
2022-01-24 10:24:18 -05:00
Dustin J. Mitchell
a49e51defd
Merge branch 'main' into issue327
2022-01-23 15:31:02 +00:00
Dustin J. Mitchell
656f7e9ea0
replica.create_task -> import_task_with_uuid
2022-01-23 15:22:41 +00:00
Dustin J. Mitchell
0308b7a4c7
Merge branch 'main' into issue94
2022-01-23 15:18:17 +00:00
Dustin J. Mitchell
9824ac1fd3
add 'entry' key to tasks when created
2022-01-06 02:18:32 +00:00
Dustin J. Mitchell
b663745892
Support an 'end' key in task maps
...
This definition matches how TaskWarrior uses the same key.
2022-01-06 02:02:13 +00:00
Dustin J. Mitchell
e2e0951c81
Make a public method
2022-01-05 03:12:44 +00:00
Dustin J. Mitchell
e3f438d9fa
make taskdb.apply for create/delete not fail if already exists/doesn't exist
2022-01-05 02:49:04 +00:00
Dustin J. Mitchell
6a1d1a8c3c
use strum_macros::Display to display Status
2022-01-03 02:35:19 +00:00
Dustin J. Mitchell
9d93928996
support undo operations
2021-12-21 00:43:26 +00:00
Dustin J. Mitchell
1647ba9144
insert UndoPoint appropriately into the replica operations
2021-12-20 00:33:32 +00:00
Dustin J. Mitchell
fee25fa742
Apply SyncOps, but keep a list of ReplicaOps
...
This changes a lot of function signatures, but basically:
* TaskDB::apply now takes a SyncOp, not a ReplicaOp
* Replica::update_task returns a TaskMap
2021-12-19 23:29:15 +00:00
Dustin J. Mitchell
0b29efab31
rename Operation to ReplicaOp for clarity
2021-12-19 22:55:24 +00:00
Dustin J. Mitchell
ec35d4fa20
use a distinct error for out-of-sync replica
2021-10-20 21:23:29 -04:00
Dustin J. Mitchell
ed3475d9ea
support avoiding snapshots
2021-10-11 21:00:08 -04:00
Dustin J. Mitchell
d01386f3ea
Merge pull request #292 from taskchampion/issue291
...
Switch to pretty_assertions
2021-10-02 10:54:25 -04:00
Dustin J. Mitchell
bcef6bf392
remove redundant {..}
2021-10-01 22:18:24 -04:00
Dustin J. Mitchell
a143660124
Switch to pretty_assertions
2021-10-02 01:08:26 +00:00
Dustin J. Mitchell
255cf29d4f
Update docs
...
* improve linking
* parallel construction for storage and servers
* clarify rationale for Task/TaskMut
2021-09-26 13:59:04 -04:00
Dustin J. Mitchell
bb7130f960
Support multiple exit codes
...
..with more specific error enums.
2021-05-18 18:57:55 +00:00
Dustin J. Mitchell
3a2450cb23
provide context for errors to help debugging
2021-05-16 09:40:35 -04:00
Dustin J. Mitchell
fdeadfd981
Fix upper_case_acronyms lint
2021-03-29 13:26:02 +00:00
dbr
4d9755c43b
Replace 'failure' crate with anyhow+thiserror
...
Closes #148
2021-03-25 16:33:35 +11:00
Dustin J. Mitchell
02d9c577ab
use StorageConfig instead of ReplicaConfig
2021-01-10 22:22:18 -05:00
Dustin J. Mitchell
15ffc62279
rename taskstorage to storage
2021-01-10 22:22:17 -05:00
Dustin J. Mitchell
087769146e
Centralize API for working set to a single struct
...
Rather than allow addressing tasks either by working set ID or uuid,
with attendant performance issues, this moves the API for the working
set to a single struct that just serves as a 1-1 mapping of indexes to
UUIDs. It's up to the caller to use this information.
2021-01-09 23:42:27 +00:00
Dustin J. Mitchell
45d3e38c63
Always pass Uuids by value
...
Rust handles this well. Fixes #125 .
2021-01-09 22:09:06 +00:00
Dustin J. Mitchell
5e92770eb8
Automatically rebuild working set after sync
2021-01-02 14:47:36 -05:00
Dustin J. Mitchell
dc2df10158
Control whether to renumber the working set when rebuilding it
2021-01-02 14:47:36 -05:00
Dustin J. Mitchell
b62370c150
Rename replica.gc to replica.rebuild_working_set
...
The command-line operation is still `gc`, but we'll break that down into
finer pieces in the replica.
2021-01-02 13:23:48 -05:00
Dustin J. Mitchell
8a10fa8335
fix some more pedantic lints
2020-12-25 02:43:51 +00:00
Dustin J. Mitchell
de03209285
bits of docs
2020-11-29 21:26:39 -05:00
Dustin J. Mitchell
0a1ee470f7
use log and env_logger, and add some logging around sync
2020-11-29 18:18:28 -05:00
Dustin J. Mitchell
1b7dbd0715
remove delete_task from the Replica API so it's not misused
2020-11-29 14:26:47 -05:00
Dustin J. Mitchell
8af7ba286d
Factor replica and sync configuration into simple owned structs
2020-11-28 16:57:32 -05:00
Dustin J. Mitchell
0f98727d9b
replica.new_task now invents its own uuid
2020-11-26 22:44:13 -05:00
Dustin J. Mitchell
a81c84d7c7
refactor sync to new model
2020-11-25 17:58:03 -05:00
Dustin J. Mitchell
ca70d2c914
add cargo clippy to CI
2020-11-24 13:02:14 -05:00
Dustin J. Mitchell
1c5e9b009b
Add Replica::get_working_set_index and use it
...
This is probably ridiculously inefficient, as it will load the working
set for each and every task listed. Optimize later!
2020-11-24 12:05:30 -05:00
Dustin J. Mitchell
fc668e5ca8
use usize to index working set
2020-11-24 11:53:11 -05:00
Dustin J. Mitchell
2296d0fa35
rename DB to TaskDB for consistency
2020-11-23 16:03:04 -05:00
Dustin J. Mitchell
8e2b4c3f6c
Reorganize taskchampion crate for docs and tests
...
The public API of the taskchampion crate now contains the expected parts
and no more, and has some better documentation.
This moves the crate's external `tests/` into internal tests, as the
TaskDB is no longer exposed as part of the crate API.
2020-11-23 15:59:37 -05:00
Dustin J. Mitchell
779a331003
reorganize into separate crates
...
- taskchampion -- core implementation of a replica
- taskchampion-cli -- command-line interface
- taskchampion-sync-server -- server implementation (not much yet!)
2020-11-23 14:27:47 -05:00