From fab6ab4f2ed281b6dea3a1cf4de2716d314f82ee Mon Sep 17 00:00:00 2001 From: Lilleman auf Larv Date: Sun, 20 Sep 2026 23:55:23 +0200 Subject: [PATCH] Move the project to GitHub, where a stranger can file an issue and open a PR --- .github/workflows/test.yml | 8 ++++---- AGENTS.md | 13 ++++--------- README.md | 11 +++++++++-- cmd/fejkdata/main.go | 2 +- go.mod | 2 +- release-tooling/publish_release.py | 8 ++++---- todo.md | 6 +++--- 7 files changed, 26 insertions(+), 24 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 7569186..2ece4c7 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -51,7 +51,7 @@ jobs: run: docker build --build-arg GO_VERSION=1.22.12 . release: - name: Gitea release from CHANGELOG.md + name: Release from CHANGELOG.md needs: test if: github.event_name == 'push' runs-on: ubuntu-24.04 @@ -63,7 +63,7 @@ jobs: persist-credentials: false - run: python3 release-tooling/publish_release.py env: - GITEA_API_URL: ${{ github.api_url }} - GITEA_REPOSITORY: ${{ github.repository }} - GITEA_TOKEN: ${{ secrets.GITHUB_TOKEN }} + FORGE_API_URL: ${{ github.api_url }} + FORGE_REPOSITORY: ${{ github.repository }} + FORGE_TOKEN: ${{ secrets.GITHUB_TOKEN }} SHA: ${{ github.sha }} diff --git a/AGENTS.md b/AGENTS.md index e2b0b93..6cbd2a3 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -4,16 +4,11 @@ - Tests first, in their own commit; the implementation follows in the next. A re-pin of seeded output or of `testdata/shipped_shape.txt` is its own commit. - A change under `data/` or to the shape pin adds its `CHANGELOG.md` entry under `Unreleased` in the same PR, and so does a change to a flag, an exit code, an exported name, a fence, a builtin or the lowest Go; what is major is the README's Versioning table. - One-line commit messages: no ticket prefix, no repo name, no authorship trailers. -- Merges are fast-forward only, which `tea pr merge` cannot spell — every style it - offers fails with "is it still open?", as does a merge whose required checks are - still pending, so read the checks before believing the style is the problem. Use - `tea api /repos/{owner}/{repo}/pulls//merge -f Do=fast-forward-only`. -- Gitea queues Actions runs that `/repos/{owner}/{repo}/actions/tasks` does not - list, so an empty task list says nothing about whether CI ran; read - `/repos/{owner}/{repo}/commits//status`. +- GitHub is where the project lives, so `gh` is the tool: merges are fast-forward + only, `gh pr merge --rebase` where the branch is already on top of main. - README goal 2 is gated at 7.0 on the `comprehension-panel` skill, and below it - nothing else merges — no feature, no category, no data — bar a security fix and a - dependency bump. `todo.md` carries the round: the nine-seat findings run at depth 1, + nothing else merges — no feature, no category, no data — bar a security fix, a + dependency bump and the infrastructure the round itself runs on. `todo.md` carries the round: the nine-seat findings run at depth 1, a PR per item it names, then the run again, until the score passes. At or above 7.0 every pull request scores with the four-seat run and answers it in one run. No merge lowers the last score. diff --git a/README.md b/README.md index 32464e6..b9b8f25 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ it as a Go library or the CLI — no data on disk, no dependencies, and a seed m reproducible. ```sh -go install gitea.larvit.se/larvit/fejkdata/cmd/fejkdata@latest +go install github.com/larvit/fejkdata/cmd/fejkdata@latest fejkdata sv_SE.person # Sara Eriksson ``` @@ -262,7 +262,7 @@ Swedish region but `abbr` on a US one. ## Library ```sh -go get gitea.larvit.se/larvit/fejkdata # Go 1.22+ +go get github.com/larvit/fejkdata # Go 1.22+ ``` ```go @@ -854,6 +854,13 @@ the Development section below, and who ships a register the four above then draw by name. ## Decisions +- **GitHub is canonical, and the module path names it.** Goal 1 wants the usage the + tool earns and goal 2 expects extenders who did not write it; both need a stranger + to file an issue and open a pull request. Gitea has no anonymous issue, and no + cross-host pull request at all, so a contributor would need an account and a fork on + a personal instance. Valid while the project wants contribution from outside: the + workflow decided nothing, being portable already — `github.api_url` and + `secrets.GITHUB_TOKEN` resolve on either host, so only the names moved. - **Options and fields share one namespace.** `format`, `weight`, `repeat`, `separator`, `datatype` and `drawGroup` are reserved; every other key is a field. Nesting fields under a key, or prefixing options, would tax every template to guard against a diff --git a/cmd/fejkdata/main.go b/cmd/fejkdata/main.go index 327e5c3..4d39720 100644 --- a/cmd/fejkdata/main.go +++ b/cmd/fejkdata/main.go @@ -18,7 +18,7 @@ import ( "strconv" "strings" - "gitea.larvit.se/larvit/fejkdata" + "github.com/larvit/fejkdata" ) const usage = `Usage: fejkdata [flags] diff --git a/go.mod b/go.mod index d45362a..6b4bcce 100644 --- a/go.mod +++ b/go.mod @@ -1,3 +1,3 @@ -module gitea.larvit.se/larvit/fejkdata +module github.com/larvit/fejkdata go 1.22 diff --git a/release-tooling/publish_release.py b/release-tooling/publish_release.py index 313b84e..98cbf98 100644 --- a/release-tooling/publish_release.py +++ b/release-tooling/publish_release.py @@ -1,8 +1,8 @@ #!/usr/bin/env python3 -"""Publish the Gitea release that CHANGELOG.md's top heading names, tagging SHA. +"""Publish the release that CHANGELOG.md's top heading names, tagging SHA. A top heading of `[Unreleased]`, or a version already released, publishes nothing. -Env: GITEA_API_URL, GITEA_REPOSITORY (owner/repo), GITEA_TOKEN, SHA. +Env: FORGE_API_URL, FORGE_REPOSITORY (owner/repo), FORGE_TOKEN, SHA. """ import json @@ -17,9 +17,9 @@ HEADING = re.compile(r"^## \[([^\]]+)\].*?$\n?(.*?)(?=^## \[|\Z)", re.M | re.S) def request(path: str, data: dict | None = None): req = urllib.request.Request( - f"{os.environ['GITEA_API_URL']}/repos/{os.environ['GITEA_REPOSITORY']}/{path}", + f"{os.environ['FORGE_API_URL']}/repos/{os.environ['FORGE_REPOSITORY']}/{path}", data=json.dumps(data).encode() if data else None, - headers={"Authorization": f"token {os.environ['GITEA_TOKEN']}", "Content-Type": "application/json"}, + headers={"Authorization": f"token {os.environ['FORGE_TOKEN']}", "Content-Type": "application/json"}, ) with urllib.request.urlopen(req) as resp: return json.load(resp) diff --git a/todo.md b/todo.md index 76e2cce..3a813b5 100644 --- a/todo.md +++ b/todo.md @@ -173,9 +173,6 @@ by a `data-import/` script, as README goal 12 asks. ### Open questions to settle -- Decide where the module is found from, before goal 1's announcement: the import - path is `gitea.larvit.se/larvit/fejkdata`, a developer looking for a fake-data - library searches GitHub and pkg.go.dev, and a module path is a major to change. - Decide whether `data/misc`'s 33 flat files gain a level before v1.0.0: a folder is a path segment, so `misc/net/tld` is a rename a consumer pays for, and goal 13 promises the directory keeps growing. @@ -241,6 +238,9 @@ because pairing a street with its exact postnummer rewrites shipped rows. ## Not release-bound +- Make `gitea.larvit.se/larvit/fejkdata` a pull mirror of GitHub or retire it: + Gitea converts a repository to a mirror only by re-creating it, so until that runs + the copy there is a second owner of one history and goes stale from this commit. - Stop `/cache` collecting root-owned files, which today every command documented without `--user` leaves for the next `--user` one to trip over, and which the README answers with a chown a reader has to repeat. Put `--user` on all of them, or give the