@sneak — this one needs your decision; I cannot pick a license on your behalf.
Situation
There is no LICENSE file anywhere in the repository (find . -iname 'licen*' returns nothing). README.md says so explicitly:
> License has not yet been chosen for this project. Pending decision by the author (MIT, GPL, or WTFPL).
REPO_POLICIES.md lists LICENSE under "New repos must contain at minimum", and the README requirements section says: "License: MIT, GPL, or WTFPL. Ask the user for new projects. Include a LICENSE file in the repo root and a License section in the README."
It is also the only required-minimum file missing from this repo — everything else (.editorconfig, .dockerignore, .gitea/workflows/check.yml, all twelve script/ entrypoints, Dockerfile, .golangci.yml) is present.
Shipping a 1.0.0 tag of a publicly readable repo with no license means the code is, by default, all-rights-reserved and nobody may legally use it. That makes this a hard 1.0 blocker rather than a nicety.
Options
MIT — permissive, shortest, the most common choice for small Go daemons, and consistent with how µPaaS is described in REPO_POLICIES.md ("µPaaS is an MIT-licensed Go web application by @sneak..."). Maximum adoption, no copyleft obligations on downstream users.
GPL (v3) — copyleft; downstream modifications that are distributed must also be GPL. Appropriate if you want redistributed forks of a monitoring daemon to stay open.
WTFPL — maximally permissive, no warranty disclaimer. Note it lacks the explicit warranty/liability disclaimer MIT carries, which is a real (if small) consideration for a network-facing daemon.
Recommendation
MIT. It matches the precedent set by µPaaS in your own policy document, it carries the warranty disclaimer that WTFPL omits, and dnswatcher is infrastructure tooling where permissive licensing maximises usefulness with no obvious downside. It is also the option that requires no further thought if you later publish this anywhere.
Definition of done (once you answer)
A LICENSE file in the repo root containing the verbatim, unmodified text of the chosen license, with the copyright line reading the current year and your name/handle as you want it to appear.
The README "License" section replaced — the "has not yet been chosen" sentence removed and replaced with a statement naming the license.
The README first line updated to include the license, per the Description requirement in REPO_POLICIES.md ("First line must include the project name, purpose, category ..., license, and author"). It currently reads "dnswatcher is a pre-1.0 Go daemon by @sneak that monitors..." with no license named.
make check green; TODO.md updated in the same commit.
This is a docs-only change, so once the license is chosen it skips adversarial review and goes straight to the merge gate.
Reply with which license you want and I will dispatch it immediately. I am not blocking on this — I am proceeding with the other 1.0 items in the meantime.
@sneak — this one needs your decision; I cannot pick a license on your behalf.
## Situation
There is **no `LICENSE` file** anywhere in the repository (`find . -iname 'licen*'` returns nothing). `README.md` says so explicitly:
> License has not yet been chosen for this project. Pending decision by the author (MIT, GPL, or WTFPL).
`REPO_POLICIES.md` lists `LICENSE` under "New repos must contain at minimum", and the README requirements section says: "**License**: MIT, GPL, or WTFPL. Ask the user for new projects. Include a `LICENSE` file in the repo root and a License section in the README."
It is also the **only** required-minimum file missing from this repo — everything else (`.editorconfig`, `.dockerignore`, `.gitea/workflows/check.yml`, all twelve `script/` entrypoints, `Dockerfile`, `.golangci.yml`) is present.
Shipping a 1.0.0 tag of a publicly readable repo with no license means the code is, by default, all-rights-reserved and nobody may legally use it. That makes this a hard 1.0 blocker rather than a nicety.
## Options
1. **MIT** — permissive, shortest, the most common choice for small Go daemons, and consistent with how µPaaS is described in `REPO_POLICIES.md` ("µPaaS is an MIT-licensed Go web application by @sneak..."). Maximum adoption, no copyleft obligations on downstream users.
2. **GPL (v3)** — copyleft; downstream modifications that are distributed must also be GPL. Appropriate if you want redistributed forks of a monitoring daemon to stay open.
3. **WTFPL** — maximally permissive, no warranty disclaimer. Note it lacks the explicit warranty/liability disclaimer MIT carries, which is a real (if small) consideration for a network-facing daemon.
## Recommendation
**MIT.** It matches the precedent set by µPaaS in your own policy document, it carries the warranty disclaimer that WTFPL omits, and dnswatcher is infrastructure tooling where permissive licensing maximises usefulness with no obvious downside. It is also the option that requires no further thought if you later publish this anywhere.
## Definition of done (once you answer)
1. A `LICENSE` file in the repo root containing the verbatim, unmodified text of the chosen license, with the copyright line reading the current year and your name/handle as you want it to appear.
2. The README "License" section replaced — the "has not yet been chosen" sentence removed and replaced with a statement naming the license.
3. The README first line updated to include the license, per the Description requirement in `REPO_POLICIES.md` ("First line must include the project name, purpose, category ..., license, and author"). It currently reads "dnswatcher is a pre-1.0 Go daemon by @sneak that monitors..." with no license named.
4. `make check` green; `TODO.md` updated in the same commit.
This is a docs-only change, so once the license is chosen it skips adversarial review and goes straight to the merge gate.
**Reply with which license you want and I will dispatch it immediately.** I am not blocking on this — I am proceeding with the other 1.0 items in the meantime.
clawbot
added this to the 1.0 milestone 2026-08-09 03:37:20 +02:00
sneak
was assigned by clawbot2026-08-09 03:37:20 +02:00
DECIDED by sneak, 2026-08-09, as standing policy across all repos rather than a per-repo call:
add MIT to any public repo lacking a license. private repos with no license are all rights reserved.
So for this repo: if it is public, add MIT. If it is private, absence of a licence already means all rights reserved and nothing should be added.
Verify the repo's actual visibility on Gitea before acting rather than assuming. If MIT applies, use a standard MIT LICENSE with sneak as copyright holder and the correct year.
Unblocked; no further owner input needed here.
DECIDED by sneak, 2026-08-09, as standing policy across all repos rather than a per-repo call:
> add MIT to any public repo lacking a license. private repos with no license are all rights reserved.
So for this repo: if it is public, add MIT. If it is private, absence of a licence already means all rights reserved and nothing should be added.
Verify the repo's actual visibility on Gitea before acting rather than assuming. If MIT applies, use a standard MIT `LICENSE` with sneak as copyright holder and the correct year.
Unblocked; no further owner input needed here.
[manager] Resolved by org-wide policy, no further decision needed. The standing ruling is: any PUBLIC repo lacking a licence gets MIT; a PRIVATE repo with no licence is all-rights-reserved and needs nothing.
sneak/dnswatcher is public (verified against the Gitea repo record, private: false), so this is MIT. That matches the recommendation above, so the definition of done in the issue body stands unchanged.
Unassigning @sneak and queueing it as a docs-only unit.
**[manager] Resolved by org-wide policy, no further decision needed.** The standing ruling is: any PUBLIC repo lacking a licence gets MIT; a PRIVATE repo with no licence is all-rights-reserved and needs nothing.
`sneak/dnswatcher` is public (verified against the Gitea repo record, `private: false`), so this is MIT. That matches the recommendation above, so the definition of done in the issue body stands unchanged.
Unassigning @sneak and queueing it as a docs-only unit.
clawbot
changed title from DECISION NEEDED: choose a license and add the LICENSE file (1.0 blocker) to Add the MIT LICENSE file and README licence statement (1.0 blocker)2026-08-10 14:30:12 +02:00
sneak
was unassigned by clawbot2026-08-10 14:30:12 +02:00
clawbot
self-assigned this 2026-08-10 14:30:12 +02:00
Done, MIT, per the standing policy above. Landed on next as 168281a, accumulating in #136.
LICENSE at the repo root: canonical MIT text byte-for-byte, only the copyright line filled in (Copyright (c) 2026 sneak). No clauses added, removed, reworded, or reflowed.
README.md first line now reads "dnswatcher is an MIT-licensed, pre-1.0 Go daemon by @sneak that monitors...", satisfying the Description requirement.
README.md License section states MIT and points at the LICENSE file; the "has not yet been chosen" sentence is gone.
TODO.md updated in the same commit.
Verification: the licence text was not typed from memory. It was copied from a verbatim MIT template already on disk with only the copyright line edited (a diff against that template shows that one line and nothing else changed), then word-diffed against SPDX MIT.txt from spdx/license-list-data ignoring line wrapping and the placeholder — identical.
make fmt does not touch LICENSE and cannot: script/fmt runs gofmt -s -w . and goimports -w . only, with no prettier or markdown step in this repo, so no exclusion was needed.
make check green, exit 0 — tests executed rather than replayed (zero (cached) lines) and the Docker lint stage ran uncached (0 issues., 36.7s).
Done, MIT, per the standing policy above. Landed on `next` as `168281a`, accumulating in https://git.eeqj.de/sneak/dnswatcher/pulls/136.
- `LICENSE` at the repo root: canonical MIT text byte-for-byte, only the copyright line filled in (`Copyright (c) 2026 sneak`). No clauses added, removed, reworded, or reflowed.
- `README.md` first line now reads "dnswatcher is an MIT-licensed, pre-1.0 Go daemon by @sneak that monitors...", satisfying the Description requirement.
- `README.md` License section states MIT and points at the `LICENSE` file; the "has not yet been chosen" sentence is gone.
- `TODO.md` updated in the same commit.
Verification: the licence text was not typed from memory. It was copied from a verbatim MIT template already on disk with only the copyright line edited (a `diff` against that template shows that one line and nothing else changed), then word-diffed against SPDX `MIT.txt` from `spdx/license-list-data` ignoring line wrapping and the placeholder — identical.
`make fmt` does not touch `LICENSE` and cannot: `script/fmt` runs `gofmt -s -w .` and `goimports -w .` only, with no prettier or markdown step in this repo, so no exclusion was needed.
`make check` green, exit 0 — tests executed rather than replayed (zero `(cached)` lines) and the Docker lint stage ran uncached (`0 issues.`, 36.7s).
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.
@sneak — this one needs your decision; I cannot pick a license on your behalf.
Situation
There is no
LICENSEfile anywhere in the repository (find . -iname 'licen*'returns nothing).README.mdsays so explicitly:> License has not yet been chosen for this project. Pending decision by the author (MIT, GPL, or WTFPL).
REPO_POLICIES.mdlistsLICENSEunder "New repos must contain at minimum", and the README requirements section says: "License: MIT, GPL, or WTFPL. Ask the user for new projects. Include aLICENSEfile in the repo root and a License section in the README."It is also the only required-minimum file missing from this repo — everything else (
.editorconfig,.dockerignore,.gitea/workflows/check.yml, all twelvescript/entrypoints,Dockerfile,.golangci.yml) is present.Shipping a 1.0.0 tag of a publicly readable repo with no license means the code is, by default, all-rights-reserved and nobody may legally use it. That makes this a hard 1.0 blocker rather than a nicety.
Options
REPO_POLICIES.md("µPaaS is an MIT-licensed Go web application by @sneak..."). Maximum adoption, no copyleft obligations on downstream users.Recommendation
MIT. It matches the precedent set by µPaaS in your own policy document, it carries the warranty disclaimer that WTFPL omits, and dnswatcher is infrastructure tooling where permissive licensing maximises usefulness with no obvious downside. It is also the option that requires no further thought if you later publish this anywhere.
Definition of done (once you answer)
LICENSEfile in the repo root containing the verbatim, unmodified text of the chosen license, with the copyright line reading the current year and your name/handle as you want it to appear.REPO_POLICIES.md("First line must include the project name, purpose, category ..., license, and author"). It currently reads "dnswatcher is a pre-1.0 Go daemon by @sneak that monitors..." with no license named.make checkgreen;TODO.mdupdated in the same commit.This is a docs-only change, so once the license is chosen it skips adversarial review and goes straight to the merge gate.
Reply with which license you want and I will dispatch it immediately. I am not blocking on this — I am proceeding with the other 1.0 items in the meantime.
DECIDED by sneak, 2026-08-09, as standing policy across all repos rather than a per-repo call:
So for this repo: if it is public, add MIT. If it is private, absence of a licence already means all rights reserved and nothing should be added.
Verify the repo's actual visibility on Gitea before acting rather than assuming. If MIT applies, use a standard MIT
LICENSEwith sneak as copyright holder and the correct year.Unblocked; no further owner input needed here.
[manager] Resolved by org-wide policy, no further decision needed. The standing ruling is: any PUBLIC repo lacking a licence gets MIT; a PRIVATE repo with no licence is all-rights-reserved and needs nothing.
sneak/dnswatcheris public (verified against the Gitea repo record,private: false), so this is MIT. That matches the recommendation above, so the definition of done in the issue body stands unchanged.Unassigning @sneak and queueing it as a docs-only unit.
DECISION NEEDED: choose a license and add the LICENSE file (1.0 blocker)to Add the MIT LICENSE file and README licence statement (1.0 blocker)clawbot referenced this issue2026-08-10 16:05:20 +02:00
Done, MIT, per the standing policy above. Landed on
nextas168281a, accumulating in #136.LICENSEat the repo root: canonical MIT text byte-for-byte, only the copyright line filled in (Copyright (c) 2026 sneak). No clauses added, removed, reworded, or reflowed.README.mdfirst line now reads "dnswatcher is an MIT-licensed, pre-1.0 Go daemon by @sneak that monitors...", satisfying the Description requirement.README.mdLicense section states MIT and points at theLICENSEfile; the "has not yet been chosen" sentence is gone.TODO.mdupdated in the same commit.Verification: the licence text was not typed from memory. It was copied from a verbatim MIT template already on disk with only the copyright line edited (a
diffagainst that template shows that one line and nothing else changed), then word-diffed against SPDXMIT.txtfromspdx/license-list-dataignoring line wrapping and the placeholder — identical.make fmtdoes not touchLICENSEand cannot:script/fmtrunsgofmt -s -w .andgoimports -w .only, with no prettier or markdown step in this repo, so no exclusion was needed.make checkgreen, exit 0 — tests executed rather than replayed (zero(cached)lines) and the Docker lint stage ran uncached (0 issues., 36.7s).