Repository navigation
Correct the claims that Sendan was never released, and give the README an install path - #331
Merged
Merged
Conversation
Six files stated that Sendan has no published release. Seven releases
exist, v0.3.3 is current, and the claims had been false since v0.1.0 was
tagged on 31 August.
They were not stale in a harmless way. The worst of them told a reader
that the project's headline guarantee does not work:
SECURITY.md: "Nothing published carries these signatures yet. v0.1.0 is
tagged, but the workflow that builds and signs its artefacts was never
started, and the release keys do not exist."
Checked before removing it, rather than assumed. The v0.3.3 manifest
verifies under both documented keys:
minisign -Vm manifest.json -P RWQt826yhqM+...
Signature and comment signature verified
Trusted comment: sendan v0.3.3 client asset manifest
go run ./tools/pq-sign verify release.pqpub manifest.json
signature verified
Both keys match the constants compiled into cmd/sendan-cli/verify.go, so
the note was wrong about the keys existing too.
docs/design.md opened by telling the reader that none of it is built. It
is the first entry in the README's documentation table, so that was the
first thing a reviewer of the design read.
The v0.5.0 placeholders are replaced by a $VERSION variable rather than
another literal, so the snippets stay copy-pasteable from one edit.
Two bugs came out of this rather than only stale prose:
- The image tags carry no `v`. The registry holds 0.1.0 through 0.3.3
and no v-prefixed tag, so `cosign verify ghcr.io/...:v0.5.0` was wrong
in form as well as version and would have failed for anyone who
substituted a real release. compose.yaml now records the convention
where somebody pinning a deployment will read it.
- docs/cli.md asked for Go 1.25. go.mod requires 1.26.0, so the
documented build could not work on the version it named.
Fixes the three "build this yourself because there is no image" passages
in docs/deployment.md and compose.yaml, which told people to build from
source as the only option while a signed multi-arch image was published.
Signed-off-by: Serraniel <mail@serraniel.dev>
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Signed-off-by: Serraniel <mail@serraniel.dev>
The README had none. Its headings ran Try it, Features, Cryptographic
design, Browser requirements, Documentation, Roadmap, License, Security -
somebody who wanted to run Sendan had to reach docs/deployment.md through
a table two thirds of the way down, and until the previous commit that
document opened by saying no image had been published.
Adds a "Run it" section between "Try it" and "Features":
- a single `docker run` for a local trial
- `compose.yaml` for a real deployment, with the reason the first is not
sufficient for one: links are built from SENDAN_BASE_URL, and streaming
an upload needs HTTP/2, which browsers only offer over TLS
- the `:0.3.3` rather than `:latest` pin, and the absent `v`
- the command line client, with the checksum step not left as an exercise
Both commands were run rather than written from the documentation. The
published image starts with no configuration at all and serves the client:
$ docker run -d -p 18080:8080 -v ... ghcr.io/serraniel/sendan:0.3.3
{"msg":"metadata store ready","location":"sqlite:/var/lib/sendan/sendan.db"}
{"msg":"blob store ready","location":"file:/var/lib/sendan/blobs"}
{"msg":"reaper started","interval":"5m0s","batch":500}
{"msg":"listening","addr":":8080"}
GET / 200, 2617 bytes
GET /api/source 200, v0.3.3
and both documented download URLs return 200.
Also corrects the `sendan verify` sample output in "Try it", which still
showed v0.3.0 and 31 assets. The demo instance reports v0.3.3 at commit
a5fbc01 and the v0.3.3 manifest carries 33 assets, so the numbers are now
the ones a reader reproduces by running the command against the demo.
Signed-off-by: Serraniel <mail@serraniel.dev>
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Signed-off-by: Serraniel <mail@serraniel.dev>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Two commits, reviewable separately.
1.
docs:correct claims that the project was never releasedSix files said Sendan has no published release. Seven exist; the claims have been false since v0.1.0 was tagged on 31 August. These were not harmless — the worst of them tells a reader that the project's headline guarantee does not work:
Checked before removing it. The v0.3.3 manifest verifies under both documented keys:
Both match the constants in
cmd/sendan-cli/verify.go, so the note was wrong about the keys existing too.docs/design.mdopened with "This document describes software that has not yet been implemented." It is the first row of the README's documentation table, so that was the first thing a reviewer of the design read.Two real bugs fell out, not just stale prose
v0.1.0…0.3.3and zero v-prefixed tags, socosign verify ghcr.io/serraniel/sendan:v0.5.0was wrong in form as well as version — it would have failed for anyone substituting a real release.compose.yamlnow records the convention where somebody pinning a deployment reads itdocs/cli.mdasked for Go 1.25go.modrequires1.26.0, so the documented build could not work on the version it namedv0.5.0placeholders are replaced by a$VERSIONvariable rather than another literal, so the snippets stay copy-pasteable from one edit.2.
docs:give the README an install pathThere wasn't one. Headings ran Try it → Features → Cryptographic design → … → Security; anyone wanting to run Sendan had to reach
docs/deployment.mdthrough a table two thirds down, and until commit 1 that document opened by saying no image existed.Adds Run it between Try it and Features: a single
docker runfor a local trial,compose.yamlfor a real deployment with the reason the first isn't one (links come fromSENDAN_BASE_URL; streaming needs HTTP/2, so TLS), the:0.3.3-not-:latestpin, and the CLI with the checksum step included rather than left as an exercise.Both commands were run, not transcribed. The published image starts with no configuration at all:
Both documented download URLs return 200.
Also corrects the
sendan verifysample in Try it, which showed v0.3.0 and 31 assets. The demo reports v0.3.3 ata5fbc01and that manifest carries 33 assets, so the numbers are now reproducible against the live demo.Note
Touches
README.mdin the same file as #332, which adds a documentation-table row. Whichever merges second may want a trivial rebase.🤖 Generated with Claude Code