Bring the repo up to the standard layout (closes #1) #9

Open
clawbot wants to merge 1 commits from issue-1-standard-layout into next
Collaborator

Implements #1 as scoped by its plan comment.

  • Vendored byte-identical from sneak/prompts commit cc440118c87605583f9a5ac621fe7f5ab74342e2: .gitignore, .dockerignore, .editorconfig, REPO_POLICIES.md, script/cibuild, script/docker, script/lint, script/test and .gitea/workflows/check.yml. The two ignore files then add this repo's own build output, root-anchored so cmd/bsdaily/ and internal/bsdaily/ stay in; in .gitignore it sits below the closing comment that says where such entries go.
  • Dockerfile: a lint phase running golangci-lint run ./... on the v2.12.2 image already pinned, and a test phase on golang:1.26.4-trixie (pinned by digest) with sqlite3 and zstd. The build stage copies a file from each, so a plain docker build . cannot skip them. The go build and the runtime stage are unchanged.
  • script/lint and script/test build their phase by name, uncached and tagged. CI now runs on every push, not only on main.
  • golangci-lint is no longer installed on the host: removed from script/bootstrap and make deps.
  • README Entrypoints and TODO.md updated.

Not visible in the diff: .git was already in the build context and stays there, now without any git config. #5 also adds a .dockerignore and edits the build stage and script/docker, so whichever lands second needs a rebase. The builder's unused ARG VERSION=dev is left for that PR.

  • Deviation: script/fmt and script/fmt-check stay Go-only until #7.
  • Out of scope: .golangci.yml and v2.14.0, #6. Until then the lint image downloads go1.26.4 during the build, as it did before.

Model: opus-5-5

Implements https://git.eeqj.de/sneak/bsdaily/issues/1 as scoped by its plan comment. - Vendored byte-identical from `sneak/prompts` commit `cc440118c87605583f9a5ac621fe7f5ab74342e2`: `.gitignore`, `.dockerignore`, `.editorconfig`, `REPO_POLICIES.md`, `script/cibuild`, `script/docker`, `script/lint`, `script/test` and `.gitea/workflows/check.yml`. The two ignore files then add this repo's own build output, root-anchored so `cmd/bsdaily/` and `internal/bsdaily/` stay in; in `.gitignore` it sits below the closing comment that says where such entries go. - `Dockerfile`: a `lint` phase running `golangci-lint run ./...` on the v2.12.2 image already pinned, and a `test` phase on `golang:1.26.4-trixie` (pinned by digest) with `sqlite3` and `zstd`. The build stage copies a file from each, so a plain `docker build .` cannot skip them. The `go build` and the runtime stage are unchanged. - `script/lint` and `script/test` build their phase by name, uncached and tagged. CI now runs on every push, not only on `main`. - golangci-lint is no longer installed on the host: removed from `script/bootstrap` and `make deps`. - README Entrypoints and `TODO.md` updated. Not visible in the diff: `.git` was already in the build context and stays there, now without any git `config`. https://git.eeqj.de/sneak/bsdaily/pulls/5 also adds a `.dockerignore` and edits the build stage and `script/docker`, so whichever lands second needs a rebase. The builder's unused `ARG VERSION=dev` is left for that PR. - Deviation: `script/fmt` and `script/fmt-check` stay Go-only until https://git.eeqj.de/sneak/bsdaily/issues/7. - Out of scope: `.golangci.yml` and v2.14.0, https://git.eeqj.de/sneak/bsdaily/issues/6. Until then the lint image downloads go1.26.4 during the build, as it did before. Model: opus-5-5
clawbot added the needs-review label 2026-10-06 01:14:15 +02:00
clawbot self-assigned this 2026-10-06 01:14:15 +02:00
Author
Collaborator

Review failed.

  1. .dockerignore, lines 73-77 (this repo's host-built artifacts): test binaries are missing. EXISTING_REPO_CHECKLIST.md lists test binaries with compiled binaries and coverage output as host-built artifacts the file must keep out. This PR's .gitignore already hides *.test from git, so a bsdaily.test that go test -c or a profiling run leaves at the root never shows in git status but still goes into every build context. Acceptable: a root-anchored entry such as /*.test next to /bsdaily.
  2. Dockerfile, lines 4, 44 and 65: the pin comments # golangci/golangci-lint:v2.12.2-alpine, # golang:1.26.4-alpine and # alpine:3.21 give a version but no date. REPO_POLICIES.md requires both above every hash pin, as the new test phase comment on line 22 has. Acceptable: each of the three comments also gives the date its digest was taken (YYYY-MM-DD; the git history puts all three at 2026-06-28).
  • Unverified: whether make test finishes within the 60-second cap. This host was too loaded to time it.
  • Judgement call: the canonical comments in .dockerignore, script/cibuild and script/docker describe a build stage that takes its version from git describe. That stage only arrives with #4. Not counted as a finding, because the plan requires the canonical copies.

Model: opus-5-5

Review failed. 1. `.dockerignore`, lines 73-77 (this repo's host-built artifacts): test binaries are missing. `EXISTING_REPO_CHECKLIST.md` lists test binaries with compiled binaries and coverage output as host-built artifacts the file must keep out. This PR's `.gitignore` already hides `*.test` from git, so a `bsdaily.test` that `go test -c` or a profiling run leaves at the root never shows in `git status` but still goes into every build context. Acceptable: a root-anchored entry such as `/*.test` next to `/bsdaily`. 2. `Dockerfile`, lines 4, 44 and 65: the pin comments `# golangci/golangci-lint:v2.12.2-alpine`, `# golang:1.26.4-alpine` and `# alpine:3.21` give a version but no date. `REPO_POLICIES.md` requires both above every hash pin, as the new test phase comment on line 22 has. Acceptable: each of the three comments also gives the date its digest was taken (YYYY-MM-DD; the git history puts all three at 2026-06-28). - Unverified: whether `make test` finishes within the 60-second cap. This host was too loaded to time it. - Judgement call: the canonical comments in `.dockerignore`, `script/cibuild` and `script/docker` describe a build stage that takes its version from `git describe`. That stage only arrives with https://git.eeqj.de/sneak/bsdaily/issues/4. Not counted as a finding, because the plan requires the canonical copies. Model: opus-5-5
clawbot added needs-rework and removed needs-review labels 2026-10-06 02:04:53 +02:00
clawbot force-pushed issue-1-standard-layout from 1e63418f41 to 699d980c92 2026-10-06 03:29:47 +02:00 Compare
Author
Collaborator

Reworked against #9 (comment), amended into the single commit.

  1. .dockerignore: /*.test added beside /bsdaily. A probe image built with a root bsdaily.test planted left it out and kept cmd/bsdaily/ and internal/bsdaily/.
  2. Dockerfile: the three older pin comments now carry 2026-06-28, the date of the commit that added their digests.

Model: opus-5-5

Reworked against https://git.eeqj.de/sneak/bsdaily/pulls/9#issuecomment-127297, amended into the single commit. 1. `.dockerignore`: `/*.test` added beside `/bsdaily`. A probe image built with a root `bsdaily.test` planted left it out and kept `cmd/bsdaily/` and `internal/bsdaily/`. 2. `Dockerfile`: the three older pin comments now carry `2026-06-28`, the date of the commit that added their digests. Model: opus-5-5
clawbot added needs-review and removed needs-rework labels 2026-10-06 03:30:05 +02:00
Author
Collaborator

Review failed.

  1. Canonical copies out of date. sneak/prompts next has moved, so files the plan and this PR call canonical copies no longer match it:

    • script/cibuild, script/docker, script/lint, script/test: the canonical scripts now assign the image tag on its own line (tag="$(script/projectname)") before docker build (sneak/prompts#101). These copies still put $("$SCRIPT_DIR/projectname") inside the -t argument, which the comment above it in script/cibuild and script/docker says not to do.
    • .editorconfig: the canonical file now has a [*.go] section with indent_style = tab. This copy tells editors to indent Go with four spaces, which gofmt then undoes.
    • .gitignore: the canonical file now ends with a comment saying where a repo's own entries go.
    • REPO_POLICIES.md: not the current text.

    Acceptable: re-vendor all seven from current next, byte-identical, with this repo's own .gitignore entries below that closing comment.

  • Judgement call: make test as a whole runs past the 60-second cap in REPO_POLICIES.md, nearly all of it compiling the SQLite driver with -race in the uncached test phase. The suite itself takes about a second, and I read the cap as applying to the suite, so this is not counted.
  • Unverified: script/cibuild end to end on a host with only docker and git. Only its script/bootstrap step was run on one.

Model: opus-5-5

Review failed. 1. Canonical copies out of date. `sneak/prompts` `next` has moved, so files the plan and this PR call canonical copies no longer match it: - `script/cibuild`, `script/docker`, `script/lint`, `script/test`: the canonical scripts now assign the image tag on its own line (`tag="$(script/projectname)"`) before `docker build` (https://git.eeqj.de/sneak/prompts/issues/101). These copies still put `$("$SCRIPT_DIR/projectname")` inside the `-t` argument, which the comment above it in `script/cibuild` and `script/docker` says not to do. - `.editorconfig`: the canonical file now has a `[*.go]` section with `indent_style = tab`. This copy tells editors to indent Go with four spaces, which `gofmt` then undoes. - `.gitignore`: the canonical file now ends with a comment saying where a repo's own entries go. - `REPO_POLICIES.md`: not the current text. Acceptable: re-vendor all seven from current `next`, byte-identical, with this repo's own `.gitignore` entries below that closing comment. - Judgement call: `make test` as a whole runs past the 60-second cap in `REPO_POLICIES.md`, nearly all of it compiling the SQLite driver with `-race` in the uncached `test` phase. The suite itself takes about a second, and I read the cap as applying to the suite, so this is not counted. - Unverified: `script/cibuild` end to end on a host with only docker and git. Only its `script/bootstrap` step was run on one. Model: opus-5-5
clawbot added needs-rework and removed needs-review labels 2026-10-06 05:01:17 +02:00
clawbot added 1 commit 2026-10-06 05:57:40 +02:00
Vendors .gitignore, .dockerignore, .editorconfig, REPO_POLICIES.md,
script/cibuild, script/docker, script/lint, script/test and the CI
workflow byte-identical from sneak/prompts commit cc440118c876; the
two ignore files then add this repo's own build output, root-anchored
so cmd/bsdaily/ stays in. The Dockerfile gains a lint phase on the
golangci-lint image already pinned and a test phase on the Debian Go
image with sqlite3 and zstd; the build stage copies a file from each,
so a plain docker build cannot skip them. Nothing installs
golangci-lint on the host.

.golangci.yml and the lint cleanup: #6

Model: opus-5-5
clawbot force-pushed issue-1-standard-layout from 699d980c92 to 32e0d2b979 2026-10-06 05:57:40 +02:00 Compare
Author
Collaborator

Reworked against #9 (comment), amended into the single commit. Vendored from sneak/prompts commit cc440118c87605583f9a5ac621fe7f5ab74342e2, not from the moving next.

  • script/cibuild, script/docker, script/lint, script/test: re-vendored; each now assigns the tag on its own line.
  • .editorconfig: re-vendored, with its [*.go] tab section. This repo adds no sections of its own.
  • .gitignore: re-vendored; this repo's entries now sit below its closing comment.
  • REPO_POLICIES.md: re-vendored.
  • .dockerignore and .gitea/workflows/check.yml: unchanged at that commit, so still byte-identical apart from this repo's .dockerignore entries.
  • REPO_POLICIES.md and EXISTING_REPO_CHECKLIST.md at that commit ask nothing further within this PR's scope; the README Entrypoints section and TODO.md still match.

Model: opus-5-5

Reworked against https://git.eeqj.de/sneak/bsdaily/pulls/9#issuecomment-128032, amended into the single commit. Vendored from `sneak/prompts` commit `cc440118c87605583f9a5ac621fe7f5ab74342e2`, not from the moving `next`. - `script/cibuild`, `script/docker`, `script/lint`, `script/test`: re-vendored; each now assigns the tag on its own line. - `.editorconfig`: re-vendored, with its `[*.go]` tab section. This repo adds no sections of its own. - `.gitignore`: re-vendored; this repo's entries now sit below its closing comment. - `REPO_POLICIES.md`: re-vendored. - `.dockerignore` and `.gitea/workflows/check.yml`: unchanged at that commit, so still byte-identical apart from this repo's `.dockerignore` entries. - `REPO_POLICIES.md` and `EXISTING_REPO_CHECKLIST.md` at that commit ask nothing further within this PR's scope; the README Entrypoints section and `TODO.md` still match. Model: opus-5-5
clawbot added needs-review and removed needs-rework labels 2026-10-06 05:57:46 +02:00
Some checks are pending
check / check (push) Waiting to run
You are not authorized to merge this pull request.
This pull request can be merged automatically.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin issue-1-standard-layout:issue-1-standard-layout
git checkout issue-1-standard-layout
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: sneak/bsdaily#9