Add missing standard files: LICENSE, .editorconfig, and a CI workflow #1

Closed
opened 2026-07-26 20:12:19 +02:00 by clawbot · 8 comments
Collaborator

routewatch is missing several standard repo files that its siblings have. It already has .golangci.yml, script/, Dockerfile, and REPO_POLICIES.md.

Definition of done

  1. Add a LICENSE matching the one used across our other repos (copy the exact license text from a sibling such as sneak/vaultik or sneak/dnswatcher; if siblings disagree on license, STOP and ask rather than guessing).
  2. Add a standard .editorconfig matching our other Go repos (e.g. sneak/dnswatcher).
  3. Add .gitea/workflows/check.yml that runs script/cibuild on push, mirroring a conformant repo (e.g. sneak/dnswatcher).
  4. make check and docker build . stay green.

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

routewatch is missing several standard repo files that its siblings have. It already has `.golangci.yml`, `script/`, `Dockerfile`, and `REPO_POLICIES.md`. ## Definition of done 1. Add a `LICENSE` matching the one used across our other repos (copy the exact license text from a sibling such as `sneak/vaultik` or `sneak/dnswatcher`; if siblings disagree on license, STOP and ask rather than guessing). 2. Add a standard `.editorconfig` matching our other Go repos (e.g. `sneak/dnswatcher`). 3. Add `.gitea/workflows/check.yml` that runs `script/cibuild` on push, mirroring a conformant repo (e.g. `sneak/dnswatcher`). 4. `make check` and `docker build .` stay green. The finishing commit's title must end with ` (closes #N)` referencing this issue.
Author
Collaborator

Note for your triage: the local ~/dev/routewatch clone has an unpushed local branch repo-policies-compliance with 3 commits that is NOT on the remote and appears stale — it adds LICENSE and .editorconfig but also deletes the entire current script/ directory and guts REPO_POLICIES.md/README.md, i.e. it was branched before the scripts-to-rule-them-all adoption that is now on main. I did not touch it; it is at-risk (unpushed) but looks superseded by current main. Recommend discarding it after a look. Meanwhile I am doing this issue fresh off current origin/main in an isolated worktree (adds LICENSE + .editorconfig + the CI workflow without disturbing that branch).

Note for your triage: the local `~/dev/routewatch` clone has an unpushed local branch `repo-policies-compliance` with 3 commits that is NOT on the remote and appears stale — it adds `LICENSE` and `.editorconfig` but also deletes the entire current `script/` directory and guts `REPO_POLICIES.md`/`README.md`, i.e. it was branched before the scripts-to-rule-them-all adoption that is now on `main`. I did not touch it; it is at-risk (unpushed) but looks superseded by current `main`. Recommend discarding it after a look. Meanwhile I am doing this issue fresh off current `origin/main` in an isolated worktree (adds `LICENSE` + `.editorconfig` + the CI workflow without disturbing that branch).
Author
Collaborator

Two blockers found; needs your input before this can land green.

  1. LICENSE is not determinable without a decision — our repos diverge: sneak/dnswatcher has NO license file; sneak/vaultik is MIT (Copyright (c) 2025 Jeffrey Paul sneak@sneak.berlin); sneak/netwatch is MIT (Copyright (c) 2026 @sneak (https://sneak.berlin) — different holder and year); sneak/secret is WTFPL. Which license and exact copyright line should routewatch carry?

  2. make check is already RED on origin/main, independent of this issue: TestRouteWatchLiveFeed (internal/routewatch/app_integration_test.go) connects to the live RIS BGP feed and the race detector reports a data race. Since the CI workflow this issue asks for runs script/cibuild (= make check) on every push, adding it would make CI red on arrival until that test is fixed or de-flaked. That flaky/racy test probably deserves its own issue.

The other two files are unambiguous and ready to drop in (.editorconfig verbatim from dnswatcher; .gitea/workflows/check.yml mirroring dnswatcher's script/cibuild workflow). Once you decide the license and the racy test is handled, I'll land all three with (closes #1). Assigning to you.

Two blockers found; needs your input before this can land green. 1. LICENSE is not determinable without a decision — our repos diverge: `sneak/dnswatcher` has NO license file; `sneak/vaultik` is MIT (`Copyright (c) 2025 Jeffrey Paul sneak@sneak.berlin`); `sneak/netwatch` is MIT (`Copyright (c) 2026 @sneak (https://sneak.berlin)` — different holder and year); `sneak/secret` is WTFPL. Which license and exact copyright line should routewatch carry? 2. `make check` is already RED on `origin/main`, independent of this issue: `TestRouteWatchLiveFeed` (`internal/routewatch/app_integration_test.go`) connects to the live RIS BGP feed and the race detector reports a data race. Since the CI workflow this issue asks for runs `script/cibuild` (= `make check`) on every push, adding it would make CI red on arrival until that test is fixed or de-flaked. That flaky/racy test probably deserves its own issue. The other two files are unambiguous and ready to drop in (`.editorconfig` verbatim from dnswatcher; `.gitea/workflows/check.yml` mirroring dnswatcher's `script/cibuild` workflow). Once you decide the license and the racy test is handled, I'll land all three with `(closes #1)`. Assigning to you.
Author
Collaborator

The test blocker is gone: #2 has merged to next, so make check runs offline. .editorconfig and the CI workflow will land on next without waiting.

Still needs your decision: the license. Options: MIT with Copyright (c) 2026 @sneak (https://sneak.berlin) as in sneak/netwatch; MIT with the sneak/vaultik line; WTFPL as in sneak/secret. Recommendation: MIT with the sneak/netwatch line, the most recent form. LICENSE lands as its own small PR once you answer.

Model: fable-5-1

The test blocker is gone: https://git.eeqj.de/sneak/routewatch/issues/2 has merged to `next`, so `make check` runs offline. `.editorconfig` and the CI workflow will land on `next` without waiting. Still needs your decision: the license. Options: MIT with `Copyright (c) 2026 @sneak (https://sneak.berlin)` as in `sneak/netwatch`; MIT with the `sneak/vaultik` line; WTFPL as in `sneak/secret`. Recommendation: MIT with the `sneak/netwatch` line, the most recent form. `LICENSE` lands as its own small PR once you answer. Model: fable-5-1
sneak was assigned by clawbot 2026-09-21 14:55:52 +02:00
clawbot reopened this issue 2026-09-21 16:46:38 +02:00
Author
Collaborator

Settled by sneak's standing licence ruling of 2026-08-09: a public repo with no LICENSE gets MIT, with sneak as the copyright holder and the current year; nothing to ask. routewatch is public and has no LICENSE on main or next. So the licence is MIT, and this no longer waits on sneak. The LICENSE lands on next as its own small PR when routewatch resumes; .editorconfig and the CI workflow are unchanged from the comment above.

Model: opus-5-5

Settled by sneak's standing licence ruling of 2026-08-09: a public repo with no `LICENSE` gets MIT, with sneak as the copyright holder and the current year; nothing to ask. routewatch is public and has no `LICENSE` on `main` or `next`. So the licence is MIT, and this no longer waits on sneak. The `LICENSE` lands on `next` as its own small PR when routewatch resumes; `.editorconfig` and the CI workflow are unchanged from the comment above. Model: opus-5-5
sneak was unassigned by clawbot 2026-09-25 07:54:18 +02:00
clawbot self-assigned this 2026-09-25 07:54:18 +02:00
Author
Collaborator

sneak has now decided MIT himself for the repos my comment above settled by rule, this one included (sneak/keyfunc#14 (comment)). That rule is withdrawn: a repo without a licence gets one only when sneak picks it. The definition of done above stands.

Model: opus-5-5

sneak has now decided MIT himself for the repos my comment above settled by rule, this one included (https://git.eeqj.de/sneak/keyfunc/issues/14#issuecomment-102984). That rule is withdrawn: a repo without a licence gets one only when sneak picks it. The definition of done above stands. Model: opus-5-5
Author
Collaborator

sneak confirmed in chat, 25 September: routewatch is MIT.

Model: opus-5-5

sneak confirmed in chat, 25 September: routewatch is MIT. Model: opus-5-5
Author
Collaborator

Plan for what is left. .editorconfig and .gitea/workflows/check.yml are already on next (#14), and the README's License section already says "See LICENSE file.", so the unit is LICENSE alone, as one PR to next.

  • Text: the MIT licence, copied exactly from sneak/webhooker's LICENSE on next (copyright 2026, Jeffrey Paul, with his sneak@sneak.berlin address).
  • Judgement call: our repos write the copyright holder in several different ways, and sneak chose MIT without naming a form. webhooker's names him by full name and email address, the most explicit of those forms.

Model: opus-5-5

Plan for what is left. `.editorconfig` and `.gitea/workflows/check.yml` are already on `next` (https://git.eeqj.de/sneak/routewatch/issues/14), and the README's License section already says "See LICENSE file.", so the unit is `LICENSE` alone, as one PR to `next`. - Text: the MIT licence, copied exactly from `sneak/webhooker`'s `LICENSE` on `next` (copyright 2026, Jeffrey Paul, with his `sneak@sneak.berlin` address). - Judgement call: our repos write the copyright holder in several different ways, and sneak chose MIT without naming a form. webhooker's names him by full name and email address, the most explicit of those forms. Model: opus-5-5
clawbot referenced this issue from a commit 2026-09-29 03:03:15 +02:00
Author
Collaborator

LICENSE (MIT) is up for review in #37.

Model: opus-5-5

`LICENSE` (MIT) is up for review in https://git.eeqj.de/sneak/routewatch/pulls/37. Model: opus-5-5
clawbot referenced this issue from a commit 2026-09-29 05:05:38 +02:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: sneak/routewatch#1