Skip to content

fix(pkg,ci): building package#492

Merged
Borda merged 15 commits into
developfrom
fix/build
Jul 8, 2026
Merged

fix(pkg,ci): building package#492
Borda merged 15 commits into
developfrom
fix/build

Conversation

@Borda

@Borda Borda commented Jul 8, 2026

Copy link
Copy Markdown
Member

This pull request introduces several significant improvements to the CI/CD workflows and demo scripts, focusing on enhanced automation for releases, better artifact management, and new demonstration utilities. The main changes include improved GitHub Actions triggers for more robust CI/CD, the addition of new demo scripts for tracker evaluation, and a migration from Hatchling to Setuptools for package building.

CI/CD Workflow Improvements:

  • Added push triggers for release/* and develop branches to all major workflows (ci-tests.yml, ci-integrations.yml, ci-build-docs.yml, build-package.yml), ensuring builds and tests are automatically run on direct pushes as well as pull requests. [1] [2] [3] [4]
  • Enhanced the publish-release.yml workflow to trigger on GitHub Release creation and to upload artifacts as GitHub Release assets. The job now conditionally runs steps based on the event type, ensuring correct asset publication. [1] [2] [3]
  • Added a step to list the contents of the dist/ directory after building packages, aiding in debugging and artifact verification.

Demo Scripts:

  • Added demo/rfdetr_all_trackers.py, a comprehensive script to run multiple trackers on a video, save annotated outputs, and export detection/tracking results to JSON. This script facilitates benchmarking and visual comparison of different tracking algorithms.
  • Added demo/compose_tracker_grid.py, a utility to compose the output videos from different trackers into a single grid video for easy visual comparison.

Packaging System Migration:

  • Migrated from Hatchling to Setuptools for building the package, updating pyproject.toml to use Setuptools configuration and package discovery. This improves compatibility and aligns with standard Python packaging practices.

These changes collectively improve the automation, usability, and maintainability of the project.


resolves #474

- Move sdist file selection into Hatch config so only source and top-level metadata ship.

- Remove legacy MANIFEST.in to keep packaging inputs lean and explicit.

---

Co-authored-by: Codex <codex@openai.com>
Borda and others added 2 commits July 8, 2026 19:16
- Replace Hatchling with setuptools package discovery for the src layout.

- Explicitly include py.typed while keeping package data disabled by default.

---

Co-authored-by: Codex <codex@openai.com>
- Add a demo that runs RF-DETR detections through every tracker and writes annotated videos plus JSON outputs.

- Add a helper script that composes tracker outputs into a labeled comparison grid video.

---

Co-authored-by: Codex <codex@openai.com>
@Borda Borda requested a review from Copilot July 8, 2026 17:19
@Borda Borda marked this pull request as ready for review July 8, 2026 17:20
@Borda Borda requested a review from SkalskiP as a code owner July 8, 2026 17:20

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the project’s packaging and CI/release automation to ensure distributable artifacts are built reliably (addressing the broken wheel contents reported in #474), and adds demo utilities to run/compare multiple trackers on a video.

Changes:

  • Switch build backend from Hatchling to Setuptools and configure src/ package discovery in pyproject.toml.
  • Expand GitHub Actions triggers (push to develop/release/*) and enhance the release workflow to upload built artifacts to GitHub Releases.
  • Add demo scripts to run RF-DETR + multiple trackers and to compose tracker output videos into a comparison grid.

Reviewed changes

Copilot reviewed 8 out of 9 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
pyproject.toml Migrates build backend to Setuptools and updates package discovery/data configuration to ship real source in wheels.
demo/rfdetr_all_trackers.py New demo to run multiple trackers, write annotated videos, and export detections/tracks to JSON.
demo/compose_tracker_grid.py New utility to compose tracker output videos into a grid for visual comparison.
.gitignore Ignores local/demo output directories and related artifacts.
.github/workflows/publish-release.yml Adds release trigger and a job to upload dist/* artifacts as GitHub Release assets.
.github/workflows/ci-tests.yml Adds push triggers for develop/release/*.
.github/workflows/ci-integrations.yml Adds push triggers for develop/release/*.
.github/workflows/ci-build-docs.yml Adds push triggers for develop/release/*.
.github/workflows/build-package.yml Adds push/PR triggers for develop/release/* and lists dist/ contents after building.

Comment thread pyproject.toml
Comment thread demo/rfdetr_all_trackers.py Outdated
Comment thread demo/rfdetr_all_trackers.py Outdated
Borda added 2 commits July 8, 2026 19:33
- Add `files` key to mypy settings in `pyproject.toml`.
- Pass `pass_filenames: false` to the mypy pre-commit hook.
- Reformat color palette list for improved readability.
Borda and others added 2 commits July 8, 2026 22:49
- Add pyproject.toml to the package-build PR trigger, bump the release version, and move unreleased changelog notes into 2.6.0.
- Pin release actions, fail fast on demo video I/O, extend mypy coverage to the demo scripts, and refresh uv.lock.

---

Co-authored-by: Codex <codex@openai.com>
@Borda Borda merged commit 0fedd3a into develop Jul 8, 2026
23 checks passed
@Borda Borda deleted the fix/build branch July 8, 2026 21:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

PyPI wheels (all versions) ship metadata only — no Python source (broken install)

2 participants