Comments (2)
Hi Samer,
I haven't found a reliable workflow for interacting directly with bloom's internal patch interface. What I tend to do when I need to update patches for a release is checkout the patched branch, modify the patches there manually, push the changes to the release repository, and then run a fresh bloom-release in order to update the patch branches that way.
Sometimes it's not possible to apply patches that remove or modify existing patches cleanly and when that happens I'll usually truncate the release branch, temporarily removing all patches, and then cherry-pick the specific changes I want to retain before running bloom-release to update the patch branches.
For example, we patch the deb and rpm releases of the fastrtps
package to modify the CMake configuration: https://github.com/ros2-gbp/fastrtps-release/commits/debian/rolling/fastrtps
To make those changes originally I performed the following
git clone https://github.com/ros2-gbp/fastrtps-release
cd fastrtps-release
git checkout -b debian/rolling/fastrtps origin/debian/rolling/fastrtps
# edit debian/rules directly
git add debian/rules
git commit -m 'Set CMake flags for Fast-RTPS.'
git push origin debian/rolling/fastrtps
cd ..
bloom-release -r rolling fastrtps
If I wanted to remove that patch, I would do the following:
# View the commit history of the release branch either on GitHub or locally and make note of the commit ID directly prior to the most recent patch application.(8e96ed6e56ea76b1f9ade34fac5670f3ccc6d6f6, in this example)
git clone https://github.com/ros2-gbp/fastrtps-release
cd fastrtps-release
git checkout -b debian/rolling/fastrtps origin/debian/rolling/fastrtps
git reset --hard $PRIOR_COMMIT_ID # This will be 8e96ed6e56ea76b1f9ade34fac5670f3ccc6d6f6 for this example but yours will be unique
git push --force-with-lease origin debian/rolling/fastrtps
cd ..
bloom-release -r rolling fastrtps
It is worth capturing this information and adding it to bloom's user documentation. If you would like to take that on please feel free to open a pull request for feedback.
from bloom.
Hi @nuclearsandwich and Thanks for the informative answer ! Really appreciated !
I have documented my last release of our librealsense2 ROS2 package, and from it I can say these things:
Adding / Removing / Editing Patches, before pressing the last ENTER of the Bloom Configuration, go to another terminal:
- cd to the /tmp/<release_repo> directory that shown in the screen
- git checkout release/humble/librealsense2
- make changes, and git add and git commit them
- git-bloom-release export
- go back to the main terminal, and press Enter
This way it worked for me.
I really appreciate your help, and maybe when I release the next version, I will document it in a formal way that I can also add it to bloom readme and open a PR.
Thanks,
Samer
from bloom.
Related Issues (20)
- A command line workflow for adding just source/doc entries to rosdistro without a bloom release.
- ament_cmake binarydeb job cannot find own package for tests
- support meson HOT 2
- Cannot Release for Humble on Ubuntu 18.04 HOT 2
- CI failing on master HOT 3
- Generation of copyright files HOT 11
- bloom-release does not open PR on rosdistro HOT 4
- status of dependency vcstools? HOT 5
- Allow using the rosdistro source version as a track's devel_branch
- bloom fails to push to release repo with --new-track HOT 1
- Bloom fails to open rosdistro PR HOT 1
- AMENT_PREFIX_PATH: Environment variable vs CMake variable HOT 1
- linking issues during LTO HOT 1
- http://bloom.readthedocs.org/ defaults to an old version (0.5.10) HOT 1
- Empy v4 incompatibility
- bloom-generate not executable
- bloom config is hardcoded to look at master branch new repositories use main as default HOT 4
- BUG: bloom-release fails to run on humble because of mac_ver HOT 2
- Packages containing pytest tests create conflicting cache files HOT 1
- bloom releases dropped packages which still have branches in the release repository.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from bloom.