From 168281ad60d488ab65bfc671ecd3816195a728c8 Mon Sep 17 00:00:00 2001 From: sneak Date: Mon, 10 Aug 2026 14:04:31 +0000 Subject: [PATCH] docs: add MIT LICENSE and state the licence in the README (closes #102) The repository had no licence file at all, which makes publicly readable code all-rights-reserved by default: nobody may legally use it. That is a 1.0 blocker rather than a nicety, and `LICENSE` was the only file from `REPO_POLICIES.md`'s required minimum still missing here. The choice is standing org policy rather than a per-repo call: any public repo lacking a licence gets MIT, while a private repo with no licence is already all-rights-reserved and needs nothing. `sneak/dnswatcher` is public, so MIT. `LICENSE` carries the canonical MIT text byte-for-byte with only the copyright line filled in; no clauses added, removed, reworded, or reflowed. `README.md`'s first line now names the licence, which the Description requirement in `REPO_POLICIES.md` calls for, and the License section states MIT and points at the file instead of recording the decision as pending. --- LICENSE | 21 +++++++++++++++++++++ README.md | 7 ++++--- TODO.md | 26 ++++++++++++++++++++------ 3 files changed, 45 insertions(+), 9 deletions(-) create mode 100644 LICENSE diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..34edefe --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 sneak + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md index 8a5e580..3f5d5bf 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # dnswatcher -dnswatcher is a pre-1.0 Go daemon by [@sneak](https://sneak.berlin) that monitors DNS records, TCP port availability, and TLS certificates, delivering real-time change notifications via Slack, Mattermost, and ntfy webhooks. +dnswatcher is an MIT-licensed, pre-1.0 Go daemon by [@sneak](https://sneak.berlin) that monitors DNS records, TCP port availability, and TLS certificates, delivering real-time change notifications via Slack, Mattermost, and ntfy webhooks. > ⚠️ Pre-1.0 software. APIs, configuration, and behavior may change without notice. @@ -486,8 +486,9 @@ Viper for configuration. ## License -License has not yet been chosen for this project. Pending decision by the -author (MIT, GPL, or WTFPL). +dnswatcher is released under the MIT License, Copyright (c) 2026 +[@sneak](https://sneak.berlin). See the [`LICENSE`](./LICENSE) file in the +repository root for the full text. ## Author diff --git a/TODO.md b/TODO.md index 97286e7..b44e872 100644 --- a/TODO.md +++ b/TODO.md @@ -18,13 +18,29 @@ iterative resolver implementation with hermetic mocked tests. # Next Step -Policy scaffold commit: add LICENSE, REPO_POLICIES.md, .editorconfig, -.dockerignore, and .gitea/workflows/check.yml, and add the missing -fmt-check, docker, and hooks targets to the Makefile. One commit, then -confirm make check still passes. +Add the README sections required by policy (Description, Getting Started, +Rationale, Design, TODO, License, Author) if any are still missing. # Completed Steps +- 2026-08-10: MIT `LICENSE` added at the repository root, closing the + last gap in `REPO_POLICIES.md`'s required-minimum file list and + removing the all-rights-reserved default that would otherwise have + shipped with a 1.0 tag. The licence choice is the standing org policy + (any public repo lacking a licence gets MIT; a private repo with no + licence is already all-rights-reserved), and this repo is public. The + file holds the canonical MIT text byte-for-byte with only the + copyright line filled in (`Copyright (c) 2026 sneak`); no clauses were + added, removed, or reflowed. `README.md`'s first line now names the + licence, as the Description requirement demands, and the License + section states MIT and points at the file instead of saying the choice + is pending. `make fmt` covers only Go sources (`gofmt -s`, + `goimports`), so it cannot reflow `LICENSE` +- 2026-08-10: the policy scaffold (`REPO_POLICIES.md`, `.editorconfig`, + `.dockerignore`, `.gitea/workflows/check.yml`, and the `fmt-check`, + `docker`, and hooks Makefile targets) is present; it landed piecemeal + across the scripts-to-rule-them-all and policy commits rather than as + the single commit this file once planned - 2026-08-10: Go's test cache disabled for `script/test` via `-count=1`, so every invocation actually executes. A cached pass replays an earlier run's output without querying DNS at all, which in this repo @@ -90,8 +106,6 @@ confirm make check still passes. Compliance: -- Add README sections required by policy (Description, Getting Started, - Rationale, Design, TODO, License, Author) if any are missing - Pin Dockerfile base images by sha256 and ensure the Docker build runs make check