Patch dependencies and rebuild inside the Minimal CI #451
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.
This is an approach for solving #449 .
There are several thorny problems at play that rule out many ideal/preferable solutions. I don't love the approach of this PR, but I think it has the best balance of being simple and not having negative side-effects for users.
The thorny problems:
Cargo.toml
could create conflicts for downstream users who want to benefit from newer versions of libraries and newer language features.action-ros-ci
runs through a very rigid sequence of cloning a fresh copy of our repo and trying to build it without giving us an opportunity to patch the repo beforehand.This PR tackles all of this in a relatively simple workflow which is only applied to the Minimal version CI:
action-ros-ci
as normal, except usecontinue-on-error: true
so that the workflow can keep running even after it encounters the incompatible dependency error that we know it will.rclrs
and explicitly$ cargo add home@=0.5.9
to lock in a specific version of the otherwise incompatible dependencyAdvantages of this approach:
$ cargo add
commandDisadvantages of this approach:
continue-on-error: true
foraction-ros-ci
feels a little icky to me. We could end up with some confusing errors if that step ever encounters an error besides that one that we're expecting. But we'll never get a false positive for the overall CI since we will still be running tests on all theros2_rust
packages.