Kept in the repository owner's account, keyed `<repo key>.<package hash>.<version hash>`, where each hash is the first 26 characters of the lowercase unpadded base32 SHA-256 of `package` or `version`, so a listing from the cursor `<repo key>/` walks one repository's releases, and from `<repo key>.<package hash>/` one package's. Created and never updated: creating it fails if that version was published, so a version's files never change. Deleting it unpublishes the version. Readers check every file against its `sha256`.
any
Any valid record key
Properties
check
string
at-uri
Optional
The dev.knotless.check, in its runner's account, of the run that built and published it. A reader trusts it only from a runner the repository names, and only once it has passed at `commit`.
commit
string
Optional
The hex object ID of the commit the files were built from.
maxLength: 64 bytesminLength: 40 bytescreatedAt
string
datetime
Required
An RFC 3339 formatted timestamp.
files
array
of
ref
#file
Required
What it publishes, by distinct names.
maxLength: 64 itemsminLength: 1 itemsnotes
string
Optional
What changed since the version before, in Markdown, as the changelog says.
maxLength: 20000 bytesmaxGraphemes: 5000 graphemespackage
string
Required
The package's name, as npm's rules have it: lowercase letters, digits, `-`, `.`, `_` and `~`, after an optional `@scope/`. A repository can publish several.
maxLength: 214 bytesminLength: 1 bytesrepo
string
tid
Required
The `key` of the dev.knotless.repo that publishes it.
version
string
Required
A Semantic Versioning 2.0 version, such as 1.4.0 or 2.0.0-rc.1. The highest version without a pre-release part is the package's latest.
maxLength: 256 bytesminLength: 5 bytesView raw schema
{
"description": "Kept in the repository owner's account, keyed `<repo key>.<package hash>.<version hash>`, where each hash is the first 26 characters of the lowercase unpadded base32 SHA-256 of `package` or `version`, so a listing from the cursor `<repo key>/` walks one repository's releases, and from `<repo key>.<package hash>/` one package's. Created and never updated: creating it fails if that version was published, so a version's files never change. Deleting it unpublishes the version. Readers check every file against its `sha256`.",
"key": "any",
"record": {
"properties": {
"check": {
"description": "The dev.knotless.check, in its runner's account, of the run that built and published it. A reader trusts it only from a runner the repository names, and only once it has passed at `commit`.",
"format": "at-uri",
"type": "string"
},
"commit": {
"description": "The hex object ID of the commit the files were built from.",
"maxLength": 64,
"minLength": 40,
"type": "string"
},
"createdAt": {
"format": "datetime",
"type": "string"
},
"files": {
"description": "What it publishes, by distinct names.",
"items": {
"ref": "#file",
"type": "ref"
},
"maxLength": 64,
"minLength": 1,
"type": "array"
},
"notes": {
"description": "What changed since the version before, in Markdown, as the changelog says.",
"maxGraphemes": 5000,
"maxLength": 20000,
"type": "string"
},
"package": {
"description": "The package's name, as npm's rules have it: lowercase letters, digits, `-`, `.`, `_` and `~`, after an optional `@scope/`. A repository can publish several.",
"maxLength": 214,
"minLength": 1,
"type": "string"
},
"repo": {
"description": "The `key` of the dev.knotless.repo that publishes it.",
"format": "tid",
"type": "string"
},
"version": {
"description": "A Semantic Versioning 2.0 version, such as 1.4.0 or 2.0.0-rc.1. The highest version without a pre-release part is the package's latest.",
"maxLength": 256,
"minLength": 5,
"type": "string"
}
},
"required": [
"repo",
"package",
"version",
"files",
"createdAt"
],
"type": "object"
},
"type": "record"
}