Skip to content

Restructure (what changed)

This page summarizes the executed codebase restructure work that landed alongside the Release 1 foundations.

The goal is contributor clarity: where things live, what the canonical build/test workflows are, and which tooling prevents drift.

What changed

  • Developer handbook exists and is canonical: the repo now has a dedicated documentation/dev/ section covering build, bindings, testing, and hygiene.
  • Python internals are modularized: implementation code lives under python/pycauset/_internal/, while the public surface remains pycauset.*.
  • Bindings are modularized: src/bindings.cpp is a thin entrypoint and binding logic is split across src/bindings/* by subsystem.
  • Drift prevention tooling exists: tools/check_native_exports.py helps catch mismatches between Python expectations and native exports.

How to navigate the codebase now

  • Python public facade: python/pycauset/__init__.py
  • Python implementation modules: python/pycauset/_internal/
  • Native bindings: src/bindings/
  • Native core and compute: src/ and include/pycauset/

See Codebase Structure for the canonical map.

Build and test are documented workflows

The documented source-of-truth build workflow is pip/scikit-build-core.

See:

Approval gate note

Some additional restructure work was intentionally deferred behind an explicit approval gate. The execution record and remaining proposals live in:

See also