Sign in

Search issue titles and bodies, change requests and comments. Private repositories you cannot read are not included.

vole
Clone

Read only, no credentials:

https://rodent.software/vole.git

Write over SSH with a registered key:

git clone ssh://git@rodent.software:2222/vole.git

A free and open-source forge that lives in your Git repo.

Docs: rewrite the README and organize the guides

520470e19cd906bd6fff987e2d132d793ce56486 · Keenan Nemetz · 16d ago · parent c5902451

Docs: rewrite the README and organize the guides

Replace the long README with a landing page, split feature details into focused guides, and remove the roadmap and spike notes. Update comments that referenced them.

docs/spikes/README.md −37

@@ -1,37 +0,0 @@
1 # Spikes
2
3 Throwaway experiments that settle a question before the design depends on it.
4 Each has its own `main.go` and a README with method, measurements, and the
5 decision it produced. Nothing here ships; the code exists to be re-run.
6
7 | Spike | Question | Verdict |
8 |---|---|---|
9 | [ref-cas](ref-cas/README.md) | Can metadata be commits on sidecar refs, and at what rate? | Yes. Sharded + batched: 6,966/s at 2k entities, 25,637/s at 20k. A single ref is 30/s and decays. |
10 | [smart-http](smart-http/README.md) | Is `git http-backend` as a subprocess correct and fast enough? | Yes. Hook messages propagate, aborts are clean. 1 GiB push peaks 1.13 GB RSS — needs a size cap. |
11 | [tree-serving](tree-serving/README.md) | Can sites be served straight from git trees? | Yes. Cold 1.2 ms p50 from git; 170k req/s warm with an 18 MiB cache. No export step needed. |
12 | [archive-streaming](archive-streaming/README.md) | Can release tarballs be generated per request instead of stored? | Yes. Real repo 54 ms plain / 221 ms gzipped, byte-identical across runs and clones. gzip is 14× slower than zstd and its level knob does nothing. |
13 | [issue-frontmatter](issue-frontmatter/README.md) | Is YAML frontmatter a cleaner on-disk format for issues than `meta.json` + `description.md`? | Yes. 25 → 10 changed lines over the same six edits; always-quoting the writer removes the title edge cases instead of policing them. Drop `updated`, which alone was 11 of the 21. |
14
15 Run any of them with:
16
17 ```sh
18 go run ./ref-cas -n 2000
19 go run ./smart-http -sizemb 1024
20 go run ./tree-serving -files 10000 -conc 16 -reqs 4000
21 go run ./archive-streaming -build-fixture /tmp/fix -files 20000 -dirs 200 -binarymb 2
22 go run ./archive-streaming -repo /tmp/fix -rev HEAD
23 go run ./issue-frontmatter -mode probe
24 go run ./issue-frontmatter -mode diffs
25 go run ./issue-frontmatter -mode diffs -no-updated
26 ```
27
28 Shared conventions worth keeping if these are ever rewritten:
29
30 - **Verify, don't trust the throughput number.** Every spike ends with a pass
31 that counts what actually landed in the repo. That check caught a harness bug
32 that silently dropped 83% of writes in ref-cas.
33 - **A scenario that can't fail is not a test.** Two smart-http scenarios
34 initially reused objects already on the server, so nothing transferred and the
35 numbers were meaningless. Push to a fresh repo when measuring transfer.
36 - **Label measured vs inferred.** The READMEs say which numbers came from a
37 counter and which are explanations.