Skip to content

Development documentation

This section explains how pyvoro2 is structured, how planned work is approved and tracked, which parts of the public API are intended to remain stable, and why major design decisions were made. It is written for maintainers, contributors, reviewers, coding agents, and downstream package authors.

Where to look

Question Authoritative source
How do I use the current package? User guide and API reference
What mathematics does it implement? Theory
How does work move from proposal to release? Development workflow
What work is planned next? Development plans; the v0.7 plan is archived and the v0.8 cleanup plan is recorded but inactive
Which concrete APIs are stable, provisional, experimental, or compatibility-only? v0.7 API inventory and API lifecycle
How should repository documentation be written? Documentation conventions
How are modules and layers organized? Architecture
Why was a durable choice made? Decision records
What is planned over several releases? Roadmap
What concrete work is in progress? GitHub issues and milestones
How do I prepare a change? CONTRIBUTING.md
What changed historically? Changelog

Authority and status

The current source code and tests remain the source of truth for implemented behavior. User guides and reference pages describe that behavior for callers.

Accepted decision records and architecture documentation define durable boundaries. An active development plan defines approved release scope and gates. The v0.7 plan is Completed and archived; no plan is currently Active. The v0.8 draft remains inactive until its documented activation mechanics are satisfied. The roadmap describes version-level direction rather than current functionality.

Detailed progress belongs in GitHub issues. The API inventory is updated with public changes, and completed user-visible behavior is recorded under [Unreleased] in the changelog before being finalized at release.

User-facing lifecycle and migration decisions are summarized in Choosing an API and Migrating from v0.6.3 to v0.7.