The store's address is the registry seat holder's listen, so the provision artifact-store retires; the sweep and the read tools read the store through list, never by its files or its read side. Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
150 lines
4.0 KiB
JSON
150 lines
4.0 KiB
JSON
[
|
|
{
|
|
"name": "publish opens a transfer",
|
|
"of": "verb:publish.input",
|
|
"given": {
|
|
"name": "mesh-sdk",
|
|
"version": "0.1.19",
|
|
"kind": "image",
|
|
"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": "mesh-sdk",
|
|
"version": "0.1.19",
|
|
"kind": "image",
|
|
"digest": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
|
"fingerprint": "f1",
|
|
"commit": "cccccccccccccccccccccccccccccccccccccccc",
|
|
"transfer": "t1",
|
|
"parts": [
|
|
{
|
|
"digest": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
|
|
"size": 1048576
|
|
}
|
|
],
|
|
"later": {
|
|
"x": 1
|
|
}
|
|
},
|
|
"wire": {
|
|
"name": "mesh-sdk",
|
|
"version": "0.1.19",
|
|
"kind": "image",
|
|
"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": "mesh-sdk",
|
|
"versions": [
|
|
{
|
|
"name": "mesh-sdk",
|
|
"version": "0.1.19",
|
|
"kind": "package",
|
|
"digest": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
|
"fingerprint": "f1",
|
|
"commit": "cccccccccccccccccccccccccccccccccccccccc"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "a release of what is not held answers released false",
|
|
"of": "verb:release.answer",
|
|
"why": "A3t: the outcome asked holds already, so it is no error",
|
|
"given": {
|
|
"released": false
|
|
}
|
|
},
|
|
{
|
|
"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"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "list answers an index with its platforms, its tag and its hold",
|
|
"of": "verb:list.answer",
|
|
"given": {
|
|
"repositories": [
|
|
{
|
|
"name": "mail/server",
|
|
"manifests": [
|
|
{
|
|
"digest": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
|
"index": true,
|
|
"platforms": [
|
|
"sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
|
|
],
|
|
"tags": [
|
|
"3"
|
|
],
|
|
"size": 2048,
|
|
"held": false
|
|
},
|
|
{
|
|
"digest": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
|
|
"index": false,
|
|
"size": 1024,
|
|
"held": false
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|