Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

otb-airflow-triggers

Introduction

This repository contains custom openthebox Airflow triggers for the openthebox Airflow repository.

The triggers must be available to the Airflow triggerer service as well as the worker pods. They therefore need a separate package that each service can install independently. Code available only in worker pods cannot run in the triggerer service.

Dependencies

The dependencies must target the same versions as those in the airflow-dag repository. Keep the versions in pyproject.toml aligned with that repository when dependencies change. This includes Airflow and the Amazon provider. The Amazon provider includes its aiobotocore extra for asynchronous AWS calls.

Local development

Use Python 3.12 or later. Run these commands from the project root to create and activate a virtual environment. Install the package with its development dependencies.

python3.12 -m venv venv
source venv/bin/activate
python -m pip install -e '.[dev]'

Run these checks from the project root.

venv/bin/ruff check .
venv/bin/ruff format --check .
venv/bin/mypy src/ tests/
venv/bin/bandit -r src/
venv/bin/coverage run -m pytest
venv/bin/coverage report

Build

The package version comes from Git tags, such as v0.1.0. Commits after a release tag produce a development version. Git hash suffixes are omitted so that public package indexes accept development versions. The generated version file is included in the source archive.

Build the wheel and source archive.

venv/bin/python -m build
venv/bin/python -m twine check --strict dist/*

The build writes the wheel and source archive to dist/. Install the package in each Airflow environment that imports its triggers. This includes the worker pods and the triggerer service.

GitHub workflows

Pull requests into main run the quality checks in ci.yml. The checks cover tests, coverage, lint rules, formatting, and types. They also check dependency compatibility, security issues with Bandit, and package metadata. The checks run with Python 3.12.

Publishing a GitHub release starts release.yml. It checks the release tag, builds the package, and publishes it to PyPI. It then attaches the wheel and source archive to the existing GitHub release. The package version must match the tag and the GitHub pre-release setting. For example, tag v0.1.0rc1 must have the pre-release setting enabled.

The Publish release candidate workflow supports manual publishing from a branch or tag. It runs the same quality checks and builds the exact commit that passed them. It publishes a release candidate to PyPI or TestPyPI. It does not create a GitHub release or attach files to a release. Workflow artifacts transfer distributions between jobs and expire after one day.

Publishing setup

Create the pypi and testpypi environments in the GitHub repository settings. Configure these Trusted Publishers for the otb-airflow-triggers project. Use owner openthebox and repository airflow-triggers for each publisher.

Package index Workflow file GitHub environment
PyPI release.yml pypi
PyPI publish-candidate.yml pypi
TestPyPI publish-candidate.yml testpypi

Trusted Publishing uses GitHub's identity token and does not need stored PyPI API tokens.

Manual publishing

The workflow must exist on the default branch before GitHub makes manual runs available.

  1. Open the repository's Actions page.
  2. Select Publish release candidate.
  3. Select Run workflow.
  4. Select the branch or tag under Use workflow from.
  5. Select pypi or testpypi in target.
  6. Start the workflow.

The version comes from hatch-vcs and the selected commit's Git history. For example, commits after v0.1.0 produce a version such as 0.1.1.dev7. A tag such as v0.1.1rc1 produces 0.1.1rc1. Manual publishing requires a pre-release version and rejects final-release tags. Each package index accepts a version only once. Select a later commit or a new pre-release tag for another upload.

Metadata

Release files for otb-airflow-triggers 0.1.dev18

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for otb-airflow-triggers 0.1.dev18
File Size Uploaded
otb_airflow_triggers-0.1.dev18.tar.gz 5.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for otb-airflow-triggers 0.1.dev18
File Interpreter ABI Platform
otb_airflow_triggers-0.1.dev18-py3-none-any.whl Python 3 none any Details

Total release size: 12.2 kB

Release files / otb_airflow_triggers-0.1.dev18.tar.gz

Download URL otb_airflow_triggers-0.1.dev18.tar.gz
Size 5.7 kB
Tags Source
SHA-256 checksum
How to use checksums
861b072147bbf8caf4ad4982f0432b05faacfe7fefb636b3de9a49a6cd2f5414
BLAKE2b-256 checksum
How to use checksums
147e4d7df26bc7da8f688a28af5df4987fec1dc514bd297d2a93e8937b10c79f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.

Transparency log

Release files / otb_airflow_triggers-0.1.dev18-py3-none-any.whl

Download URL otb_airflow_triggers-0.1.dev18-py3-none-any.whl
Size 6.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
dd1cdc210e6530cb51fe696fdc8152c46a364b5de7bb2b19c7ef33af7f9e83a1
BLAKE2b-256 checksum
How to use checksums
c575541cec5d8a55dae98d6855c09cf776377467252013b37999c0ca0464c14a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.

Transparency log

Release history Release notifications | RSS feed

1.0.0

2 release files

This release

0.1.dev18 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page