Repository navigation
Nightly tests of the published packages against the newest dependencies - #138
Merged
Merged
Conversation
tools/package_tests.py + .github/workflows/package-tests.yaml (#137): every night, the tests bundled in each published package with a test file (shared/tests/, distros/<d>/tests/) run again with `rattler-build test`, in the package's newest build (every variant) on each distribution's channel and all five platforms, against the newest conda-forge dependencies. That catches breakages coming from conda-forge, e.g. ABI changes (ros-humble#274). - One issue per distribution, "<distro>: package tests" (label package-tests), with the failures and their output; closed when every test passes. The issue helper of the dependency report is generalised for it (maintenance.publish_issue). - A failed test is tried once more (launch tests can time out on DDS discovery); a pass then is listed as flaky. - Builds from before their test file was added carry no tests: listed as such instead of counting as passed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
traversaro
approved these changes
Oct 23, 2026
Tobias-Fischer
force-pushed
the
nightly-package-tests
branch
from
October 23, 2026 05:51
3926c2c to
d2ccda5
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #137.
Every night,
.github/workflows/package-tests.yamlre-runs the tests bundled in the published packages (tools/package_tests.py). It does this against the newest dependencies, which catches breakages that come from conda-forge rather than from RoboStack, such as ABI changes like RoboStack/ros-humble#274.What's tested:
shared/tests/<package>.yaml,distros/<distro>/tests/<package>.yaml); vinca adds no tests of its own;How:
rattler-build test --package-fileinstalls each package with the newest matching dependencies from the distribution's channel and conda-forge, the same channels the builds use, with no lock file. It then runs the tests bundled in the package.Report: one issue per distribution,
<distro>: package tests (labelpackage-tests). It's opened or updated with the failed tests (package, build, platform, output tail), and closed when every test passes. This reuses the dependency report's issue handling, nowmaintenance.publish_issue. A distribution whose jobs failed before testing is reported too.rattler-build testreports them as passed. Here they are listed separately and don't count as passed.Tested locally: jazzy osx-arm64, all 26 packages, in about 9 minutes:
rosx_introspectionandsteering_controllers_libraryhad no bundled tests (build 25, older than their test files);robot_state_publisher's launch smoke test timed out once and passed on the next two runs, which is why failed tests are now retried.Unit tests cover selecting the newest builds, counting the tests that ran, the issue text and the report. All 50 tool tests pass,
rs checkpasses, and actionlint is clean.Manual runs (Actions › package-tests › Run workflow) take a
distrosinput. The workflow only needsissues: writefor the report job.Labelled
build:none: no packages change, so only the checks run.🤖 Claude (AI assistant), on behalf of @Tobias-Fischer
🤖 Generated with Claude Code