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

The first 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:11:51 +00:00
4 changed files with 14 additions and 20 deletions

No files matched your search

+4 -5
View File
@@ -21,13 +21,12 @@ fmt-check, and commit.
# Completed Steps # Completed Steps
- 2026-11-03: A package from the distribution's own package index now needs no - 2026-11-03: A package from the pinned base image's own distribution package
version and no hash, and pulling that index is allowed index now needs no version and no hash
(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 the pinned base image's in a `Dockerfile` and the host's on a distribution is trusted, and everything else stays pinned by hash. A package
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 first
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
+3 -5
View File
@@ -217,11 +217,9 @@ 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 distribution's own package index, which needs no is a package from the pinned base image's own distribution package index,
version and no hash. Pulling that index is also allowed. In a which needs no version and no hash. A package source that a `Dockerfile`
`Dockerfile`, the distribution is the pinned base image's. On a host, it adds itself does not get this exception
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
+3 -4
View File
@@ -244,10 +244,9 @@ 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 distribution's own package index, which needs no version and no hash. the pinned base image's own distribution package index, which needs no
Pulling that index is also allowed. In a `Dockerfile`, the distribution is version and no hash. A package source that a `Dockerfile` adds itself does
the pinned base image's. On a host, it is the host's. A package source not get this exception
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
+4 -6
View File
@@ -33,13 +33,11 @@ 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: a package from the distribution's own package index There is one exception: the package index of the pinned base image's own
needs no version and no hash. Pulling that index is also allowed. The distribution. The distribution is trusted, so these commands may use that
distribution is trusted. In a `Dockerfile`, it is the pinned base image's index with no version and no hash:
distribution. On a host, it is the host's. These commands are examples: - `apt-get update`, which pulls the index
- `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: