Git Product home page Git Product logo

Comments (2)

nuclearsandwich avatar nuclearsandwich commented on July 28, 2024 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.

SamerKhshiboun avatar SamerKhshiboun commented on July 28, 2024

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:

  1. cd to the /tmp/<release_repo> directory that shown in the screen
  2. git checkout release/humble/librealsense2
  3. make changes, and git add and git commit them
  4. git-bloom-release export
  5. 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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.