Sebastian Martinez
a57b33c785
httpd: Add `api::test::patch` request method
...
Signed-off-by: Sebastian Martinez <me@sebastinez.dev>
2023-02-10 12:17:03 +01:00
Alexis Sellier
bb3787258a
cob: Refactor `Thread` methods
2023-01-26 16:20:22 +01:00
Alexis Sellier
67f9c3554d
cob: Start testing history permutations
...
Signed-off-by: Alexis Sellier <self@cloudhead.io>
2023-01-03 14:26:25 +01:00
Alexis Sellier
139f095d51
cob: Consolidate `from_history` impls
...
By implementing `FromHistory::apply`, COBs don't need to implement
`from_history`.
Signed-off-by: Alexis Sellier <self@cloudhead.io>
2023-01-03 14:25:47 +01:00
Alexis Sellier
911c194fb3
cob: Create proper `OpId` type
...
To still access a comment's author, we add a new `author` field.
2022-12-31 09:58:51 +01:00
Alexis Sellier
4307478718
Test comment editing
...
Signed-off-by: Alexis Sellier <alexis@radicle.xyz>
2022-12-16 12:32:28 +01:00
Alexis Sellier
f1217713af
Add edits to thread test generator
...
Signed-off-by: Alexis Sellier <alexis@radicle.xyz>
2022-12-16 12:32:23 +01:00
Alexis Sellier
e47d7ca2aa
cob: Implement comment edit action
...
This implementation intentionally preserves all edits such that
they may be displayed in an application as an edit history.
Signed-off-by: Alexis Sellier <alexis@radicle.xyz>
2022-12-16 12:32:20 +01:00
Alexis Sellier
c68a5a8857
Move `thread` COB to test module
...
Threads are only intended to be used as part of other COBs.
Signed-off-by: Alexis Sellier <alexis@radicle.xyz>
2022-12-16 12:26:16 +01:00
Alexis Sellier
b32ae984ce
Start adding support for replies in COBs
...
This makes a change to comments, such that all comments require a
parent, except the "root" comment, which is created with the COB.
Signed-off-by: Alexis Sellier <alexis@radicle.xyz>
2022-12-15 14:43:40 +01:00
Alexis Sellier
e5e1ba583f
Bundle patch CRDT operations
...
Signed-off-by: Alexis Sellier <alexis@radicle.xyz>
2022-12-13 10:16:18 +01:00
Alexis Sellier
de0e54a186
cob: Consistently name these 'ops'
...
Signed-off-by: Alexis Sellier <alexis@radicle.xyz>
2022-12-08 16:37:44 +01:00
Alexis Sellier
56f9af650e
crdt: Remove some `Semilattice` instances
...
These instances were not safe to have around, as they allow
removal of items in a non-commutative way.
Signed-off-by: Alexis Sellier <alexis@radicle.xyz>
2022-12-08 16:37:44 +01:00
Fintan Halpenny
5f80ee9671
cobs: allow for batched operations
...
Sometimes it is more efficient to perform multiple operations at once
and store those in the collaborative object graph together.
Change the contents to be a non-empty sequence of byte sequences,
i.e. NonEmpty<Vec<u8>>. These are stored as blobs in a git tree in
order by their index in the non-empty sequence. They are, in turn,
retrieved in order of their original index.
Change the conversion of an `EntryWithClock` to return a non-empty
sequence of `Op`s, which are in turn used to apply many changes in
each `from_history` implementation.
Signed-off-by: Fintan Halpenny <fintan.halpenny@gmail.com>
X-Clacks-Overhead: GNU Terry Pratchett
2022-12-07 17:11:40 +01:00
Alexis Sellier
ca69fdc4fa
cob: Make json serialization consistent
...
Signed-off-by: Alexis Sellier <alexis@radicle.xyz>
2022-12-05 18:06:45 +01:00
Alexis Sellier
f9c81ab382
Replace `quickcheck` with `qcheck`
...
The latter is a fork of the former, which adds const generics
and a bunch of other quality of life improvements that aren't
in the original crate due to it being unmaintained.
Signed-off-by: Alexis Sellier <alexis@radicle.xyz>
2022-12-04 20:40:54 +01:00
Alexis Sellier
cc24699232
cob: Rename `Change` to `Op`
...
Helps with the confusion with `radicle_cob::Change` and matches the
name for this object in common literature.
Signed-off-by: Alexis Sellier <alexis@radicle.xyz>
2022-12-02 14:21:50 +01:00
Alexis Sellier
fa3c155865
cob: Unify change decoding
...
Signed-off-by: Alexis Sellier <alexis@radicle.xyz>
2022-12-02 14:21:50 +01:00
Alexis Sellier
e8a2432f9d
Move `Change` from `radicle-crdt` to `radicle`
...
Where it belongs.
Signed-off-by: Alexis Sellier <alexis@radicle.xyz>
2022-12-02 14:21:50 +01:00
Alexis Sellier
ce11d69f23
cob: Move tags out of `Thread`
...
Signed-off-by: Alexis Sellier <alexis@radicle.xyz>
2022-12-02 14:21:50 +01:00
Alexis Sellier
64ce15dbe2
crdt: Include timestamp in `Change`
...
We can then use the real change timestamp for our COBs.
Signed-off-by: Alexis Sellier <alexis@radicle.xyz>
2022-12-02 14:19:25 +01:00
Alexis Sellier
b82e1864b5
cob: Update issues and threads
...
Updates these COBs to work with the implicit DAG clock.
Signed-off-by: Alexis Sellier <alexis@radicle.xyz>
2022-12-01 12:05:44 +01:00
Alexis Sellier
b015b29f34
cob: Add timestamp to comment state
...
Since the timestamp is to be retrieved from the commit,
we don't add it to the action.
Signed-off-by: Alexis Sellier <alexis@radicle.xyz>
2022-12-01 12:05:44 +01:00
Alexis Sellier
63614e9c94
cob: Make sure we generate all thread variants
...
Signed-off-by: Alexis Sellier <alexis@radicle.xyz>
2022-12-01 12:05:44 +01:00
Alexis Sellier
09a8b46f34
cob: Move clock out of `Issue`
...
The clock shouldn't be part of the issue state, but rather
the local "actor" state.
Signed-off-by: Alexis Sellier <alexis@radicle.xyz>
2022-12-01 12:05:44 +01:00
Alexis Sellier
a79c95283b
Minor doc and instance changes
...
Signed-off-by: Alexis Sellier<alexis@radicle.xyz>
2022-11-26 17:51:07 +01:00
Alexis Sellier
fee0296910
Rename `LClock` to `Lamport`
...
Signed-off-by: Alexis Sellier <alexis@radicle.xyz>
2022-11-26 17:48:50 +01:00
Alexis Sellier
b79e2f5b56
crdt: Remove redundant `Author` type
...
Signed-off-by: Alexis Sellier <alexis@radicle.xyz>
2022-11-26 17:44:18 +01:00
Alexis Sellier
171b5a45f7
Implement issues using radicle CRDTs
...
Signed-off-by: Alexis Sellier <alexis@radicle.xyz>
2022-11-26 17:41:37 +01:00
Alexis Sellier
cc33d04a7b
crdt: Require `LWWReg` value to be `Semilattice`
...
* Also derive instances of `Semilattice` for built-in types.
Signed-off-by: Alexis Sellier <alexis@radicle.xyz>
2022-11-26 17:13:22 +01:00
Alexis Sellier
cc64c1d80b
cob: Use semilattice rules for commenting
...
Signed-off-by: Alexis Sellier <alexis@radicle.xyz>
2022-11-26 17:13:22 +01:00
Alexis Sellier
fa9a89caa3
Start integrating new CRDTs into `radicle` crate
...
Signed-off-by: Alexis Sellier <alexis@radicle.xyz>
2022-11-26 17:13:22 +01:00