dev.knotless.release

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; to withdraw one that others may have pinned, a dev.knotless.releaseYank leaves it to read. Readers check every file against its `sha256`.

Details · record, key any
Kindrecord
Record keyany
Authorityknotless.dev
Indexed

Record

record · key any

Properties

What Cargo's registry says of it, when it is a crate: its one file then is `<name>-<version>.crate`.

Reference

check

string · at-uri

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

The hex object ID of the commit the files were built from.

  • minLength: 40
  • maxLength: 64

createdAt

requiredstring · datetime

files

requiredarray

What it publishes, by distinct names.

  • minLength: 1
  • maxLength: 64
itemsref
Reference

notes

string

What changed since the version before, in Markdown, as the changelog says.

  • maxLength: 20000
  • maxGraphemes: 5000

package

requiredstring

The package's name, as npm's rules have it: lowercase letters, digits, `-`, `.`, `_` and `~`, after an optional `@scope/`. A repository can publish several.

  • minLength: 1
  • maxLength: 214

repo

requiredstring · tid

The `key` of the dev.knotless.repo that publishes it.

version

requiredstring

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 that no dev.knotless.releaseYank withdraws is the package's latest.

  • minLength: 5
  • maxLength: 256

#cargo

object

A release as a crate.

Properties

What the crate says it is.

  • maxLength: 10000
  • maxGraphemes: 1000

index

requiredstring

Its line of Cargo's registry index, as JSON, but for `yanked`, which a reader adds from the dev.knotless.releaseYank of its key. Kept as Cargo's format has it, which is Cargo's to change, and passed on as it is, since an index's line never changes.

  • maxLength: 100000

#file

object

One file of a release.

Properties

name

requiredstring

Its name, as it is downloaded: letters, digits, `.`, `_`, `+` and `-`, not first a `.`.

  • minLength: 1
  • maxLength: 255

parts

requiredarray

The file, split over blobs in order, each no larger than its PDS takes.

  • minLength: 1
itemsref
Reference

sha256

requiredstring

The lowercase hex SHA-256 of the file.

  • minLength: 64
  • maxLength: 64

size

requiredinteger

Bytes in the file.

  • minimum: 1

#part

object

One blob of a file, in order.

Properties

blob

requiredblob
  • accept: application/octet-stream

Similar lexicons

semantic match

Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.

  • That the owner of a repository withdrew a version of a package it publishes: the dev.knotless.release of the same key in the same account, which itself never changes, stays there to read, but is no longer its package's latest.

  • One version of a package. The record key is '<slug>:<version>'. A release at a given version is never modified: a registry that later sees a different CID at this key keeps the first and flags the conflict.

  • A release of a tcm package, announced on the AT Protocol by its author.

  • A record representing a software release.

  • An immutable named pointer to a manifest. The record key is '{projectName}:{version}', making uniqueness per (project, version) mechanical and enabling AppView-free resolution. Version strings follow the project-name grammar (lowercase alphanumerics, interior hyphens) but allow dots. The version string cannot contain colons, but the rkey must contain exactly one colon. Valid only when same-DID with the referenced project, and only when target references a manifest of that same project.