docs: add RELEASE.md with the Go module release process
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 55/100
- Tipo de issue
- Documentación
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- go
- Área
- documentation
Línea de trabajo
Start with the root README.md and CONTRIBUTING.md, then inspect CHANGELOG.md, go.mod, go.work, existing tags, and the related release documentation in backblaze-labs/b2-mcp. Draft RELEASE.md with the listed Go module release steps and link it from both project guides; verify commands in a real or scratch tag workflow. Done when maintainers can follow the documented process for the next tagged release.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Add a RELEASE.md at the repo root documenting how blazer is released as a Go module. It should be adapted from the release doc in backblaze-labs/b2-mcp, keeping the structure (changelog discipline, release gate, normal release, prerelease, rollback, deprecation, support policy) and replacing everything npm, GHCR and MCPB specific with Go module equivalents.
Context: blazer is at major version 0. The last tag before the current line was v0.7.2, the fix for #31 sat unreleased for months, a v0.8.0 tag now exists, and there are no GitHub Releases at all. A written process would have prevented the unreleased-fix gap.
Sections to include:
- Ownership: release owner and security/quality reviewer (names to be filled in by maintainers).
- Changelog discipline: every user-visible change goes under
[Unreleased]inCHANGELOG.mdusing Keep a Changelog headings (Added,Changed,Deprecated,Removed,Fixed,Security); promote to a dated version section only when tagging; no GitHub Release without a matching changelog section and tag. - Versioning rules: semver with a
vprefix; v0 and v1 module paths carry no suffix, a/vNsuffix is required only from v2 onward; v0 gives no compatibility guarantee but breaking changes should still be called out in the changelog; pseudo-versions are not releases. - Multi-module layout:
go.workincludes./bin/b2keys, which is a separate module, so it is tagged with a path prefix (bin/b2keys/vX.Y.Z) and must not be tagged by accident with the root tag. Document when it needs its own release and how itsrequireon the root module is updated first.go.workis for local development only and must not affect released modules. - Release gate (run from a clean, up-to-date default branch):
go mod tidy -diff,gofmt -l .empty,go build ./...,go vet ./...,go test -race ./..., the linter andgovulncheck ./...once the CI issues land, the live integration suite run with the standardB2_APPLICATION_KEY_ID,B2_APPLICATION_KEY,B2_MASTER_KEY_ID,B2_MASTER_KEYandB2_REGIONvariables, andapidifforgoreleaseagainst the previous tag to confirm the exported API changes match the version bump. - Normal release: update
CHANGELOG.mdand compare links, commit, create a signed tag (git tag -s vX.Y.Z -m vX.Y.Z), push the commit and let default-branch CI pass before pushing the tag, then create the GitHub Release from the tag with notes copied from the changelog. Never publish from a workstation without the gate; prefer a tag-triggered workflow once CI exists. - Module proxy propagation: after tagging, request the version from the proxy (
GOPROXY=https://proxy.golang.org go list -m github.com/Backblaze/[email protected]) and confirm it resolves on pkg.go.dev, because the proxy and checksum database cache versions permanently. - Tags are immutable: never delete, move or force-push a release tag, since
sum.golang.orgrecords the first hash it sees and a changed tag breaks every consumer with a checksum mismatch. Protectv*tags with a tag ruleset limited to release owners. - Prerelease: tags such as
v0.10.0-rc.1, same flow, validated withgo get github.com/Backblaze/[email protected]in a scratch module before advertising. - Rollback and bad releases: versions cannot be unpublished from the proxy. Add a
retractdirective (with a rationale comment) ingo.modand publish a higher fixed version; the retraction only takes effect once the new version is tagged and fetched. - Deprecation: mark a package or module with a
// Deprecated:paragraph in its doc comment, naming the replacement. - Support policy: only the latest minor line receives fixes; earlier releases are not patched in place; consumers such as restic are told to upgrade. Cross-link
SECURITY.mdfor vulnerability handling and the Go version support (minimumgodirective ingo.mod, and when it may be raised). - Breaking-change notes: how to document API removals or signature changes in release notes, with a migration table where useful.
- Post-release checks: pkg.go.dev shows the new version, the changelog compare link resolves, and downstream pinned consumers are notified for fixes they were waiting on.
Acceptance: RELEASE.md is merged, linked from README.md and CONTRIBUTING.md, every command in it has been run against a real or scratch tag, and the process is used for the next tagged release.
Related: #93 (zizmor), #92 (rename master to main; update the branch name in RELEASE.md accordingly), and the CI work that the tag-triggered release step depends on.
- Lenguaje dominante
- Go
- Estrellas
- 66
- Forks
- 18
- Merge medio
- 1 d 10 h
- PR fusionados (30 d)
- 132
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de Backblaze/blazer
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Los mantenedores suelen responder en 1 día
-
Bucket.Attrs never returns ReplicationConfig: replication configuration is write-onlyQuizá libre de nuevo Un pull request para esta issue se cerró sin fusionarse. Abiertobug
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 1 día
-
test: skip the fuzz non-vacuity guard when replaying a single seedPosiblemente ocupada @ffumero2003 la tomó hace 5 días. Abiertotesting
Backblaze/blazer#330 · 1 asignado ·
Los mantenedores suelen responder en 1 día
Todos los issues de Backblaze/blazer
Issues similares
-
needs-triage typo
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
llm-d-incubation/llm-d-scaling-manager#122 ·
Los mantenedores suelen responder en 1 día
-
good first issue severity: low tech-debt
Dificultad 2/5 Medio día Aptitud para principiantes 75/100
TMHSDigital/subenum#329 ·
Los mantenedores suelen responder en 1 día
-
[Bug] Backend summarize min() / max() panics when a field has no numeric valuesPosiblemente ocupada @weng5e la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 64/100
grafana/grafana-infinity-datasource#1832 ·
Los mantenedores suelen responder en 1 día
-
tech-debt
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
GillMacedo/godebugdiff#13 ·