Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 0 additions & 46 deletions source/Contact.rst
Original file line number Diff line number Diff line change
Expand Up @@ -33,52 +33,6 @@ If you see an issue on `Robotics Stack Exchange <https://robotics.stackexchange.
Don't worry if you aren't sure if your response is correct.
Simply say so, and other community members will jump in if necessary.

Issues
------

If you identify bugs, have suggestions for improvements, or a question specific to one package, you can open an issue on GitHub.

For example, if you are following the :doc:`tutorials here <Tutorials>` and come across an instruction that doesn't work on your system,
you can open an issue in the `ros2_documentation <https://github.com/ros2/ros2_documentation>`__ repo.

You can search for individual ROS 2 repositories on `ROS 2's GitHub <https://github.com/ros2>`__.

Before opening an issue, check if other users have reported similar issues by searching across the ros2 and ament GitHub organizations: `example search query <https://github.com/search?q=user%3Aros2+user%3Aament+turtlesim&type=Issues>`__.

Next, check `Robotics Stack Exchange <https://robotics.stackexchange.com/>`__ to see if someone else has asked your question or reported your issue.

If it has not been reported, feel free to open an issue in the appropriate repository tracker.
If it's not clear which tracker to use for a particular issue, file it in the `ros2/ros2 repository <https://github.com/ros2/ros2/issues>`__ and we'll have a look at it.

When filing an issue, please make sure to:

* Include enough information for another person to understand the issue.

Describe exactly what you were doing or are trying to do, and exactly what, if anything, went wrong.
If following a tutorial or online instructions provide a link to the specific instructions.

* Use a descriptive headline or subject line.
Bad: "rviz doesn't work".
Good: "Rviz crashing looking for missing ``.so`` after latest apt update"
* Include information about the exact platform, software, versions, and environment relevant to the problem.
This includes how you installed the software (from binaries or from source) and which ROS middleware/DDS vendor you are using (if you know it).
* Any warnings or errors.
Cut and paste them directly from the terminal window to which they were printed.
Please do not re-type or include a screenshot.
* In case of a bug consider providing a `short, self contained, correct (compilable), example <https://sscce.org/>`__.
* When discussing any compiling/linking/installation issues, also provide the compiler version

As appropriate, also include your:

* ROS environment variables (env | grep ROS)
* Backtraces
* Relevant config files
* Graphics card model and driver version
* Ogre.log for rviz, if possible (run with rviz -l)
* Bag files and code samples that can reproduce the problem
* Gifs or movies to demonstrate the problem


Pull requests
-------------

Expand Down
16 changes: 0 additions & 16 deletions source/How-To-Guides/Core-maintainer-guide.rst
Original file line number Diff line number Diff line change
Expand Up @@ -158,22 +158,6 @@ If a change can be backported without breaking API or ABI, then a new pull reque
The new pull request should be added to the appropriate distributions project board at https://github.com/orgs/ros2/projects.
The new pull request should have all of the steps run as before, but making sure to target the distribution in question for CI, etc.

Responding to issues
--------------------

Package maintainers should also look at incoming issues on the repository and triage the problems that users are having.

For issues that look like questions, the issue should be closed and the user redirected to `Robotics Stack Exchange <https://robotics.stackexchange.com/>`__ .

If an issue looks like a problem, but is not relevant to this particular repository, it should be moved to the appropriate repository with the GitHub "Transfer issue" button.

If the reporter has not provided enough information to determine the cause of the problem, more information should be requested from the reporter.

If this is a new feature, tag the issue with "help-wanted".

Any remaining issues should be reproduced, and determined if they are truly a bug.
If it is a bug, fixes are highly appreciated.

Getting help
------------

Expand Down
1 change: 1 addition & 0 deletions source/The-ROS2-Project/Contributing.rst
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@ Development Guides
Contributing/Build-Farms
Contributing/Windows-Tips-and-Tricks
Contributing/Contributing-To-ROS-2-Documentation
Contributing/Contributing-to-code

What to work on
^^^^^^^^^^^^^^^
Expand Down
8 changes: 8 additions & 0 deletions source/The-ROS2-Project/Contributing/Contributing-to-code.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
Contributing to code
====================

.. toctree::
:maxdepth: 1

Contributing-to-code/Triaging-an-issue
Contributing-to-code/Reporting-an-issue
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
Reporting an issue — how-to
===========================

Issue reports help the ROS community identify bugs, suggest enhancements, improve documentation, and resolve package-specific problems.
This article explains how to check whether an issue has already been reported and what information to provide in a new issue.
With this information, you can provide clear, complete issue details in the right ROS repository.

**Area: community | Content-type: how-to | Experience: beginner, intermediate, expert**

.. contents:: Table of Contents
:depth: 2
:local:

Summary
-------

* **Documentation issue tracker**: `ROS documentation repository <https://github.com/ros2/ros2_documentation/issues>`__.
* **Code issues lists**: in a repository under the `ROS organisation <https://github.com/orgs/ros2/repositories>`__.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This could probably be more clear. Issues should be reported in the Github repository for the repository in which the error occurred (generally the last file listed in the stack trace).

* **Catch-all issues list**: `top level ROS repository <https://github.com/ros2/ros2/issues>`__.

Prerequisites
-------------

There are no prerequisites.

Steps
-----

1 Checking the issue
^^^^^^^^^^^^^^^^^^^^

If you identify bugs, have suggestions for enhancements, or a question specific to one package, you can open an issue on GitHub.
For example, if you are following the :doc:`/Tutorials` and come across an instruction that doesn't work on your system, you can open an issue in the `ROS documentation <https://github.com/ros2/ros2_documentation>`__ repo.

You can search for individual ROS repositories on `ROS GitHub <https://github.com/ros2>`__.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should be expanded. Roughly we have three buckets where things live.

  • Core ROS 2 -> github.com/ros
  • A ROS binary package that can be found on index.ros.org (and points to the appropriate Github repo)
  • A source ROS package that is located somewhere on Github.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We probably need a section before this on identifying the correct place to report an issue.


Before opening an issue:

#. Check if other users have reported similar issues by searching across the ``ros2`` and ``ament`` GitHub organizations using, for example, this `search query <https://github.com/search?q=user%3Aros2+user%3Aament+turtlesim&type=Issues>`__.
#. Check the `Robotics Stack Exchange <https://robotics.stackexchange.com/>`__ to see if someone else has already reported your issue.

If your issue has not been reported, you can open an issue in the appropriate repository's issue tracker.
If it's not clear which tracker to use for a particular issue, create it in the `ros2/ros2 repository <https://github.com/ros2/ros2/issues>`__ and we'll have a look at it.

2 Reporting the issue
^^^^^^^^^^^^^^^^^^^^^

When reporting an issue, use the following guidelines to make sure you include enough information for another person to understand and (where relevant) reproduce the issue.
It's particularly helpful if you test for your issue with as many alternatives as you can in each category.

Required information
""""""""""""""""""""

#. Use a descriptive **title** for the issue.

**Bad**: "rviz doesn't work".

**Good**: "Rviz crashing looking for missing ``.so`` after latest apt update"

#. Add steps to the issue **description** describing exactly how to reproduce the issue.
If you are following a ROS tutorial or online instructions, provide a link to those specific instructions.

Issues are more likely to be resolved if others can reproduce them easily.

#. Include the following information:

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if this is the requirement for issue header, we could use the github issue teamplate instead. that should apply this format to register the issue. for example, https://github.com/ros2/ros2_documentation/tree/rolling/.github/ISSUE_TEMPLATE (ros2_ducomentation template) and https://github.com/ros2/.github/tree/main/.github/ISSUE_TEMPLATE (ros2 organization scope template unless there is no repository specific template)


* **Operating system and version**

ROS supports multiple platforms, and some bugs are specific to particular versions of operating systems/compilers.

* **Installation method**

Some issues only manifest if ROS has been installed from binary archives or from deb packages.
This can help us determine if the issue is with the packaging process.

* **Specific version of ROS**

Some bugs may be present in a particular ROS release, but fixed in a later release.
It is important to know if your installation includes these fixes.

* **DDS/RMW implementation** (see `this page </Concepts/Intermediate/About-Different-Middleware-Vendors>` for how to determine which one).

Communication issues may be specific to the underlying ROS middleware being used.

* **ROS client library**

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Question for the community: does knowing which ROS client library when you report an issue necessarily mean you know which package the issue is with? And hence which issue tracker to use for the report? If so, that will be a helpful note up in section 1.

I know the general definitions of these terms, but not what the exact relationship is within the ROS world.

My best guess would be that all client libraries are packages, but not all packages are client libraries.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please have a look at my comment above.

i think what we need to explain here is that users and developers are expected to use the issue template when they are registering the issue. that should include the required information to fill in. in this way, we do not need to come back here to update the documentation when the template is changed or update in the future.


This helps us narrow down the layer in the stack where the issue might be.

#. Include any warnings or errors which are displayed as part of the issue.

Cut and paste the warnings or errors directly from the terminal window to which they were printed.
Please do not re-type the warnings or errors or use screenshots of the terminal.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@fujitatomoya I would be curious to hear your opinion here, but I think generally new users should be using ros2 doctor when reporting issues. We already have documentation on how to use it. There's no harm in doing so and I think it would go a long way towards helping users help themselves.

Useful additional information
"""""""""""""""""""""""""""""

* If you are reporting a bug, consider providing a `short, self contained, correct (compilable) example <https://sscce.org/>`__.
* When discussing any compiling/linking/installation issues, provide the version number of your compiler.
* If relevant to your issue, you can also include your:

* ROS environment variables (``env | grep ROS``)
* Backtraces
* Relevant config files
* Graphics card model and driver version
* ``Ogre.log`` for rviz, if possible (run with ``rviz -l``)
* Bag files and code samples which reproduce the problem

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

New users struggle with finding where the appropriate log files live. We probably want to include information on that here. We do have a general page about logging here but I just read through it but at no place in that document do we mention the default log directory on each platform (e.g. /var/log/ros... on Linux ) or specify how to find the most recent logs and read them (e.g. tail -100)

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

* GIFs or video clips to demonstrate the problem

* Also describe any troubleshooting which you have already attempted, for example:

* Upgrading to the latest version of the code, which may include bug fixes that have not been released yet.

For more information, see :ref:`building-from-source` and follow the instructions to get the ``rolling`` branch.

* Trying to reproduce your issue with a different RMW implementation.

For more information, see :doc:`../../../How-To-Guides/Working-with-multiple-RMW-implementations`.

Related content
---------------

* :doc:`../../Contributing`
* :doc:`Triaging-an-issue`

FAQs
----

TBC
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
Triaging an issue — how-to
==========================

Issue triage helps ROS contributors turn incoming bug reports and enhancement requests into clear, actionable work.
This article explains how to find, check, reproduce, assign, and label issues in ROS repositories.
With this information, you'll be able to route issues to the right place, with correct information, and prepare them for work by developers.

**Area: community | Content-type: how-to | Experience: beginner, intermediate, expert**

.. contents:: Table of Contents
:depth: 2
:local:

Summary
-------

We welcome anyone to triage issues.

* **Code issue trackers**: in a repository under the `ROS organization <https://github.com/orgs/ros2/repositories>`__.
* **Documentation issue tracker**: `ROS documentation repository <https://github.com/ros2/ros2_documentation/issues>`__.
* **Catch-all issue tracker**: `top level ROS repository <https://github.com/ros2/ros2>`__.

Prerequisites
-------------

There are no prerequisites.

Steps
-----

1 Finding an issue to triage
^^^^^^^^^^^^^^^^^^^^^^^^^^^^

We encourage contributors to look at incoming issues on ROS repositories and triage the problems that users are having:

* To find code issues for triage, review the issues list of a repository under the `ROS organization <https://github.com/orgs/ros2/repositories>`__, for example the issues list in the `ROS CLI repository <https://github.com/ros2/ros2cli/issues/>`__.
* To find documentation issues for triage, review the issues list in the `ROS documentation repository <https://github.com/ros2/ros2_documentation>`__.
* If you're not sure where to start, review the issues list in the `top level ROS repository <https://github.com/ros2/ros2>`__.

When you have identified an issue for triage, add a comment to the issue to say that you are looking into it.

2 Confirming and reproducing the issue
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

When you have found an issue to triage, confirm that the issue is genuinely an issue (a bug or a request for enhancement) and has been created with the expected information.

For more information about the information the reporter of the issue is expected to provide, see :doc:`./Reporting-an-issue`.

#. If the issue ``Description`` is actually posing a question, close the issue and add a comment directing the user to the `Robotics Stack Exchange <https://robotics.stackexchange.com/>`__ to get help with their question.
#. If the issue looks like a genuine issue (bug or enhancement), but is not relevant to the repository it has been raised in, transfer the issue to the appropriate ROS repository (`see the GitHub documentation for guidance about how to transfer between repositories <https://docs.github.com/en/issues/tracking-your-work-with-issues/administering-issues/transferring-an-issue-to-another-repository>`__).

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
#. If the issue looks like a genuine issue (bug or enhancement), but is not relevant to the repository it has been raised in, transfer the issue to the appropriate ROS repository (`see the GitHub documentation for guidance about how to transfer between repositories <https://docs.github.com/en/issues/tracking-your-work-with-issues/administering-issues/transferring-an-issue-to-another-repository>`__).
#. If the issue looks like a genuine issue (bug or enhancement), but is not relevant to the repository it has been raised in, transfer the issue to the appropriate ROS repository (`see the GitHub documentation for guidance about how to transfer between repositories <https://docs.github.com/en/issues/tracking-your-work-with-issues/administering-issues/transferring-an-issue-to-another-repository>`__).
#. If the issue appears to be a valid but lacks sufficient details to appropriately replicate it (e.g. the host operating system, platform, RMW implementation, ROS distro, and offending code) please request that author provide additional information,

That's not quite right, but you get the idea.

#. If the issue is a bug, try to reproduce the bug using the provided steps — if you cannot reproduce the bug, add a comment to the reporter asking for clarification.

3 Assigning and labelling the issue
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

After you've confirmed the issue is a genuine issue, and reproduced it, assign and label the issue appropriately to allow work on the issue to begin by a developer.

#. Assign the issue to the appropriate developer for the ROS repository in question.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How are new users supposed to know this information? Generally they should tag the maintainer, but that isn't always apparent.

#. Label the issue as a ``bug`` or ``enhancement``, as appropriate.
#. If this issue is a request for a new feature, label the issue with ``help-wanted``.
#. If the reporter has not provided enough information to determine the cause of the problem, label the issue as ``more-information-needed``.

Related content
---------------

* :doc:`../../Contributing`
* :doc:`Reporting-an-issue`

FAQs
----

TBC
33 changes: 0 additions & 33 deletions source/The-ROS2-Project/Contributing/Developer-Guide.rst
Original file line number Diff line number Diff line change
Expand Up @@ -271,39 +271,6 @@ Some practices are common to all ROS 2 development.

These practices don't affect package quality level as described in `REP 2004 <https://reps.openrobotics.org/rep-2004/>`_, but are still highly recommended for the development process.

Issues
^^^^^^

When filing an issue please make sure to:

- Include enough information for another person to understand the issue.
In ROS 2, the following points are needed for narrowing down the cause of an issue.
Testing with as many alternatives in each category as feasible will be especially helpful.

- **The operating system and version.**
Reasoning: ROS 2 supports multiple platforms, and some bugs are specific to particular versions of operating systems/compilers.
- **The installation method.**
Reasoning: Some issues only manifest if ROS 2 has been installed from binary archives or from debs.
This can help us determine if the issue is with the packaging process.
- **The specific version of ROS 2.**
Reasoning: Some bugs may be present in a particular ROS 2 release and later fixed.
It is important to know if your installation includes these fixes.
- **The DDS/RMW implementation being used** (see `this page <../../Concepts/Intermediate/About-Different-Middleware-Vendors>` for how to determine which one).
Reasoning: Communication issues may be specific to the underlying ROS middleware being used.
- **The ROS 2 client library being used.**
Reasoning: This helps us narrow down the layer in the stack at which the issue might be.

- Include a list of steps to reproduce the issue.
- In case of a bug consider to provide a `short, self contained, correct (compilable), example <http://sscce.org/>`__.
Issues are much more likely to be resolved if others can reproduce them easily.

- Mention troubleshooting steps that have been tried already, including:

- Upgrading to the latest version of the code, which may include bug fixes that have not been released yet.
See `this section <building-from-source>` and follow the instructions to get the "rolling" branches.
- Trying with a different RMW implementation.
See `this page <../../How-To-Guides/Working-with-multiple-RMW-implementations>` for how to do that.

Branches
^^^^^^^^

Expand Down
Loading