Debian Packaging¶
Creating .deb packages for FiveAges Sim components.
Overview¶
Several components ship prebuilt .deb files on GitHub Releases (not on packages.ros.org / Ubuntu apt):
OCS2 (
ros-jazzy-ocs2) — legubiao/ocs2_ros2 releasesrobot-descriptions-common (
ros-jazzy-robot-descriptions-common) — fiveages-sim/robot-descriptions-common releasesarms_ros2_control (
ros-jazzy-arms-ros2-control, optional) — fiveages-sim/arms_ros2_control releases
Package Documentation¶
Detailed packaging instructions are in repository-specific README.deb.md files:
arms_ros2_control¶
See arms_ros2_control/README.deb.md for:
Build configuration
Dependencies
Release process
robot-descriptions-common¶
Official notes: README.deb.md.
Workflow:
.github/workflows/build-common-deb.ymlPR merge to
mainrefreshes rolling Release tagpre-release;v*tag /workflow_dispatchmakes a formal releaseDeb name:
ros-jazzy-robot-descriptions-common_{Version}_{arch}.deb(GitHub upload turns~into.)Install example in that README:
gh release download pre-release --repo fiveages-sim/robot-descriptions-common --pattern '*_amd64.deb'thensudo dpkg -i …
General Process¶
Prerequisites¶
sudo apt install python3-bloom fakeroot debhelper
Create Package¶
cd <package>
bloom-generate rosdebian --ros-distro jazzy
fakeroot debian/rules binary
Resulting Package¶
Output: ../<package>_<version>_amd64.deb
Install¶
sudo dpkg -i <package>_<version>_amd64.deb
sudo apt install -f # Fix dependencies
Version Management¶
Semantic Versioning¶
Use semantic versioning: MAJOR.MINOR.PATCH
MAJOR: Breaking changes
MINOR: New features
PATCH: Bug fixes
Changelog¶
Maintain changelog for releases:
package (1.2.3-1) jazzy; urgency=medium
* Fix gripper control bug
* Add new robot support
-- Maintainer <email> Date
CI/CD Integration¶
Packages are built and tested in CI:
Build on each release tag
Publish
.debassets to GitHub ReleasesTest installation
TODO
Document the per-repo GitHub Release workflow (asset names, tags, and deb_versions.conf) in more detail.