Thank you for your interest in improving VAAS (Vision-Attention Anomaly Scoring).
- PyTorch must NOT be imported at import-time of public APIs
- Public entry points (e.g.
vaas.inference.pipelineand other modules imported by users) must remain importable without torch.
- Public entry points (e.g.
- PyTorch may be imported freely inside internal logic
- Internal functions, methods, and execution paths may require torch.
- Lazy-loading is a hard requirement, not a preference.
- Any change that modifies the public API or inference behavior must include at least one passing test demonstrating correctness.
- Changes and PR should be CI-safe. If a change breaks CI-safe imports, it will not be accepted.
VAAS uses uv for environment and dependency management.
Create and activate the development environment:
uv venv
source .venv/bin/activate
uv sync
uv pip install -e .Verify installation:
python -c "import vaas; print(vaas.__version__)"Run the full local workflow:
makeIndividual commands:
make format # code formatting (ruff)
make lint # linting (ruff)
make test-smoke # CI-safe tests (no torch)
make test-integration # local tests with torch
make build # build wheel + sdistFormatting and linting are enforced with ruff.
Before submitting any change, please ensure:
make format
make lintPre-commit hooks are required:
pre-commit install
pre-commit run --all-filesTests are passing:
make test-smokeIf your change affects inference behavior, also run:
make test-integrationNew features should include corresponding tests where applicable.
Before opening a PR:
- Tests pass locally
- Code is formatted and linted
- Changes are focused and minimal
- Documentation is updated if behavior changes
Open pull requests against the main branch.
When reporting a bug or issue, please include:
- Python version
- Operating system
- VAAS version
- Installation method (pip / editable / wheel)
- Steps to reproduce
- Full error traceback if available
Incomplete reports may be closed.
Notebook contributions are welcome and encouraged mostly around how you are using VAAS in your projects.
Towards notebook PR:
- Place under
examples/notebooks/<vaas version> - Must run top-to-bottom without manual edits
- No training code
- Lightweight runtime
- Prefer public or sample images
- Colab-friendly where possible
VAAS prioritizes stability, clarity, and reproducibility over rapid feature growth. Thank you for contributing.