Skip to content

Commit 90c48da

Browse files
ijnekclalancette
andauthored
Porting across bloom documentation (#2375)
* Port across all of the bloom documentation from wiki.ros.org, updating it for ROS 2 in the process. Signed-off-by: Kenji Brameld <[email protected]> Co-authored-by: Chris Lalancette <[email protected]>
1 parent f2e55a0 commit 90c48da

14 files changed

+635
-76
lines changed

source/How-To-Guides.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ If you are new and looking to learn the ropes, start with the :doc:`Tutorials <T
3434
How-To-Guides/Overriding-QoS-Policies-For-Recording-And-Playback
3535
How-To-Guides/Working-with-multiple-RMW-implementations
3636
How-To-Guides/Cross-compilation
37-
How-To-Guides/Releasing-a-ROS-2-package-with-bloom
37+
How-To-Guides/Releasing/Releasing-a-Package
3838
How-To-Guides/Using-Python-Packages
3939
How-To-Guides/RQt-Port-Plugin-Windows
4040
How-To-Guides/Run-2-nodes-in-single-or-separate-docker-containers

source/How-To-Guides/Releasing-a-ROS-2-package-with-bloom.rst

Lines changed: 0 additions & 74 deletions
This file was deleted.
Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,120 @@
1+
First Time Release
2+
==================
3+
4+
This guide explains how to release ROS 2 packages that you have not released before.
5+
Due to numerous options available when releasing ROS packages, this guide intends to cover the most common scenario and does not cover every corner-case.
6+
7+
.. contents:: Table of Contents
8+
:depth: 1
9+
:local:
10+
11+
Be part of a release team
12+
-------------------------
13+
14+
You must be part of a :ref:`release team <what-is-a-release-team>`.
15+
If you are not part of a release team yet, follow either:
16+
17+
* :ref:`Join a release team <join-a-release-team>`
18+
* :ref:`Start a new release team <start-a-new-release-team>`
19+
20+
Create a new release repository
21+
-------------------------------
22+
23+
You need a :ref:`release repository <what-is-a-release-repository>` to release a package.
24+
Follow :ref:`Create a new release repository <create-a-new-release-repository>`.
25+
26+
Install dependencies
27+
--------------------
28+
29+
.. include:: _Install-Dependencies.rst
30+
31+
Set Up a Personal Access Token
32+
------------------------------
33+
34+
.. include:: _Personal-Access-Token.rst
35+
36+
Ensure repositories are up-to-date
37+
----------------------------------
38+
39+
.. include:: _Ensure-Repositories-Are-Up-To-Date.rst
40+
41+
Generate Changelog
42+
------------------
43+
44+
Generate a ``CHANGELOG.rst`` file per package in your repo using the following command:
45+
46+
.. code-block:: bash
47+
48+
catkin_generate_changelog --all
49+
50+
.. include:: _Clean-Up-Changelog.rst
51+
52+
Bump the package version
53+
------------------------
54+
55+
.. include:: _Bump-Package-Version.rst
56+
57+
Bloom Release
58+
-------------
59+
60+
Run the following command, replacing ``my_repo`` with the name of your repository:
61+
62+
.. code-block:: bash
63+
64+
bloom-release --new-track --rosdistro {DISTRO} --track {DISTRO} my_repo
65+
66+
.. tip::
67+
68+
* ``--new-track`` tells bloom to create a new :ref:`track <what-is-a-track>` and configure it.
69+
* ``--rosdistro {DISTRO}`` indicates that this release is for the ``{DISTRO}`` distro
70+
* ``--track {DISTRO}`` indicates that you want the track name to be ``{DISTRO}``
71+
72+
73+
You will be prompted to enter information to configure a new track.
74+
In a common scenario such as:
75+
76+
* Your packages are in a repository called ``my_repo``
77+
* You are releasing a branch called ``main``
78+
* The repository is hosted on GitHub at ``https://github.com/my_organization/my_repo.git``
79+
* Your release repository is at ``https://github.com/ros2-gbp/my_repo-release.git``
80+
81+
You should respond to the prompts as following:
82+
83+
.. list-table::
84+
:header-rows: 1
85+
:widths: 1 2
86+
87+
* - Configuration
88+
- Value
89+
* - :ref:`Release Repository url <release-repository-url>`
90+
- ``https://github.com/ros2-gbp/my_repo-release.git``
91+
* - :ref:`Repository Name <repository-name>`
92+
- ``my_repo``
93+
* - :ref:`Upstream Repository URI <upstream-repository-uri>`
94+
- ``https://github.com/my_organization/my_repo.git``
95+
* - :ref:`Upstream VCS Type <upstream-vcs-type>`
96+
-
97+
* - :ref:`Version <version>`
98+
-
99+
* - :ref:`Release Tag <release-tag>`
100+
-
101+
* - :ref:`Upstream Devel Branch <upstream-devel-branch>`
102+
- ``main``
103+
* - :ref:`ROS Distro <ros-distro>`
104+
-
105+
* - :ref:`Patches Directory <patches-directory>`
106+
-
107+
* - :ref:`Release Repository Push URL <release-repository-push-url>`
108+
-
109+
110+
.. note::
111+
112+
An empty cell in the table indicates that the default value should be used.
113+
Simply respond to the prompt by pressing Enter.
114+
115+
Bloom will automatically create a pull request for you against `rosdistro <https://github.com/ros/rosdistro>`_.
116+
117+
Next Steps
118+
----------
119+
120+
.. include:: _Next-Steps.rst
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
Release Team / Repository
2+
=========================
3+
4+
.. contents:: Table of Contents
5+
:depth: 2
6+
:local:
7+
8+
This page explains the recommended method of hosting your release repositories on `ros2-gbp <https://github.com/ros2-gbp>`_.
9+
10+
What is ROS 2 GBP?
11+
------------------
12+
13+
`ros2-gbp <https://github.com/ros2-gbp>`_ is a GitHub organization that hosts the release repositories for ROS packages.
14+
It also maintains a list of release teams, the list of members per release team and the list of release repositories maintained by the release teams in https://github.com/ros2-gbp/ros2-gbp-github-org.
15+
Interactions with ros2-gbp-github-org are done through raising GitHub issues.
16+
It is recommended that you request to join a release team and set up a release repository early as it can take some time for the ros2-gbp maintainers to respond to your requests.
17+
18+
.. _what-is-a-release-team:
19+
20+
What is a release team?
21+
-----------------------
22+
23+
A release team is a `GitHub team <https://docs.github.com/en/organizations/organizing-members-into-teams/about-teams>`_ that consists of a group of people who are responsible for the release process of one or more repositories.
24+
Release teams are often made up of an organization, a working group, or even an individual, and are named after the team or group that they represent.
25+
The list of release teams and their associated release repositories are maintained at `ros2-gbp-github-org <https://github.com/ros2-gbp/ros2-gbp-github-org>`_.
26+
27+
**You must be a part of the release team that you are planning on releasing the project for.**
28+
If you intend to release the repository under an existing team, follow :ref:`Join a release team <join-a-release-team>`.
29+
If you intend to start a new team, follow :ref:`Start a new release team <start-a-new-release-team>`.
30+
31+
.. _join-a-release-team:
32+
33+
Join a release team
34+
^^^^^^^^^^^^^^^^^^^
35+
36+
Fill the `Update Release Team Membership issue <https://github.com/ros2-gbp/ros2-gbp-github-org/issues/new?assignees=&labels=&template=update_release_team_membership.md&title=Update+release+team+membership>`_ issue template
37+
if a release team already exists for your project but you are not part of it.
38+
39+
.. _start-a-new-release-team:
40+
41+
Start a new release team
42+
^^^^^^^^^^^^^^^^^^^^^^^^
43+
44+
Fill the `New Release Team issue <https://github.com/ros2-gbp/ros2-gbp-github-org/issues/new?assignees=&labels=&template=new_release_team.md&title=Add+release+team>`_ issue template
45+
if no release team exists for your project yet, request for a new release team to be created.
46+
47+
.. _what-is-a-release-repository:
48+
49+
What is a release repository?
50+
-----------------------------
51+
52+
A release repository is a repository that
53+
54+
* stores files generated from the release process, for the ROS buildfarm to use
55+
* caches configurations from the release process to simplify subsequent releases of the repository in the future
56+
57+
Having a release repository separate from your source code repository is a requirement for making a release in ROS 2.
58+
59+
.. _create-a-new-release-repository:
60+
61+
Create a new release repository
62+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
63+
64+
Fill the `Add New Release Repositories issue <https://github.com/ros2-gbp/ros2-gbp-github-org/issues/new?assignees=&labels=&template=new_release_repository.md&title=Add+new+release+repositories>`_ issue template
65+
if you don't have a release repo for your project yet.
66+
67+
What if my existing release repo isn't on ros2-gbp?
68+
---------------------------------------------------
69+
70+
Packages released before ros2-gbp existed may have their release repositories hosted elsewhere.
71+
It is now strongly recommended for release repositories to live in this dedicated GitHub organization.
72+
If you are porting a ROS 1 package to ROS 2 and planning on releasing your packages into ROS 2 for the first time, follow standard procedure to request for a new release repository for your ROS 2 releases.
73+
If you have previously released your packages for ROS 2, when raising the `Add New Release Repositories issue <https://github.com/ros2-gbp/ros2-gbp-github-org/issues/new?assignees=&labels=&template=new_release_repository.md&title=Add+new+release+repositories>`_, **specify your current release repository url**, and follow standard procedure for the rest.
74+
75+
.. note::
76+
77+
Release repositories hosted elsewhere are still supported for stable distributions if you are not planning to release the repository into Rolling.
78+
Since stable distributions created from Rolling will start with release repositories in the ros2-gbp organization it is recommend that you use the ros2-gbp release repositories for all ROS 2 distributions to avoid fragmenting the release information.
79+
80+
A ros2-gbp release repository may become a hard requirement in the future and maintaining a single release repository for all ROS 2 distributions simplifies the maintenance of releases for both the Rolling distribution maintainers and package maintainers.

0 commit comments

Comments
 (0)