Skip to content

Latest commit

History

History
52 lines (49 loc) 路 5.55 KB

File metadata and controls

52 lines (49 loc) 路 5.55 KB

Operational Excellence

We know you take quality and security as seriously as we do. That's why the Aignostics Python SDK is built following best practices and with full transparency. This includes (1) making the complete source code of the SDK available on GitHub, maintaining a (2) A-grade code quality with high test coverage in all releases, (3) achieving A-grade security with active scanning of dependencies, and (4) providing extensive documentation. Read more about how we handle security.

馃 This project was scaffolded using the template oe-python-template with copier, thereby applying the following toolchain:

  1. Linting with Ruff
  2. Static type checking with mypy and pyright
  3. Complete set of pre-commit hooks including detect-secrets and pygrep
  4. Unit and E2E testing with pytest including parallel test execution
  5. Matrix testing in multiple environments with nox
  6. Test coverage reported with Codecov and published as release artifact
  7. CI/CD pipeline automated with GitHub Actions with parallel and reusable workflows, including scheduled testing, release automation, and multiple reporting channels and formats
  8. CI/CD pipeline can be run locally with act
  9. Code quality and security checks with SonarQube and GitHub CodeQL
  10. Dependency monitoring and vulnerability scanning with pip-audit, trivy, Renovate, GitHub Dependabot and Ketryx
  11. Error monitoring and profiling with Sentry (optional)
  12. Logging and metrics with Logfire (optional)
  13. Prepared for uptime monitoring and scheduled tests with betterstack or alternatives
  14. Licenses of dependencies extracted with pip-licenses, matched with allow list, and published as release artifacts in CSV and JSON format for further compliance checks
  15. Generation of attributions from extracted licenses
  16. Software Bill of Materials (SBOM) generated in CycloneDX and SPDX formats with cyclonedx-python resp. trivy, published as release artifacts
  17. Version and release management with bump-my-version
  18. Changelog and release notes generated with git-cliff
  19. Documentation generated with Sphinx including reference documentation for the library, CLI, and API
  20. Documentation published to Read The Docs including generation of PDF and single page HTML versions
  21. Documentation including dynamic badges, setup instructions, contribution guide and security policy
  22. Interactive OpenAPI specification with Swagger
  23. Python package published to PyPI
  24. Multi-stage build of fat (all extras) and slim (no extras) multi-arch (arm64 and amd64) Docker images, running non-root within immutable container
  25. Docker images published to Docker.io and GitHub Container Registry with artifact attestations
  26. One-click development environments with Dev Containers and GitHub Codespaces
  27. Settings for use with VSCode
  28. Settings and custom instructions for use with GitHub Copilot
  29. Automated Pull Request Reviews with Claude Code
  30. ISO compliant Application Lifecycle Management (ALM) with Ketryx

See oe-python-template for how to bootstrap multi-headed applications with the template. Example code generated applies the modulith software architecture pattern with dependency injection, enabling auto-discovery of domain services, CLI commands, API operations and GUI pages.