Add --create-change-set and --post-change-set option to dtc-subcommand auto-curate #34

Merged
cmo merged 39 commits from change-set-2 into master 2026-03-10 01:14:09 +00:00
Owner

This PR adds functionality to auto-curate to work with "change sets". auto-curate can generate a change set, a git-repo with the changes from inboxes (except annotations) in the worktree.

The PR also extends auto-curate with the capability to read a "change set" and post it to a server.

It also adds automated testing (currently for a subset of the code including dtc auto-curate, and dtc post-records

This PR adds functionality to `auto-curate` to work with "change sets". `auto-curate` can generate a change set, a git-repo with the changes from inboxes (except annotations) in the worktree. The PR also extends `auto-curate` with the capability to read a "change set" and post it to a server. It also adds automated testing (currently for a subset of the code including `dtc auto-curate`, and `dtc post-records`
cmo added 10 commits 2026-03-03 09:36:05 +00:00
Create a changeset that contains a one-level
hierarchy. The first level is the `label` of the
inbox. Below that level all changes from the
respective inbox are stored in individual files.
The file names are created from the PIDs of the
incoming records by replacing `-` with `--` and
`/` with `-_`.

The double replacements is necessary to prevent
name collisions that could otherwise occur if
the replacement for `/` is part of a PID.
The annotations that are removed from incoming records
are now stored in change sets and can therefore be
added when the change set is posted. This keeps the
diff small and content-related, while preserveing the
annotations.
cmo changed title from Add --change-set option to dtc-subcommand auto-curate to Add --create-change-set and --post-change-set option to dtc-subcommand auto-curate 2026-03-04 07:48:15 +00:00
Rename `--change-set` to `--create-change-set`. Improve
validity check to change-set operations when
`--list-records` or `--list-labels` is defined.
This commit unifies the handling of "normal"
curation, change-set-creation and change-set-posting.
inbox inclusion- and exclusion-lists are now
honored in all three operation modes, i.e., in
curating, change-set-creation, and change-set-posting.

The commit also fixes some errors.
This commit adds fixtures that generate a test
dump-things-server that contains one collection,
i.e., `collection_1`. The collection uses a
`record-dir`-backend and the schema
`pyclient_testschema.yaml`.
cmo force-pushed change-set-2 from dbcdb378d3 to 2862003448 2026-03-06 15:18:38 +00:00 Compare
Add tests for post-records that check the
write-interface. Some tests use get-records
to fetch records for validation.

Add the `Document`-class to test schema.
This commit factors out a function that reads
records from a dumpthings-recorddir backend.
This commit fixes two errors in auto-curate
that are related to change set-creation. The
first error was that a git repository might not
be initialized. The second error was the faulty
calculation of the intra-repository path of
records.
This commit adds tests for the create change
set-option of auto-curate.
This commit makes the tests robust against the
presence of other test artifacts in the test store
Ensure that linkml 1.10.0 is used.
cmo force-pushed change-set-2 from 7b00ef0cc0 to 71113c6c04 2026-03-10 00:43:02 +00:00 Compare
cmo force-pushed change-set-2 from b9d2a01415 to 479957f5e0
Some checks failed
Test execution / Test-all (push) Failing after 13s
2026-03-10 00:49:10 +00:00
Compare
use python version 3.11 for tests
Some checks failed
Test execution / Test-all (push) Failing after 12s
d4507e4f1f
cmo force-pushed change-set-2 from d4507e4f1f
Some checks failed
Test execution / Test-all (push) Failing after 12s
to 2b7b88817a
Some checks failed
Test execution / Test-all (push) Failing after 12s
2026-03-10 00:57:45 +00:00
Compare
cmo force-pushed change-set-2 from 2b7b88817a
Some checks failed
Test execution / Test-all (push) Failing after 12s
to 5aab35589a
Some checks failed
Test execution / Test-all (push) Failing after 13s
2026-03-10 01:00:20 +00:00
Compare
do not specify python version for tests explicitly
Some checks failed
Test execution / Test-all (push) Failing after 22s
bc344d1823
This lets the runner select a version that is locally
available.
[temp] add debug code to workflow
Some checks failed
Test execution / Test-all (push) Failing after 23s
ae55007444
cmo force-pushed change-set-2 from ae55007444
Some checks failed
Test execution / Test-all (push) Failing after 23s
to 58fbe82228
Some checks failed
Test execution / Test-all (push) Failing after 23s
2026-03-10 01:06:18 +00:00
Compare
install the package before running the tests
Some checks failed
Test execution / Test-all (push) Failing after 18s
792f8195c3
create a virtual environment before running tests
All checks were successful
Test execution / Test-all (push) Successful in 30s
181813ab44
cmo merged commit e62d872516 into master 2026-03-10 01:14:09 +00:00
cmo deleted branch change-set-2 2026-03-10 01:14:19 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
orinoco/dump-things-pyclient!34
No description provided.