Metadata-Version: 2.4
Name: BaySIL
Version: 1.0.2
Summary: Bayesian Sequential Inference Library
Author: Michael Ellis
Author-email: Michael Ellis <michaelellis003@gmail.com>
License-Expression: Apache-2.0
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Typing :: Typed
Requires-Python: >=3.12
Project-URL: Homepage, https://github.com/michaelellis003/BaySIL
Project-URL: Repository, https://github.com/michaelellis003/BaySIL
Project-URL: Issues, https://github.com/michaelellis003/BaySIL/issues
Project-URL: Documentation, https://michaelellis003.github.io/BaySIL/
Project-URL: Changelog, https://github.com/michaelellis003/BaySIL/blob/main/CHANGELOG.md
Description-Content-Type: text/markdown

# BaySIL

[![CI](https://github.com/michaelellis003/BaySIL/actions/workflows/ci.yml/badge.svg)](https://github.com/michaelellis003/BaySIL/actions/workflows/ci.yml)
[![PyPI](https://img.shields.io/pypi/v/BaySIL)](https://pypi.org/project/BaySIL/)
[![License](https://img.shields.io/github/license/michaelellis003/BaySIL)](LICENSE)

Bayesian Sequential Inference Library

## Installation

```bash
pip install baysil
```

Or with uv:

```bash
uv add baysil
```

## Requirements

- Python 3.12 or later
- [uv](https://docs.astral.sh/uv/) installed

## Contributing

Clone the repository and install dependencies:

```bash
git clone https://github.com/michaelellis003/BaySIL.git
cd BaySIL
uv sync
```

Install the pre-commit hooks:

```bash
uv run pre-commit install
uv run pre-commit install --hook-type commit-msg
uv run pre-commit install --hook-type pre-push
```

## Development

A `Makefile` is provided for common tasks:

```bash
make test        # lint + pytest
make lint        # ruff check, format check, license headers, ty
make format      # add license headers, ruff format, ruff fix
make license     # add missing license headers
make docs        # build documentation
make serve-docs  # serve documentation locally
make install     # uv sync
make clean       # git clean (preserves .venv)
```

## How releases work

Releases are cut deliberately. Merging to `main` runs CI only — nothing
is published.

To ship a version, run the **Release** workflow from the Actions tab. It
waits for maintainer approval before anything is computed, tagged, or
published. `python-semantic-release` then inspects the commits since the
last tag to determine the version:

- `fix: ...` produces a patch release
- `feat: ...` produces a minor release
- A `BREAKING CHANGE` footer or `!` suffix produces a major release

If nothing warrants a bump the run exits without releasing. Set the
`force` input to cut one anyway — useful for re-publishing after a failed
upload.

Documentation is deployed from the release tag, so the published docs
always describe the released version rather than `main`.

## License

Apache 2.0. See [LICENSE](LICENSE) for the full text.
