Skip to content

build: adopt cleanporter tooling and windows correctness checks - #12

Merged
egparedes merged 9 commits into
mainfrom
cleanporter-org-tooling-review
Oct 8, 2026
Merged

egparedes merged 9 commits into
mainfrom
cleanporter-org-tooling-review

Conversation

@egparedes

@egparedes egparedes commented Oct 7, 2026 •

Copy link
Copy Markdown
Contributor

Adds five tooling improvements: canonical project/BSD license headers with a whole-tree checker and fixer, prek hooks, public-documentation drift checks, validated release builds with isolated wheel/sdist smoke tests, and Windows correctness CI on Python 3.12 and 3.14.

Header normalization preserves source bytes, standalone comments, leading blank lines, encoding declarations, shebangs, and line endings. Regression tests cover repeated fixes and both old and new header formats. Generated function source and golden ASTs are unchanged; the fuzzer explicitly writes UTF-8/LF source. Release tags remain manual, release notes remain generated, and building and publishing use separate permissions.

The branch incorporates current main, including the scalar-Inductor integer-minimum fix merged in #13. The original compilation regression remains enabled alongside its deterministic scalar-kernel case.

Validation: full local CI=1 make check, all four type checkers, header checks, and commit hooks passed with 96% coverage. make lowest, make docs, make smoke, installed wheel/sdist smoke tests, and commit-subject checks were also verified during implementation. Compiler and golden AST comparisons confirm the header changes preserve their contents. Independent semantics reviews approved the scoped portability change and the runtime fix in #13.

Follow-up issues: #10 (scheduled real-world differential validation) and #11 (decreasing complexity limits). Neither is implemented here.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

One or more issues must be addressed before approval.

0 open findings

What changed in this PR

Adds repository-wide tooling for license headers, hooks, documentation checks, release validation, artifact smoke tests, and Windows CI.

Changes:

  • Replaces pre-commit with prek and adds canonical header enforcement.
  • Adds release metadata validation and isolated wheel/sdist smoke tests.
  • Adds portability tests, documentation drift checks, and Windows CI coverage.
File Description
uv.lock Updated as part of this pull request.
tests/​unit/​test_validate.py Updated as part of this pull request.
tests/​unit/​test_runtime.py Updated as part of this pull request.
tests/​unit/​test_optimize.py Updated as part of this pull request.
tests/​unit/​test_lower.py Updated as part of this pull request.
tests/​unit/​test_layering.py Updated as part of this pull request.
tests/​unit/​test_ir.py Updated as part of this pull request.
tests/​unit/​test_fuzz.py Updated as part of this pull request.
tests/​unit/​test_extract.py Updated as part of this pull request.
tests/​unit/​test_docstring.py Updated as part of this pull request.
tests/​unit/​test_codegen.py Updated as part of this pull request.
tests/​unit/​test_builtins.py Updated as part of this pull request.
tests/​test_release.py Updated as part of this pull request.
tests/​test_portability.py Updated as part of this pull request.
tests/​test_license_headers.py Updated as part of this pull request.
tests/​test_hooks.py Updated as part of this pull request.
tests/​test_docs.py Updated as part of this pull request.
tests/​test_agent_layout.py Updated as part of this pull request.
tests/​support.py Updated as part of this pull request.
tests/​perf/​test_speed_gate.py Updated as part of this pull request.
tests/​perf/​test_bench.py Updated as part of this pull request.
tests/​golden/​test_golden.py Updated as part of this pull request.
tests/​golden/​cases/​unary_ops.py Updated as part of this pull request.
tests/​golden/​cases/​ternary.py Updated as part of this pull request.
tests/​golden/​cases/​ssa_rebind.py Updated as part of this pull request.
tests/​golden/​cases/​reserved_param.py Updated as part of this pull request.
tests/​golden/​cases/​relu.py Updated as part of this pull request.
tests/​golden/​cases/​relu_with_else.py Updated as part of this pull request.
tests/​golden/​cases/​psi.py Updated as part of this pull request.
tests/​golden/​cases/​pow_op.py Updated as part of this pull request.
tests/​golden/​cases/​piecewise.py Updated as part of this pull request.
tests/​golden/​cases/​nested_loops.py Updated as part of this pull request.
tests/​golden/​cases/​nested_early_returns.py Updated as part of this pull request.
tests/​golden/​cases/​minmax.py Updated as part of this pull request.
tests/​golden/​cases/​merge_with_prior.py Updated as part of this pull request.
tests/​golden/​cases/​math_two_arg.py Updated as part of this pull request.
tests/​golden/​cases/​math_floor_ceil.py Updated as part of this pull request.
tests/​golden/​cases/​math_calls.py Updated as part of this pull request.
tests/​golden/​cases/​loop_with_branch.py Updated as part of this pull request.
tests/​golden/​cases/​loop_two_carried.py Updated as part of this pull request.
tests/​golden/​cases/​loop_start_stop_step.py Updated as part of this pull request.
tests/​golden/​cases/​loop_helper_caller.py Updated as part of this pull request.
tests/​golden/​cases/​loop_accumulate.py Updated as part of this pull request.
tests/​golden/​cases/​kwonly_defaults.py Updated as part of this pull request.
tests/​golden/​cases/​helper_outer.py Updated as part of this pull request.
tests/​golden/​cases/​from_import.py Updated as part of this pull request.
tests/​golden/​cases/​floor_mod_ops.py Updated as part of this pull request.
tests/​golden/​cases/​docstring_numpy.py Updated as part of this pull request.
tests/​golden/​cases/​docstring_numpy_notes.py Updated as part of this pull request.
tests/​golden/​cases/​docstring_google.py Updated as part of this pull request.
tests/​golden/​cases/​docstring_existing_notes.py Updated as part of this pull request.
tests/​golden/​cases/​cse_opportunity.py Updated as part of this pull request.
tests/​golden/​cases/​constants.py Updated as part of this pull request.
tests/​golden/​cases/​complex_expr.py Updated as part of this pull request.
tests/​golden/​cases/​compare_ops.py Updated as part of this pull request.
tests/​golden/​cases/​compare_chain.py Updated as part of this pull request.
tests/​golden/​cases/​closure_scalar.py Updated as part of this pull request.
tests/​golden/​cases/​closure_array.py Updated as part of this pull request.
tests/​golden/​cases/​clamp.py Updated as part of this pull request.
tests/​golden/​cases/​casts.py Updated as part of this pull request.
tests/​golden/​cases/​both_branches_assign.py Updated as part of this pull request.
tests/​golden/​cases/​boolop_numeric.py Updated as part of this pull request.
tests/​golden/​cases/​boolop_logical.py Updated as part of this pull request.
tests/​golden/​cases/​bitwise_ops.py Updated as part of this pull request.
tests/​golden/​cases/​arith_ops.py Updated as part of this pull request.
tests/​golden/​cases/​add.py Updated as part of this pull request.
tests/​golden/​cases/​add_pinned.py Updated as part of this pull request.
tests/​golden/​cases/​abs_round.py Updated as part of this pull request.
tests/​features/​test_verify.py Updated as part of this pull request.
tests/​features/​test_protect_domains.py Updated as part of this pull request.
tests/​features/​test_namespace_pin.py Updated as part of this pull request.
tests/​features/​test_fallback.py Updated as part of this pull request.
tests/​differential/​test_scalar_equivalence.py Updated as part of this pull request.
tests/​corpus.py Updated as part of this pull request.
tests/​conftest.py Updated as part of this pull request.
tests/​behavior/​test_public_api.py Updated as part of this pull request.
tests/​behavior/​test_name_allocation.py Updated as part of this pull request.
tests/​behavior/​test_memoization.py Updated as part of this pull request.
tests/​behavior/​test_loops.py Updated as part of this pull request.
tests/​behavior/​test_lambdas.py Updated as part of this pull request.
tests/​behavior/​test_inspectability.py Updated as part of this pull request.
tests/​behavior/​test_helpers.py Updated as part of this pull request.
tests/​behavior/​test_docstrings.py Updated as part of this pull request.
tests/​behavior/​test_divergences.py Updated as part of this pull request.
tests/​behavior/​test_cse.py Updated as part of this pull request.
tests/​behavior/​test_control_flow.py Updated as part of this pull request.
tests/​behavior/​test_closures.py Updated as part of this pull request.
tests/​behavior/​test_calls_math_casts.py Updated as part of this pull request.
tests/​behavior/​test_arithmetic_dtypes.py Updated as part of this pull request.
tests/​backends/​test_jax_torch_compilation.py Updated as part of this pull request.
tests/​backends/​test_array_api_strict.py Updated as part of this pull request.
src/​array_vectorize/​verify.py Updated as part of this pull request.
src/​array_vectorize/​runtime/​registry.py Updated as part of this pull request.
src/​array_vectorize/​runtime/​minmax.py Updated as part of this pull request.
src/​array_vectorize/​runtime/​dtype.py Updated as part of this pull request.
src/​array_vectorize/​runtime/​arith.py Updated as part of this pull request.
src/​array_vectorize/​runtime/​__init__.py Updated as part of this pull request.
src/​array_vectorize/​pipeline.py Updated as part of this pull request.
src/​array_vectorize/​optimize/​protect_domains.py Updated as part of this pull request.
src/​array_vectorize/​optimize/​dce.py Updated as part of this pull request.
src/​array_vectorize/​optimize/​cse.py Updated as part of this pull request.
src/​array_vectorize/​optimize/​constfold.py Updated as part of this pull request.
src/​array_vectorize/​optimize/​__init__.py Updated as part of this pull request.
src/​array_vectorize/​lower/​types.py Updated as part of this pull request.
src/​array_vectorize/​lower/​statements.py Updated as part of this pull request.
src/​array_vectorize/​lower/​sanitize.py Updated as part of this pull request.
src/​array_vectorize/​lower/​loops.py Updated as part of this pull request.
src/​array_vectorize/​lower/​kinds.py Updated as part of this pull request.
src/​array_vectorize/​lower/​helpers.py Updated as part of this pull request.
src/​array_vectorize/​lower/​expressions.py Updated as part of this pull request.
src/​array_vectorize/​lower/​env.py Updated as part of this pull request.
src/​array_vectorize/​lower/​__init__.py Updated as part of this pull request.
src/​array_vectorize/​ir/​walk.py Updated as part of this pull request.
src/​array_vectorize/​ir/​ssa.py Updated as part of this pull request.
src/​array_vectorize/​ir/​nodes.py Updated as part of this pull request.
src/​array_vectorize/​ir/​__init__.py Updated as part of this pull request.
src/​array_vectorize/​fuzz.py Updated as part of this pull request.
src/​array_vectorize/​frontend/​validate.py Updated as part of this pull request.
src/​array_vectorize/​frontend/​tables.py Updated as part of this pull request.
src/​array_vectorize/​frontend/​lambda_id.py Updated as part of this pull request.
src/​array_vectorize/​frontend/​info.py Updated as part of this pull request.
src/​array_vectorize/​frontend/​extract.py Updated as part of this pull request.
src/​array_vectorize/​frontend/​__init__.py Updated as part of this pull request.
src/​array_vectorize/​fallback.py Updated as part of this pull request.
src/​array_vectorize/​errors.py Updated as part of this pull request.
src/​array_vectorize/​emit.py Updated as part of this pull request.
src/​array_vectorize/​compat.py Updated as part of this pull request.
src/​array_vectorize/​codegen/​emitter.py Updated as part of this pull request.
src/​array_vectorize/​codegen/​docstring.py Updated as part of this pull request.
src/​array_vectorize/​codegen/​__init__.py Updated as part of this pull request.
src/​array_vectorize/​api.py Updated as part of this pull request.
src/​array_vectorize/​__init__.py Updated as part of this pull request.
scripts/​smoke.py Updated as part of this pull request.
scripts/​release.py Updated as part of this pull request.
scripts/​package_smoke.py Updated as part of this pull request.
scripts/​license_headers.py Updated as part of this pull request.
pyproject.toml Updated as part of this pull request.
Makefile Updated as part of this pull request.
examples/​notebooks/​03_semantics.py Updated as part of this pull request.
examples/​notebooks/​02_backends.py Updated as part of this pull request.
examples/​notebooks/​01_intro.py Updated as part of this pull request.
examples/​demo.py Updated as part of this pull request.
docs/​supported-subset.md Updated as part of this pull request.
docs/​development.md Updated as part of this pull request.
docs/​api.md Updated as part of this pull request.
AGENTS.md Updated as part of this pull request.
.pre-commit-config.yaml Updated as part of this pull request.
.license-header.txt Updated as part of this pull request.
.github/​workflows/​release.yml Updated as part of this pull request.
.github/​workflows/​ci.yml Updated as part of this pull request.
.gitattributes Updated as part of this pull request.
.claude/​hooks/​stop_gate.py Updated as part of this pull request.
.claude/​hooks/​format_python.py Updated as part of this pull request.

🧠 Review effort: Lite


Give feedback about Copilot approvals in this survey to enter a drawing for a $150 gift card.

@egparedes
egparedes marked this pull request as ready for review October 7, 2026 22:37
@egparedes
egparedes requested a lite review from Copilot October 7, 2026 22:37

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

One or more issues must be addressed before approval.

1 open finding

🧠 Review effort: Lite


Give feedback about Copilot approvals in this survey to enter a drawing for a $150 gift card.

Comment thread scripts/license_headers.py Outdated

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

One or more issues must be addressed before approval.

1 open finding
1 resolved since last review

🧠 Review effort: Lite


Give feedback about Copilot approvals in this survey to enter a drawing for a $150 gift card.

Comment thread scripts/license_headers.py Outdated
@egparedes
egparedes merged commit 0e4bb6b into main Oct 8, 2026
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants