Skip to content

Public API and compatibility policy

Supported import boundary

Names listed in culvert_solver.__all__ and documented across the API reference are the package's public Python surface. Import those names from culvert_solver; direct imports from package submodules are not a compatibility promise.

The package version is available as culvert_solver.__version__ and comes from the installed distribution metadata. A source checkout imported before installation reports 0+unknown rather than guessing a release version.

Alpha stability

The calendar-versioned package is still alpha software. Public names are intentional, but hydraulic behaviour marked provisional may change when stronger primary evidence or validation requires a correction. A change that can safely preserve the old interface should use a deprecation notice for at least one packaged version. Incorrect or unsafe engineering behaviour may be removed immediately and will be called out in the changelog and release notes.

Adding a new optional field or public name is normally compatible. Renaming or removing a public name, changing units, changing default coefficient selection, or changing the meaning of a result field is a compatibility change and must be documented explicitly.

Version and release records

pyproject.toml is the version authority. User-visible changes are summarised in the changelog, while version-specific evidence and limitations are retained in the maintained release notes.