# Releasing `ennbo` (PyPI + conda)

## PyPI

Build artifacts:
```
rm -rf dist
python -m pip install -U build twine
python -m build
twine check dist/*
```

Upload:
```
twine upload dist/*
```

## conda (anaconda.org channel)

Build from the in-repo recipe:
```
conda install -c conda-forge conda-build anaconda-client
conda build conda/recipe
```

If a runtime dependency is not available on conda-forge, you must package and upload that dependency to your channel first, then rebuild `ennbo`.

Upload the resulting artifact:
```
anaconda upload <PATH_TO_CONDA_BLD>/noarch/ennbo-*.tar.bz2
```

## conda-forge (recommended for broad distribution)

The usual flow is:
- Publish to PyPI first.
- Open a PR to `conda-forge/staged-recipes` with a recipe that pulls the sdist from PyPI
  (i.e., `source: url:` + `sha256:` instead of `source: path:`).
- Once merged, conda-forge will create and maintain the feedstock for you.

## Optional dependencies

None. All runtime dependencies are required.


