Standardize go:generate for controller mocks + CI drift validation
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 62/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Tranquilo
- Stack tecnológico
- github-actions, go
- Área
- build-system, ci-cd, testing
Línea de trabajo
Comienza inspeccionando los paquetes de controladores listados, internal/windows/mock, internal/gcs/mock y cmd/containerd-shim-lcow-v2/service en busca de directivas existentes para la generación de mocks. Lee .github/workflows/ci.yml y CONTRIBUTING.md, y luego ejecuta go generate ./... para identificar el diff de los archivos generados. Se considera terminado cuando cada paquete listado tiene una directiva en un archivo de pruebas, un clon nuevo permanece limpio, CI detecta las desviaciones y el flujo de trabajo de regeneración está documentado.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Background
Per @rawahars's review on #2647: the go:generate directive should reside in the test file, and we should validate generated mocks in CI.
Goals
- Add a
//go:generatedirective (in a TEST file) for each controller that has mocks. - Add CI validation that runs
go generate ./...and fails if there is any diff against the committed mock files. This catches mock drift when interfaces change but mocks are not regenerated.
Affected packages
internal/controller/device/scsi/internal/controller/device/plan9/internal/controller/device/vpci/internal/controller/network/internal/controller/vm/internal/windows/(mock atinternal/windows/mock/)internal/gcs/(GuestDefinedCapabilitiesmock atinternal/gcs/mock/)cmd/containerd-shim-lcow-v2/service/
Future controllers should follow the same convention.
Suggested CI step
Extend an existing lint job in .github/workflows/ci.yml:
- name: Verify generated mocks are up to date
run: |
go generate ./...
git diff --exit-code -- '*/mocks/*.go' '*/mock/*.go'
Run on windows-latest so build tags resolve correctly.
Acceptance criteria
- Each listed package has a
//go:generatedirective in a test file -
go generate ./...produces no diff against committed mocks on a fresh clone - CI fails if a contributor changes an interface without regenerating
- CONTRIBUTING.md (or equivalent) documents the regeneration workflow
Notes
Discussed in #2647 (review on internal/controller/network/network_lcow.go).
- Lenguaje dominante
- Go
- Estrellas
- 694
- Forks
- 304
- Merge medio
- 1 d 19 h
- PR fusionados (30 d)
- 28
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
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 microsoft/hcsshim
-
Stdin handle required to avoid conpty race condition upon WCOW container startup with terminal Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 42/100
-
Dificultad 4/5 3-5 días Aptitud para principiantes 52/100
-
Dificultad 3/5 1-2 días Aptitud para principiantes 68/100
-
Dificultad 4/5 3-5 días Aptitud para principiantes 58/100
Todos los issues de microsoft/hcsshim
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 84/100
-
enhancement needs triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
-
kind/cleanup
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
kubernetes-sigs/kueue#15947 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
sympozium-ai/sympozium#627 ·