Summary of the feature request
Consolidate package level noxfile.py file contents into a single global file at the monorepo root level.
Current State: 30 packages handwritten or hybrid packages define their own noxfile.py.
Similarity Profile: Average similarity is 33.4%, but this is due to package names and line counts ranging from 186 to 1085.
Why it's a prime candidate: Although the files appear diverse, the actual logic for standard nox sessions (lint, blacken, mypy, docs, docfx) is heavily duplicated boilerplate generated from common Jinja templates (e.g., gapic/templates/noxfile.py.j2).
Recommendation:
Create a shared nox_helpers.py utility module in the project root containing standard session definitions.
Refactor local per-package noxfile.py files to import and call these shared utilities, passing only package-specific variables (like package path and test requirements).
This can reduce each local noxfile from ~565 lines to under 30 lines.
Summary of the feature request
Consolidate package level
noxfile.pyfile contents into a single global file at the monorepo root level.Current State: 30 packages handwritten or hybrid packages define their own noxfile.py.
Similarity Profile: Average similarity is 33.4%, but this is due to package names and line counts ranging from 186 to 1085.
Why it's a prime candidate: Although the files appear diverse, the actual logic for standard nox sessions (
lint,blacken,mypy,docs,docfx) is heavily duplicated boilerplate generated from common Jinja templates (e.g.,gapic/templates/noxfile.py.j2).Recommendation:
Create a shared
nox_helpers.pyutility module in the project root containing standard session definitions.Refactor local per-package noxfile.py files to import and call these shared utilities, passing only package-specific variables (like package path and test requirements).
This can reduce each local noxfile from ~565 lines to under 30 lines.