ca9357a0
foundation: module, core domain, schema, spike-verified dolt interop
Phase 0 foundation for dolt.sr.ht (pure-Go Dolt hosting for SourceHut). Dependency pins: - core-go v0.0.0-20260520082310-fdb3662452dc: the production instance's submodule commit (fdb3662); must never be upgraded so token/config/crypto behavior matches the rest of the instance. - dolthub/dolt/go v0.40.5-0.20260626152440-45335d44ad79: pseudo-version at the commit tagged v2.1.10 (45335d44), matching the installed dolt CLI. The /go submodule's latest tag (v0.40.4, 2021) does not interop with a modern CLI; matching the CLI commit guarantees a common NBS format (Format_DOLT) and remotesapi proto. - gopkg.in/go-jose/go-jose.v2 v2.6.3: same JOSE version dolt's creds package signs EdDSA keypair JWTs with, avoiding a duplicate JOSE lib. - grpc v1.79.3, logrus v1.8.3, lib/pq v1.10.9, chi/v5 v5.3.1, brant v0.5.1. Contents: - core/ pure domain: models, ValidateName/ParseRepoPath, the access matrix (Allowed + NotFoundForPrivate), full table-driven tests. - schema.sql + migrations/0001_initial.sql (brant format). - config.example.ini, contrib/dolt.sr.ht.conf (nginx), Makefile, scss/main.scss, static/logo.svg, README, .gitignore. - internal/smoke: throwaway import-and-build check (deleted in Phase 3). Spike (storage/spike_test.go, tag `spike`): bare NBS store via WriteEmptyRepo, served by remotesrv on an ephemeral single port, round-tripped through the real dolt CLI v2.1.10 (clone -> insert -> commit -> push -> re-clone -> verify rows). Green, no version juggling needed beyond selecting the v2.1.10 commit. FS must be rooted at the repos dir (LocalFilesysWithWorkingDir) so sealed chunk-URL prefixes are clean relatives. Build note: dolt pulls go-icu-regex (CGO), which needs ICU4C headers; on this Mac set CGO_CPPFLAGS/CGO_LDFLAGS to icu4c@78 (documented in README).
Eugene Blikh <bigbes@gmail.com> — 2026-07-18 17:23:01 UTC
Commit ca9357a0d245b7f8ce3256f9f4524f83925a031e —
view raw patch
| File | Status | + | − |
|---|---|---|---|
.gitignore
|
A | +11 | |
Makefile
|
A | +85 | |
README.md
|
A | +117 | |
config.example.ini
|
A | +53 | |
contrib/dolt.sr.ht.conf
|
A | +64 | |
core/access.go
|
A | +85 | |
core/access_test.go
|
A | +142 | |
core/models.go
|
A | +85 | |
core/names.go
|
A | +68 | |
core/names_test.go
|
A | +93 | |
go.mod
|
A | +160 | |
go.sum
|
A | +515 | |
internal/smoke/smoke.go
|
A | +59 | |
migrations/0001_initial.sql
|
A | +73 | |
schema.sql
|
A | +70 | |
scss/main.scss
|
A | +26 | |
static/logo.svg
|
A | +14 | |
storage/spike_test.go
|
A | +220 |