Install uv
pip install uvSync dependencies
# Install all dependencies including dev dependencies
uv sync --all-groups
# Or install specific dependency groups
uv sync --group code-quality
uv sync --group testmake hooks
# or
uv run pre-commit installCode quality checks, unit tests, and integration tests (against dev) are performed on the creation of a PR, and subsequent pushes for that PR. Code quality checks, unit tests, and integration tests (against dev) are performed on a push to main. Integration tests are triggered whenever the e2e tests are triggered (environment will be dependent on e2e tests) Publishing a GitHub Release builds the package and publishes it to PyPI, and regenerates the API docs.
The SDK is published to PyPI as haystack-enterprise-sdk.
- Bump
versionunder[project]inpyproject.toml, runuv lock, and merge that tomain. - Publish a GitHub Release tagged
v<version>—v0.1.1for version0.1.1.
Publishing the release is the single human action that ships a version. It triggers
CI_pypi_release.yml, which checks the tag against pyproject.toml, builds the sdist and wheel,
installs the wheel into a throwaway environment to prove the entry point works, and uploads to PyPI via
trusted publishing.
To rehearse without shipping, run CI_pypi_release.yml manually (workflow_dispatch). That path
stamps a throwaway .devN version and uploads to TestPyPI; it can never reach PyPI.
Use v prefix for tags. For example, tag v0.1.1 instead of 0.1.1.
Have a look at this README to get an overview of the software design.