Repository navigation
Publish the Go reference implementation through pkg.go.dev #135
Copy link
Copy link
Open
Labels
enhancementNew feature or requestNew feature or request
Description
Parent: #129
Publish reference-implementations/go as module tomlschema.org/go version v1.0.0-rc.2, distributed by the public Go module proxy and documented on pkg.go.dev. Go publication is tag- and domain-driven; there is no registry upload credential.
Maintainer setup — required before release
- Restore reliable public DNS, HTTPS, and hosting for
tomlschema.org; the domain was not reachable during planning on 2026-08-19. - Confirm who owns DNS and web deployment and record a backup maintainer.
- Use the agreed vanity module path
tomlschema.org/goand keep the implementation in the monorepo subdirectoryreference-implementations/go. - Serve
?go-get=1metadata fortomlschema.org/gothat maps tohttps://github.com/brunoborges/toml-schemaand identifiesreference-implementations/goas the module subdirectory using the Go version supported by this project. Addgo-sourcemetadata if needed for pkg.go.dev source links. - If the hosting platform cannot express the monorepo subdirectory mapping, choose one explicit alternative before implementation: change the public module path to a directly discoverable GitHub subdirectory path, move/split the module, or use a supported module-proxy mapping. Do not tag until
go list -msucceeds through the vanity URL.
Repository and site implementation — after the path decision
- Add the vanity metadata endpoint and an automated check that fetches
https://tomlschema.org/go?go-get=1and validates the module prefix, VCS/repository, and subdirectory fields. - Keep
module tomlschema.org/goingo.modif the approved vanity configuration resolves correctly. - Verify the package comment in
doc.gois suitable as the pkg.go.dev synopsis; add canonical documentation/repository links if pkg.go.dev cannot infer them. - Add a release check/workflow for the exact monorepo tag form
reference-implementations/go/v1.0.0-rc.2. The workflow must reject tags whose version or prefix is malformed, run tests, and execute a pre-publication module-resolution check without credentials. - Document that Go module versions are immutable, cannot be overwritten, and must be retracted through a later
go.modversion if defective. - Update the Go README and
REFERENCE_IMPLEMENTATIONS.mdwithgo get tomlschema.org/go@v1.0.0-rc.2, pkg.go.dev link, tag format, and artifact-vs-language version explanation.
Execution plan
- Verify the live vanity endpoint from outside the project and run
GOPROXY=direct go list -m -json tomlschema.org/go@<reviewed-commit>or an equivalent non-tagged discovery probe. - Run
go -C reference-implementations/go test ./...andgo vet ./...if the repository adopts that check. - Create the annotated tag
reference-implementations/go/v1.0.0-rc.2on the reviewed commit; do not use repository-widev1.0.0-rc.2. - Request the version through
https://proxy.golang.org/tomlschema.org/go/@v/v1.0.0-rc.2.infoorGOPROXY=https://proxy.golang.org go mod download tomlschema.org/go@v1.0.0-rc.2to seed indexing. - Verify the version appears on pkg.go.dev, with source/documentation links and the redistributable MIT license recognized.
- In a clean temporary module with an empty module cache, run
go get tomlschema.org/go@v1.0.0-rc.2, compile a minimal validation example, and inspectgo list -m -jsonto confirm the expected version and origin.
Acceptance criteria
-
tomlschema.org/go?go-get=1is reachable over valid HTTPS and correctly maps the monorepo module. - The exact
reference-implementations/go/v1.0.0-rc.2tag resolves throughproxy.golang.org. - pkg.go.dev renders package docs, source links, and license status.
- A clean consumer imports
tomlschema.org/gowithoutreplace, direct filesystem access, or a private proxy.
References: Go module paths, module directories in repositories, adding a package to pkg.go.dev.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request
Activity