1 Commits
Author SHA1 Message Date
sneak 9b2d4599ed Allow packages from the distribution's own package index unpinned (closes #72)
check / check (push) Failing after 26s
A package from the distribution's own package index now needs no version
and no hash, and pulling that index is allowed, on sneak's answer at
#72 (comment). The
distribution is the pinned base image's in a Dockerfile and the host's
on a host. It is trusted, and everything else stays pinned by hash. A
package source that a Dockerfile adds itself does not get the exception.

The pinning rule of REPO_POLICIES.md and both checklists say so, and the
canonical Go Dockerfile's apk add line has a comment saying why it is
allowed.

Model: opus-5-5
2026-11-03 22:50:13 +00:00
4 changed files with 20 additions and 14 deletions

No files matched your search

+5 -4
View File
@@ -21,12 +21,13 @@ fmt-check, and commit.
# Completed Steps # Completed Steps
- 2026-11-03: A package from the pinned base image's own distribution package - 2026-11-03: A package from the distribution's own package index now needs no
index now needs no version and no hash version and no hash, and pulling that index is allowed
(https://git.eeqj.de/sneak/prompts/issues/72), on sneak's answer at (https://git.eeqj.de/sneak/prompts/issues/72), on sneak's answer at
https://git.eeqj.de/sneak/prompts/issues/72#issuecomment-165196. The https://git.eeqj.de/sneak/prompts/issues/72#issuecomment-165196. The
distribution is trusted, and everything else stays pinned by hash. A package distribution is the pinned base image's in a `Dockerfile` and the host's on a
source that a `Dockerfile` adds itself does not get the exception. The first host. It is trusted, and everything else stays pinned by hash. A package
source that a `Dockerfile` adds itself does not get the exception. The pinning
rule of `REPO_POLICIES.md` and both checklists say so, and the canonical Go rule of `REPO_POLICIES.md` and both checklists say so, and the canonical Go
`Dockerfile`'s `apk add` line has a comment saying why it is allowed. `Dockerfile`'s `apk add` line has a comment saying why it is allowed.
- 2026-11-03: A first test run that timed out now gets no verbose rerun - 2026-11-03: A first test run that timed out now gets no verbose rerun
+5 -3
View File
@@ -217,9 +217,11 @@ with your task.
- [ ] No secrets in the repo (`.env`, keys, credentials) - [ ] No secrets in the repo (`.env`, keys, credentials)
- [ ] No mutable references in Dockerfiles or scripts (tags, `@latest`) — all - [ ] No mutable references in Dockerfiles or scripts (tags, `@latest`) — all
pinned by cryptographic hash with version/date comment. The one exception pinned by cryptographic hash with version/date comment. The one exception
is a package from the pinned base image's own distribution package index, is a package from the distribution's own package index, which needs no
which needs no version and no hash. A package source that a `Dockerfile` version and no hash. Pulling that index is also allowed. In a
adds itself does not get this exception `Dockerfile`, the distribution is the pinned base image's. On a host, it
is the host's. A package source that a `Dockerfile` adds itself does not
get this exception
- [ ] Using `yarn`, not `npm` (JS projects) - [ ] Using `yarn`, not `npm` (JS projects)
# Directory Structure # Directory Structure
+4 -3
View File
@@ -244,9 +244,10 @@ are thin shims calling them. Model scripts:
- [ ] No secrets in repo, and none in the build context: enumerate a probe image - [ ] No secrets in repo, and none in the build context: enumerate a probe image
rather than reading `.dockerignore` rather than reading `.dockerignore`
- [ ] No mutable image/package references. The one exception is a package from - [ ] No mutable image/package references. The one exception is a package from
the pinned base image's own distribution package index, which needs no the distribution's own package index, which needs no version and no hash.
version and no hash. A package source that a `Dockerfile` adds itself does Pulling that index is also allowed. In a `Dockerfile`, the distribution is
not get this exception the pinned base image's. On a host, it is the host's. A package source
that a `Dockerfile` adds itself does not get this exception
- [ ] No unnecessary files in repo root - [ ] No unnecessary files in repo root
- [ ] All dates written as YYYY-MM-DD - [ ] All dates written as YYYY-MM-DD
+6 -4
View File
@@ -33,11 +33,13 @@ style conventions are in separate documents:
is the single most important rule in this document. Double-check every is the single most important rule in this document. Double-check every
external reference in every file before committing. external reference in every file before committing.
There is one exception: the package index of the pinned base image's own There is one exception: a package from the distribution's own package index
distribution. The distribution is trusted, so these commands may use that needs no version and no hash. Pulling that index is also allowed. The
index with no version and no hash: distribution is trusted. In a `Dockerfile`, it is the pinned base image's
- `apt-get update`, which pulls the index distribution. On a host, it is the host's. These commands are examples:
- `apt-get update`
- `apt-get install` - `apt-get install`
- `apk update`
- `apk add` - `apk add`
These are not trusted, so everything from them stays pinned by hash: These are not trusted, so everything from them stays pinned by hash: