Validation

Code validation ensures quality, consistency, and correctness before submitting contributions.

This guide defines language-neutral validation expectations. For Python command wrappers and toolchain specifics, see the Python validation guide.

Validation Outcomes

Project validation should cover the following outcomes:

  • Code Quality: Linting and static quality checks pass.

  • Static Analysis: Type and semantic checks pass where configured.

  • Automated Tests: Fast local tests and comprehensive suites both pass.

  • Documentation Quality: Documentation builds cleanly, including configured link and doctest checks.

  • Packaging/Distribution: Build and packaging steps pass for projects that publish artifacts.

Workflow

  1. During Development: Run the fastest test and lint checks available for quick feedback loops.

  2. Before Committing: Run language-specific quality and type checks.

  3. Before Pull Requests: Run the project’s comprehensive validation suite, including packaging and documentation checks where applicable.

Language-Specific Overlays

All required validation commands must pass before contributions can be accepted. If Git pre-commit and pre-push hooks are installed for a project, they should automatically enforce a portion of this workflow.