A store that cannot remove a tag alone (another tag names its digest) kept the tag and the holder said removed, so the builder and every follower believed the tagged version gone while it stayed pullable: work reported done that was not done. The shared registry part gains the outcome kept: in remove's answer (kept, the reason shared-digest, the tags still naming the digest) and as its own event, in all four registry seats. Regenerated with mesh-catalog's seatgen (join-mesh-catalog ccb7eaff); seatgen -check passes; fixtures for the answer and the event in each seat. Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
111 lines
3.1 KiB
JSON
111 lines
3.1 KiB
JSON
[
|
|
{
|
|
"name": "publish opens a transfer",
|
|
"of": "verb:publish.input",
|
|
"given": {
|
|
"name": "git.novox.be/novox/mesh-sdk/go",
|
|
"version": "0.1.19",
|
|
"kind": "package",
|
|
"digest": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
|
"fingerprint": "f1",
|
|
"commit": "cccccccccccccccccccccccccccccccccccccccc",
|
|
"transfer": "t1",
|
|
"parts": [
|
|
{
|
|
"digest": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
|
|
"size": 1048576
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "a field the reader does not know is dropped",
|
|
"of": "verb:publish.input",
|
|
"why": "ADR 0608 §6: a reader ignores a field it does not know",
|
|
"given": {
|
|
"name": "git.novox.be/novox/mesh-sdk/go",
|
|
"version": "0.1.19",
|
|
"kind": "package",
|
|
"digest": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
|
"fingerprint": "f1",
|
|
"commit": "cccccccccccccccccccccccccccccccccccccccc",
|
|
"transfer": "t1",
|
|
"parts": [
|
|
{
|
|
"digest": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
|
|
"size": 1048576
|
|
}
|
|
],
|
|
"later": {
|
|
"x": 1
|
|
}
|
|
},
|
|
"wire": {
|
|
"name": "git.novox.be/novox/mesh-sdk/go",
|
|
"version": "0.1.19",
|
|
"kind": "package",
|
|
"digest": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
|
"fingerprint": "f1",
|
|
"commit": "cccccccccccccccccccccccccccccccccccccccc",
|
|
"transfer": "t1",
|
|
"parts": [
|
|
{
|
|
"digest": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
|
|
"size": 1048576
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "publish answers what it lacks",
|
|
"of": "verb:publish.answer",
|
|
"given": {
|
|
"transfer": "t1",
|
|
"lacks": [
|
|
"sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "a chunk of a part",
|
|
"of": "verb:publish-part.input",
|
|
"given": {
|
|
"transfer": "t1",
|
|
"part": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
|
|
"sequence": 0,
|
|
"last": true,
|
|
"data": "aGVsbG8="
|
|
}
|
|
},
|
|
{
|
|
"name": "the versions held",
|
|
"of": "verb:versions.answer",
|
|
"given": {
|
|
"name": "git.novox.be/novox/mesh-sdk/go",
|
|
"versions": [
|
|
{
|
|
"name": "git.novox.be/novox/mesh-sdk/go",
|
|
"version": "0.1.19",
|
|
"kind": "package",
|
|
"digest": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
|
"fingerprint": "f1",
|
|
"commit": "cccccccccccccccccccccccccccccccccccccccc"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "a tagged version sharing its digest with another tag is kept, not removed",
|
|
"of": "verb:remove.answer",
|
|
"why": "G-sdk-contracts 3: the store cannot remove the tag alone, so the answer says what holds",
|
|
"given": {
|
|
"removed": false,
|
|
"kept": true,
|
|
"reason": "shared-digest",
|
|
"tags": [
|
|
"0.1.19"
|
|
]
|
|
}
|
|
}
|
|
]
|