Hands-on test before a release candidate, by the top-level manager's standing practice (sneak asked on 10 November whether vaultik had been tested by hand; it had not, and sfdupes then showed missing basics on first real use).
What to do
Build next fresh with the repo's own entrypoints and use pixa as a new user would, following README.md literally, every command and claim in it. Use small synthetic data in local containers; nothing RAM-heavy, and no real third-party accounts or credentials (stop and say so where one is needed).
Definition of done
Every defect filed as its own issue: steps, what happened, what should happen.
Every missing basic a user would expect filed as its own issue titled proposal: ..., assigned to sneak.
One comment here: a plain verdict (ready for a release candidate, or not), the issues filed, each marked defect or proposal, and anything in the README that turned out wrong. No code changes.
Model: opus-5-5
Hands-on test before a release candidate, by the top-level manager's standing practice (sneak asked on 10 November whether vaultik had been tested by hand; it had not, and sfdupes then showed missing basics on first real use).
## What to do
Build `next` fresh with the repo's own entrypoints and use pixa as a new user would, following `README.md` literally, every command and claim in it. Use small synthetic data in local containers; nothing RAM-heavy, and no real third-party accounts or credentials (stop and say so where one is needed).
## Definition of done
- Every defect filed as its own issue: steps, what happened, what should happen.
- Every missing basic a user would expect filed as its own issue titled `proposal: ...`, assigned to sneak.
- One comment here: a plain verdict (ready for a release candidate, or not), the issues filed, each marked defect or proposal, and anything in the README that turned out wrong. No code changes.
Model: opus-5-5
Verdict: not ready. A new user who follows README.md literally gets a running server, but no image from it. #357 and #358 together block that first run. Deployed behind an HTTPS reverse proxy, as Deployment describes, everything tried behaved as the README says.
Filed
Defect: #357, README Getting Started ends at a server a newcomer cannot get an image from.
Defect: #358, a refused login or generator form answers a bare Forbidden - origin invalid that hides the cause.
Defect: #359, every start prints about 65 lines of the dependency-injection library's own log, and a startup error twice.
Defect: #360, make devserver fails on a fresh clone.
Proposal, for sneak: #361, keep the animation of animated GIF and WebP sources. Today pixa serves their first frame only, silently.
Proposal, for sneak: #362, fill transparent areas with white, not black, in JPEG output.
its commands skip script/bootstrap --cgo, so make build fails;
its config refuses the login form at http://localhost:8080/, and the section does not say so;
it shows no request that returns an image.
Not checked
script/loadtest: it runs go install on the host, which writes the shared Go module cache in the home directory.
The memory, /tmp and encode-time figures, and 8192x8192 sources: too RAM-heavy for this test.
A deploy under upaas, and Sentry: no upaas here, and no third-party account.
Upstream timeouts (504 and 500), 499, 503 when busy, and eviction by the disk cache limit or after 30 days.
After the 24-hour check, only the 304 path was exercised, by ageing the cache rows and files by hand. A changed source was not.
Builds on macOS, Ubuntu and Nix. Only Debian 13 and the Alpine image were tried.
Deviations
script/bootstrap --cgo and make build ran in a fresh debian:trixie container, not on the host, to keep libvips out of the shared nix profile.
The upstream was nginx serving synthetic images over plain HTTP (allow_http), on a Docker network in 198.51.100.0/24, since pixa refuses private addresses.
HTTPS came from Caddy with tls internal, in place of the example configs/Caddyfile's public certificate.
Model: opus-5-5
**Verdict: not ready.** A new user who follows `README.md` literally gets a running server, but no image from it. https://git.eeqj.de/sneak/pixa/issues/357 and https://git.eeqj.de/sneak/pixa/issues/358 together block that first run. Deployed behind an HTTPS reverse proxy, as Deployment describes, everything tried behaved as the README says.
## Filed
- Defect: https://git.eeqj.de/sneak/pixa/issues/357, README Getting Started ends at a server a newcomer cannot get an image from.
- Defect: https://git.eeqj.de/sneak/pixa/issues/358, a refused login or generator form answers a bare `Forbidden - origin invalid` that hides the cause.
- Defect: https://git.eeqj.de/sneak/pixa/issues/359, every start prints about 65 lines of the dependency-injection library's own log, and a startup error twice.
- Defect: https://git.eeqj.de/sneak/pixa/issues/360, `make devserver` fails on a fresh clone.
- Proposal, for sneak: https://git.eeqj.de/sneak/pixa/issues/361, keep the animation of animated GIF and WebP sources. Today pixa serves their first frame only, silently.
- Proposal, for sneak: https://git.eeqj.de/sneak/pixa/issues/362, fill transparent areas with white, not black, in JPEG output.
## What in the README turned out wrong
Only Getting Started, as https://git.eeqj.de/sneak/pixa/issues/357 details:
- its commands skip `script/bootstrap --cgo`, so `make build` fails;
- its config refuses the login form at `http://localhost:8080/`, and the section does not say so;
- it shows no request that returns an image.
## Not checked
- `script/loadtest`: it runs `go install` on the host, which writes the shared Go module cache in the home directory.
- The memory, `/tmp` and encode-time figures, and 8192x8192 sources: too RAM-heavy for this test.
- A deploy under upaas, and Sentry: no upaas here, and no third-party account.
- Upstream timeouts (504 and 500), 499, 503 when busy, and eviction by the disk cache limit or after 30 days.
- After the 24-hour check, only the 304 path was exercised, by ageing the cache rows and files by hand. A changed source was not.
- Builds on macOS, Ubuntu and Nix. Only Debian 13 and the Alpine image were tried.
## Deviations
- `script/bootstrap --cgo` and `make build` ran in a fresh `debian:trixie` container, not on the host, to keep libvips out of the shared nix profile.
- The upstream was nginx serving synthetic images over plain HTTP (`allow_http`), on a Docker network in `198.51.100.0/24`, since pixa refuses private addresses.
- HTTPS came from Caddy with `tls internal`, in place of the example `configs/Caddyfile`'s public certificate.
Model: opus-5-5
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Hands-on test before a release candidate, by the top-level manager's standing practice (sneak asked on 10 November whether vaultik had been tested by hand; it had not, and sfdupes then showed missing basics on first real use).
What to do
Build
nextfresh with the repo's own entrypoints and use pixa as a new user would, followingREADME.mdliterally, every command and claim in it. Use small synthetic data in local containers; nothing RAM-heavy, and no real third-party accounts or credentials (stop and say so where one is needed).Definition of done
proposal: ..., assigned to sneak.Model: opus-5-5
Verdict: not ready. A new user who follows
README.mdliterally gets a running server, but no image from it. #357 and #358 together block that first run. Deployed behind an HTTPS reverse proxy, as Deployment describes, everything tried behaved as the README says.Filed
Forbidden - origin invalidthat hides the cause.make devserverfails on a fresh clone.What in the README turned out wrong
Only Getting Started, as #357 details:
script/bootstrap --cgo, somake buildfails;http://localhost:8080/, and the section does not say so;Not checked
script/loadtest: it runsgo installon the host, which writes the shared Go module cache in the home directory./tmpand encode-time figures, and 8192x8192 sources: too RAM-heavy for this test.Deviations
script/bootstrap --cgoandmake buildran in a freshdebian:trixiecontainer, not on the host, to keep libvips out of the shared nix profile.allow_http), on a Docker network in198.51.100.0/24, since pixa refuses private addresses.tls internal, in place of the exampleconfigs/Caddyfile's public certificate.Model: opus-5-5