Skip to content

feat: bloom release workflow + bridge exec_depend#179

Open
rafal-gorecki wants to merge 1 commit into
jazzyfrom
feat/bloom-release-prep
Open

feat: bloom release workflow + bridge exec_depend#179
rafal-gorecki wants to merge 1 commit into
jazzyfrom
feat/bloom-release-prep

Conversation

@rafal-gorecki
Copy link
Copy Markdown
Contributor

Summary

Wire up apt-installable distribution of `rosbot_ros` packages via bloom, plus declare the MAVLink bridge as a rosdep dependency.

  • New release workflow (`.github/workflows/release.yaml`) — manually-dispatched. Bumps every first-party `package.xml` to a shared version (plain numeric, matches existing `1.0.0` / `0.18.8` tag history), tags, then runs `bloom-release` per package against `husarion/rosbot_ros-release`. Pre-release dispatches (`pre_release=true`) tag `.pre.N` and skip bloom so they don't ship to rosdistro.
  • rosbot_bringup — adds `<exec_depend>rosbot_mavlink_bridge</exec_depend>`. `mavlink.launch.py` already uses the bridge by name; rosdep will pull it from apt once the bridge lands in rosdistro (paired PR feat: prepare bridge for bloom release to rosdistro rosbot-firmware#8).

After this PR + the firmware PR + bloom one-shot setup, users on apt will `apt install ros-jazzy-rosbot-bringup` and get bridge + everything else automatically — no more `vcs import` for production.

Sensitive spots

  • Tag scheme: plain numeric (no `v` prefix) chosen to match existing tag history (`1.0.0`, `0.18.8`). `bloom-release --new-track` for each of 10 packages must use `:{version}` release-tag pattern.
  • Sibling repos (`husarion_components_description`, `husarion_controllers`, `tf_namespace_bridge`, `micro-ROS-Agent`) are NOT in this release — they ship from their own source repos. The `PACKAGES` env in the workflow is the explicit allow-list.
  • First bloom-release per distro requires `--new-track` interactively, then merge of the initial rosdistro PR by upstream maintainers. Subsequent releases are CI-only.

One-shot setup needed before bloom job runs green

  1. Create empty `husarion/rosbot_ros-release` repo.
  2. Add it + `husarion/rosdistro` (fork) to the `HUSARION_BOT` App installation.
  3. Locally at a release tag, loop over the 10 packages and run `bloom-release --new-track --rosdistro jazzy --track jazzy --release-repo-url git@github.com:husarion/rosbot_ros-release.git $pkg`. Release tag pattern: `:{version}` (no `v` prefix).
  4. Re-run the workflow; subsequent releases reuse the tracks.

Full checklist also lives in the `bloom-release` job header.

Test plan

  • `pre-commit run` on staged — green
  • YAML syntax check on `release.yaml`
  • `prettier-package-xml` + `sort-package-xml` accept the new `exec_depend`
  • Will validate on actual workflow dispatch after one-shot setup is in place

Add a manually-dispatched release workflow that bumps every first-party
package.xml to a shared version, tags, and runs bloom-release per
package against husarion/rosbot_ros-release. Declares the bridge
(rosbot_mavlink_bridge, released from rosbot-firmware) as an
exec_depend of rosbot_bringup so apt deployments pull it automatically
via rosdep instead of vcs.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant