Add missing standard config files: .gitignore, .dockerignore, .editorconfig, .golangci.yml #1

Open
opened 2026-07-26 20:45:46 +02:00 by clawbot · 2 comments

bsdaily is missing several standard repo files (verified against main: the root has no .gitignore, .dockerignore, .editorconfig, or .golangci.yml).

Definition of done

  1. Add a standard Go .gitignore and .dockerignore (match a sibling such as sneak/dnswatcher).
  2. Add .editorconfig matching our standard Go repos (copy sneak/dnswatcher's).
  3. Add .golangci.yml byte-identical to sneak/dnswatcher's (org-standard config).
  4. make check and docker build . are green under the new config. If the linter surfaces findings, remediate them BEHAVIOR-PRESERVINGLY; if the remediation is large (more than ~50 findings), STOP and report so the lint cleanup can be split into its own issue/PR rather than bundled here.

The finishing commit's title must end with (closes #N) referencing this issue.

bsdaily is missing several standard repo files (verified against `main`: the root has no `.gitignore`, `.dockerignore`, `.editorconfig`, or `.golangci.yml`). ## Definition of done 1. Add a standard Go `.gitignore` and `.dockerignore` (match a sibling such as `sneak/dnswatcher`). 2. Add `.editorconfig` matching our standard Go repos (copy `sneak/dnswatcher`'s). 3. Add `.golangci.yml` byte-identical to `sneak/dnswatcher`'s (org-standard config). 4. `make check` and `docker build .` are green under the new config. If the linter surfaces findings, remediate them BEHAVIOR-PRESERVINGLY; if the remediation is large (more than ~50 findings), STOP and report so the lint cleanup can be split into its own issue/PR rather than bundled here. The finishing commit's title must end with ` (closes #N)` referencing this issue.
Author

Splitting this: I'm landing the three non-lint dotfiles now (.gitignore, .dockerignore, .editorconfig — all copied from sneak/dnswatcher, .gitignore adapted to the /bsdaily binary) as a PR that keeps make check green. That PR is refs #1, not closes, because the .golangci.yml part is deferred.

Adding the org-standard .golangci.yml (linters: default: all) surfaces 167 lint findings in bsdaily's existing code (baseline with no config is 0). Breakdown: wsl_v5 49, noinlineerr 43, nlreturn 16, lll 13, err113 12, revive 12, gosec 9, noctx 6, plus complexity linters. That is a substantial behavior-preserving cleanup, not an overnight change. Your call: do the full cleanup, or tune the shared .golangci.yml to be less brutal for existing code. Assigning to you for that decision; the .golangci.yml add closes #1 once it lands green.

Splitting this: I'm landing the three non-lint dotfiles now (`.gitignore`, `.dockerignore`, `.editorconfig` — all copied from `sneak/dnswatcher`, `.gitignore` adapted to the `/bsdaily` binary) as a PR that keeps `make check` green. That PR is `refs #1`, not `closes`, because the `.golangci.yml` part is deferred. Adding the org-standard `.golangci.yml` (`linters: default: all`) surfaces 167 lint findings in bsdaily's existing code (baseline with no config is 0). Breakdown: `wsl_v5` 49, `noinlineerr` 43, `nlreturn` 16, `lll` 13, `err113` 12, `revive` 12, `gosec` 9, `noctx` 6, plus complexity linters. That is a substantial behavior-preserving cleanup, not an overnight change. Your call: do the full cleanup, or tune the shared `.golangci.yml` to be less brutal for existing code. Assigning to you for that decision; the `.golangci.yml` add closes #1 once it lands green.
Author

The dotfiles portion of this issue is complete and pushed, but I can't open the PR: clawbot is not a collaborator on sneak/bsdaily, so PR creation returns user must be a collaborator. (It has access on secret/vaultik/netwatch, where the parallel dotfile PRs opened fine.)

Ready on the remote:

  • Branch issue-1-dotfiles-v2 @ 36e6061b181944f1797c08b64d5cafbbef26c044
  • Adds .gitignore (dnswatcher's, binary line adapted to /bsdaily), .dockerignore and .editorconfig (byte-for-byte from dnswatcher). All three were absent.
  • .golangci.yml intentionally deferred (its adoption cascades into ~167 lint findings needing a dedicated cleanup pass).
  • Verified on the branch: make check green (0 issues.); docker build . succeeds.

Decision needed:

  • Option A (recommended): add clawbot as a collaborator on sneak/bsdaily; I'll then open the PR from issue-1-dotfiles-v2, run the independent review, and post the reviewer's results as a comment — same flow as the other repos.
  • Option B: you open the PR yourself from issue-1-dotfiles-v2 (base main, refs #1).

Assigning to you for the access call.

The dotfiles portion of this issue is complete and pushed, but I can't open the PR: `clawbot` is not a collaborator on `sneak/bsdaily`, so PR creation returns `user must be a collaborator`. (It has access on `secret`/`vaultik`/`netwatch`, where the parallel dotfile PRs opened fine.) **Ready on the remote:** - Branch `issue-1-dotfiles-v2` @ `36e6061b181944f1797c08b64d5cafbbef26c044` - Adds `.gitignore` (dnswatcher's, binary line adapted to `/bsdaily`), `.dockerignore` and `.editorconfig` (byte-for-byte from dnswatcher). All three were absent. - `.golangci.yml` intentionally deferred (its adoption cascades into ~167 lint findings needing a dedicated cleanup pass). - Verified on the branch: `make check` green (`0 issues.`); `docker build .` succeeds. **Decision needed:** - **Option A (recommended):** add `clawbot` as a collaborator on `sneak/bsdaily`; I'll then open the PR from `issue-1-dotfiles-v2`, run the independent review, and post the reviewer's results as a comment — same flow as the other repos. - **Option B:** you open the PR yourself from `issue-1-dotfiles-v2` (base `main`, `refs #1`). Assigning to you for the access call.
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: sneak/bsdaily#1