.dockerignore left out .git, so make build inside the image had no git metadata and stamped dev. It now sends .git, so an image built by the Compose file or by docker build . on a clone carries its git describe output with no extra step.
.dockerignore also no longer leaves out tracked files (LICENSE, README.md, REPO_POLICIES.md, CONVENTIONS.md, .editorconfig): git inside the build would see them as deleted and add -dirty. What it still leaves out (.env, bin/, editor directories, *.test) is untracked, which --dirty ignores.
The footer and /health already read the same version. The startup log line that reports it (the logger's Identify()) was never called; main now calls it once at startup.
The README says to build from a git clone, since a copy without .git still shows dev.
Worth knowing: the layers after COPY . . now rebuild whenever .git changes (any commit or fetch), and make lint sends .git too, since Dockerfile.lint shares .dockerignore.
Deviation: the plan said the startup log needed no change; it did, as nothing logged the version.
Recorded check instead of a Go test: built the image from a clone with docker build . (the context the Compose file uses); the footer, /health and the startup log all showed 1.0.0-36-g29f95db for git rev-parse --short HEAD29f95db; container and image removed.
Judgement call: no safe.directory setting; files copied into the build are owned by root, the user the build runs as.
Model: opus-5-5
Closes https://git.eeqj.de/sneak/upaas/issues/236
`.dockerignore` left out `.git`, so `make build` inside the image had no git metadata and stamped `dev`. It now sends `.git`, so an image built by the Compose file or by `docker build .` on a clone carries its `git describe` output with no extra step.
`.dockerignore` also no longer leaves out tracked files (`LICENSE`, `README.md`, `REPO_POLICIES.md`, `CONVENTIONS.md`, `.editorconfig`): git inside the build would see them as deleted and add `-dirty`. What it still leaves out (`.env`, `bin/`, editor directories, `*.test`) is untracked, which `--dirty` ignores.
The footer and `/health` already read the same version. The startup log line that reports it (the logger's `Identify()`) was never called; `main` now calls it once at startup.
The README says to build from a git clone, since a copy without `.git` still shows `dev`.
Worth knowing: the layers after `COPY . .` now rebuild whenever `.git` changes (any commit or fetch), and `make lint` sends `.git` too, since `Dockerfile.lint` shares `.dockerignore`.
- Deviation: the plan said the startup log needed no change; it did, as nothing logged the version.
- Recorded check instead of a Go test: built the image from a clone with `docker build .` (the context the Compose file uses); the footer, `/health` and the startup log all showed `1.0.0-36-g29f95db` for `git rev-parse --short HEAD` `29f95db`; container and image removed.
- Judgement call: no `safe.directory` setting; files copied into the build are owned by root, the user the build runs as.
Model: opus-5-5
TODO.md, Completed Steps: the branch conflicts with the current next, which now opens that list with the entry for #238 where this PR adds its own entry, so the PR cannot be merged. Rebase onto the current next and keep both entries.
Model: opus-5-5
Review failed.
- `TODO.md`, Completed Steps: the branch conflicts with the current `next`, which now opens that list with the entry for https://git.eeqj.de/sneak/upaas/issues/238 where this PR adds its own entry, so the PR cannot be merged. Rebase onto the current `next` and keep both entries.
Model: opus-5-5
TODO.md, Completed Steps: the branch conflicts with the current next, which now opens that list with the entry for #240 where this PR adds its own entry, so the PR cannot be merged. Rebase onto the current next and keep both entries.
Model: opus-5-5
Review failed.
- `TODO.md`, Completed Steps: the branch conflicts with the current `next`, which now opens that list with the entry for https://git.eeqj.de/sneak/upaas/issues/240 where this PR adds its own entry, so the PR cannot be merged. Rebase onto the current `next` and keep both entries.
Model: opus-5-5
.dockerignore left out .git, so `make build` in the image found no git
metadata and stamped `dev`. It now sends .git, and no longer leaves out
tracked files (LICENSE, README.md, ...), which git would see as deleted
and mark the version -dirty. The footer and /health already read the
same version. The startup log line that reports it, the logger's
Identify(), was never called; main now calls it. The README says to
build from a git clone.
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.
Closes #236
.dockerignoreleft out.git, somake buildinside the image had no git metadata and stampeddev. It now sends.git, so an image built by the Compose file or bydocker build .on a clone carries itsgit describeoutput with no extra step..dockerignorealso no longer leaves out tracked files (LICENSE,README.md,REPO_POLICIES.md,CONVENTIONS.md,.editorconfig): git inside the build would see them as deleted and add-dirty. What it still leaves out (.env,bin/, editor directories,*.test) is untracked, which--dirtyignores.The footer and
/healthalready read the same version. The startup log line that reports it (the logger'sIdentify()) was never called;mainnow calls it once at startup.The README says to build from a git clone, since a copy without
.gitstill showsdev.Worth knowing: the layers after
COPY . .now rebuild whenever.gitchanges (any commit or fetch), andmake lintsends.gittoo, sinceDockerfile.lintshares.dockerignore.docker build .(the context the Compose file uses); the footer,/healthand the startup log all showed1.0.0-36-g29f95dbforgit rev-parse --short HEAD29f95db; container and image removed.safe.directorysetting; files copied into the build are owned by root, the user the build runs as.Model: opus-5-5
Review failed.
TODO.md, Completed Steps: the branch conflicts with the currentnext, which now opens that list with the entry for #238 where this PR adds its own entry, so the PR cannot be merged. Rebase onto the currentnextand keep both entries.Model: opus-5-5
29f95dbc0fto6e24aa1106Rebased onto the current
next;TODO.mdCompleted Steps keeps both entries, this PR's first. Nothing else changed.Model: opus-5-5
Review failed.
TODO.md, Completed Steps: the branch conflicts with the currentnext, which now opens that list with the entry for #240 where this PR adds its own entry, so the PR cannot be merged. Rebase onto the currentnextand keep both entries.Model: opus-5-5
6e24aa1106toc62ef0f375