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.