-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add support to create PR against ROS gz_*_vendor repositories in release.py #1151
Conversation
Signed-off-by: Jose Luis Rivero <[email protected]>
Signed-off-by: Jose Luis Rivero <[email protected]>
Signed-off-by: Jose Luis Rivero <[email protected]>
Signed-off-by: Jose Luis Rivero <[email protected]>
Signed-off-by: Jose Luis Rivero <[email protected]>
Signed-off-by: Jose Luis Rivero <[email protected]>
Signed-off-by: Jose Luis Rivero <[email protected]>
Signed-off-by: Jose Luis Rivero <[email protected]>
Signed-off-by: Jose Luis Rivero <[email protected]>
…version Signed-off-by: Jose Luis Rivero <[email protected]>
I just tested this and it failed due to a missing dependency:
|
Signed-off-by: Jose Luis Rivero <[email protected]>
Signed-off-by: Jose Luis Rivero <[email protected]>
Implemented an installation of venv to be used to handle dependencies in 80475de. Dependencies are added here manually by now, would be better handled if we a I've also added a --only-bump-ros-vendor-package option that skip almost everything and just deal with the PR generation for ROS packages. |
I was able to use this when releasing gz-fuel-tools 9.1.0 and it created gazebo-release/gz_fuel_tools_vendor#3, so it seems to work well. I still haven't had a chance to do a full review though. I also noticed that it created on PR toward the |
Signed-off-by: Addisu Z. Taddese <[email protected]>
'CMakeLists.txt', 'package.xml'] | ||
_, _ = check_call(commit_cmd) | ||
push_cmd = ['git', "-C", repo_path, | ||
'push', '--force', |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is it safe to use --force
here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If I remember correctly, this --force was added to handle the overwrite of previous existing branches (branch_name = f'releasepy/{args.version}'
) created by the tool in previous runs without the need of removing the branch to make the tool to work. This is useful to correct erroneous/incomplete PRs created by the own tool but if we can stabilize the code could be removed. Whatever you prefer.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I see. Let's keep for now then. Maybe add a TODO to remove it later?
…ill report there were no changes in the vendor package Signed-off-by: Addisu Z. Taddese <[email protected]>
Signed-off-by: Jose Luis Rivero <[email protected]>
Signed-off-by: Jose Luis Rivero <[email protected]>
Signed-off-by: Jose Luis Rivero <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM! Just one unresolved comment left.
I just tried releasing gz-sensors9 and it seems to use http instead of ssh to push to the vendor repo?
It then asks for username / pw but fails to push as it's is no longer supported. I manually pushed using ssh and created the PR. Just checking if there's some configuration that I needed to do first? |
Ah, that's definitely an issue. It worked fine for me because I have the following in my
|
there's no |
Signed-off-by: Jose Luis Rivero <[email protected]>
Signed-off-by: Jose Luis Rivero <[email protected]>
I think that we can default to ssh but keeping https for testing and dry-run, did that on 4180170 |
This PR adds support in
release.py
to automatically create PRs in the gz_*_vendor repositories when a new release for any gazebo libraries is being created:jenkins-scripts/dsl/tools/get_collections_from_package_and_version.py
in Include a script to obtain gazebo releases for a given library #1148 that is able to return Gazebo releases given a library a version. To known the vendor repository from a Gazebo releases the script uses a simple approach by now defining a map of gazebo-release <-> ros-distroROS_VENDOR = {'harmonic': 'rolling'}
that assumes also that vendor repository branches are named in the same way than the ROS release names.The PR also implements an output parsing for detecting if the ROS vendor commands are being processed correctly for a variety of options.
For testing the whole pipeline, I've been using the following patch that enables all new actions under the --dry-run and run a release like:
release.py gz-cmake3 3.2.3 foo --dry-run --no-sanity-check