doc: add a migration guide from v0.11 to v0.13

Aperta
#397 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
65/100
Tipo di issue
Documentazione
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
go
Ambito
documentation

Direzione di ricerca

Start with doc/migration-v2-to-v3.md and inspect the current API and generated-client changes described in issues #379 and #380. Write doc/migration-v0.11-to-v0.13.md covering the listed symbol mappings, lifecycle, call patterns, code generation, and downstream checklist; fix the broken link in the existing guide without otherwise changing it. Done when users can follow the guide to migrate and regenerate compatible code before the next tag.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

doc

Problem

Users of v0.11 have no guide to the API changes in v0.12 and in the next release.

  • v0.12 contains the API redesign: Config and NewConfig, typed call handles, the server and peer configuration, and the close function returned by NewConfig.
  • The next release adds the generated service clients (#379, #380): calls are methods on SClient (configuration calls) and SNodeClient (node calls), and the call functions and ConfigContext/NodeContext are gone.

doc/migration-v2-to-v3.md covers only the earlier QuorumSpec-to-iterator migration.
Its line 4 also links to issue-redesign-migration-guide.md, which does not exist.

Proposal

Write doc/migration-v0.11-to-v0.13.md, and keep the v2-to-v3 guide unchanged except for the broken link.
The guide should cover:

  • a table that maps old symbols and constructors to new ones;
  • cfg, err := NewConfig(...) plus defer cfg.Close() becomes cfg, closeFn, err := NewConfig(...) plus defer closeFn();
  • the server lifecycle and peer configuration (WithPeers, ServerContext, ConnectedClients);
  • typed call handles, lazy dispatch, and the rule that a terminal method is used once;
  • one-way calls: Send, Async, and Wait;
  • the generated clients: NewSClient(cfg), NewSNodeClient(node), and node calls that take the node as an argument;
  • regenerating code, and the GenVersion/MinVersion check that rejects old generated code;
  • a checklist for downstream repositories.

Write it before the next tag, so that the release notes can link to it.

Lingua principale
Go
Stelle
149
Fork
15
Merge medio
1g 7h
PR unite (30g)
46

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di relab/gorums

Tutte le issue di relab/gorums

Issue simili

Altre issue su Go

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.