Development

Install a source checkout

git clone https://github.com/nilson01/ashrink.git
cd ashrink
python -m pip install -e '.[dev,plot,table]'

Run the implementation checks from the repository root:

python -m ruff check src tests examples
python -m pytest tests
python -m build

Tests use committed numerical fixtures. They do not invoke R. To regenerate fixtures with the pinned R packages, follow reference checks. Those comparisons and analytic checks establish specific numerical behavior; they do not establish statistical performance across repeated datasets.

Preview the documentation

The site uses MkDocs with search and MathJax for formulas. Install the documentation dependencies separately from the package:

python -m pip install mkdocs==1.6.1 pymdown-extensions==10.21.3
python -m mkdocs build --strict
python -m mkdocs serve

The build reads mkdocs.yml and the Markdown pages and assets under docs/. The MkDocs build copies the reference PDF. Its editable source is docs/manual/reference.md. To rebuild it, install Pandoc (or pypandoc_binary) and a TeX distribution with pdflatex, then run python tools/build_manual.py. Generated TeX is temporary.

Pull requests build the site. Pushes to main and manual runs on main also publish the built site through GitHub Pages when Pages is configured to use GitHub Actions. The documentation workflow does not rerun the package test suite.