A markdown file in the repository, rendered.

barerepo / server / PUNCHLIST.md
rendered
log files threads runs releases config jump to file t

Punchlist

Work remaining before this deploys and goes public. One line per item. An item is done when the check in its last column passes.

Sizes are S under an hour, M a few hours, L most of a day.

A. Blocks open sourcing

Item Where Done when Size
[x] A1 Pick a license you the name of a license, written down
[x] A2 Add LICENSE to all four repos server, cli, runner, book ls LICENSE succeeds in each
[x] A3 Name the copyright holder the four LICENSE files the holder line is filled in, not a placeholder

MIT, copyright BareRepo, in all four repositories.

B. Rename the product in the product

The book and the binaries say barerepo. The running program still says forge in 62 places, and one of them names a command that no longer exists.

Item Where Done when Size
[x] B1 Fix the wrong command name internal/httpd/accounts.go:241 says "run forge auth again" it says br auth
[x] B2 Page titles and brand web.go 12, accounts.go 5, atom.go 1 no forge · prefix remains
[x] B3 Templates 14 files under internal/httpd/templates/, 35 hits grep -ric forge templates/ returns only .forge/ paths
[x] B4 Workflow messages internal/workflow/workflow.go 15, matrix.go 1 decline and skip messages say barerepo
[x] B5 Startup and hook errors cmd/barerepo/commands.go 3, hook.go 2, blobs.go 1, sshx/command.go 1 "forge is ready" says barerepo
[x] B6 Update the tests that assert the old word 13 files, listed at the bottom full suite green

Do not touch these while renaming. The code depends on the exact strings: barerepo-auth, barerepo-signup, .barerepo/config, /etc/forge/barerepo.toml, /var/lib/barerepo, barerepo_session.

C. Blocks deploying

barerepo.com is live on v4 and v6. C4 is the only one left here.

Item Where Done when Size
[x] C1 Change the git identity the server commits under internal/gitx/gitx.go:86-89, currently forge@localhost a note written by the server is authored by barerepo
[x] C2 Handle SIGTERM cmd/barerepo/commands.go, the serve command a push in flight finishes, or is refused cleanly, when the process is asked to stop
[x] C3 Ship a systemd unit new contrib/barerepo.service systemctl start barerepo works from a fresh install
[ ] C4 Write the install steps server README or docs/INSTALL.md someone who has never seen this can go from tarball to running

C2 is the one with teeth. Nothing catches SIGTERM today, so a deploy during a push kills it after the objects are written and before the ref moves.

D. Cleanup before either

Item Where Done when Size
[ ] D1 Decide allow_lfs: build 20.3 or delete the key internal/config/config.go:61 the key has a reader, or no longer exists
[ ] D2 Decide artifact_retain_days the same way config.go, retention same
[x] D3 One go version across the three modules all three say 1.24, which is what the cross repo instructions tell people to write all three agree
[ ] D4 Add CI all four repos a push runs the suite
[ ] D5 Fix or quarantine TestBudget e2e/budget_test.go the suite is green twice in a row under load

E. Written down but never built

Item Where Done when Size
[ ] E1 LFS, or say it is refused book 20.3 built, or the chapter says not built and allow_lfs is gone
[ ] E2 Account rename, or cut it book 21.2, no route and no CLI exist built, or the chapter is cut

Checked and fine

No real secrets are committed. rt_live_7Kq2mXe in the mockups and the book is an eight character illustration, not a token. Git is always invoked with an argument array and never a shell. All three panic calls are startup time on constants. It cross compiles for linux/arm64. barerepo init works from nothing.

Suggested order

A1 and A2 first, because they are cheap and nothing can be public without them. Then C1, since every commit the server makes carries the wrong identity into history forever and that cannot be fixed later. Then B, in one pass, so the tests move once. C2 before you put it on a machine you restart.

Tests that assert the old word

internal/httpd/install_test.go, internal/httpd/view_test.go, internal/workflow/workflow_test.go, internal/store/store_test.go, e2e/security_test.go, e2e/runner_setup_test.go, e2e/signin_test.go, e2e/search_test.go, e2e/crawl_test.go, e2e/portability_test.go, e2e/feeds_test.go, e2e/notespush_test.go, e2e/copy_test.go

source · rawbarerepo 0.1.0