Regenerate saved examples and test that compare() sets windowsOnly

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

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
50/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
go
Ambito
cli, testing

Direzione di ricerca

Start with make examples and the diff command in the issue, which compares examples/shop output against examples/shop-1.21-to-1.24.txt; examples/real/cobra.txt needs the project cloned, per examples/README.md. For the test gap, read compare() and isWindowsOnly in plugin/scripts, then TestWindowsOnly, which sets WindowsOnly by hand. Done means the regenerated examples match, a test through compare() or tests/ fails when the assignment is removed, and the three polish points are settled.

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

Descrizione

Follow-up from #7. The Windows-only mark works; these are small cleanups.

  1. Saved examples are out of date. To reproduce: go run ./plugin/scripts --from 1.21 --to 1.24 examples/shop | diff examples/shop-1.21-to-1.24.txt - differs at lines 20 and 25, which lack (Windows only). Run make examples. examples/real/cobra.txt lists the same settings, so update it too (it needs the project cloned, see examples/README.md).

  2. No test checks that compare() sets the flag. TestWindowsOnly sets WindowsOnly: true by hand. To reproduce: delete c.WindowsOnly = isWindowsOnly(k) from compare() and run go test -count=1 ./.... Both packages still pass, while the report loses the mark. Add a test through compare() or tests/ asserting that winsymlink gets windowsOnly: true and a non-win setting does not. Computing the mark from the name in one place, instead of storing it on Change, would also remove the chance of the two disagreeing.

  3. Output and JSON polish:

  • The "No binary imports the package, so no effect" section prints winsymlink (os) (Windows only), where the mark adds nothing. To reproduce: run the tool from 1.22 to 1.23 on a module whose only binary is an empty func main() {}.
  • windowsOnly uses omitempty while goCommand is always present, so the JSON key is absent for most changes. Decide whether to always emit it.
  • The field comment on WindowsOnly says "Linux services can skip", which does not hold for modules built for Windows. Reword it.
  • Windows-only settings still count as reaching binaries and still appear in the suggested go.mod pins. That is accurate for Windows builds, but consider saying in the report that Linux-only services can ignore those pins.
Lingua principale
Go
Stelle
0
Fork
3
Merge medio
6h 20m
PR unite (30g)
3

Preparare l'ambiente

Apri in Codespaces

Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.

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 GillMacedo/godebugdiff

Tutte le issue di GillMacedo/godebugdiff

Issue simili

Altre issue su Go

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.