ROS Resources: Documentation | Support | Discussion Forum | Service Status | Q&A

Single location to discuss best practices


Threads to ask/discuss ROS best practice are distributed in discourse/answers/else. Can we have a single location to discuss BPs? While in some cases it might make sense to use specific distributed channel, for the BPs generic enough all of us can benefit from gathering the discussions at a fewer/single location.

  • It can be either on discourse or issue tracker on a repository. Since I can’t think of any existing repo that is suitable for this discussion, and creating one just for this purpose might be an overkill, I suggest making a channel on discourse. doesn’t fit for open ended discussions like BPs, so it’s out IMO.
  • One maybe unique workflow for such a channel is that once the discussion reaches a consensus, BestPractices wiki page will be updated with the result of the discussion (repository ticket style may fit better to clarify the “end” of discussion though).

There are already a number of needed BPs that we can begin with.


I’m slightly biased, but I believe this is exactly what the #quality category was created for.

Best Practices are a key part of increasing/maintaining/safeguarding software quality, so it seems like a good fit.

@wasowski, @Alami


While quality can be considered one result of following good practices, it’s only a single optimization objective. Sometimes best practices are followed to make software design easier, to be more compatible with other systems, or to improve performance.

If you go to the quality category, all of the topics are more about software devops and than they are about software development, itself.


The idea behind the #quality category was is for it to be the place to discuss everything related to software quality, improvement of quality assurance practices and everything that is tangentially connected to that.

One of the sites that was used as inspiration for this is the Mozilla Quality Assurance site.

You’re right, right now that topic seem to be overrepresented a bit. But it’s a Discourse category, not a moderated site with content coming from editors, so if these posts are there, it’s because community members wanted them to be there.

The intent of the category is to foster discussion about anything software quality related, so I’m hoping to see other discussions take place there as well, besides devops related things.

I think there are people that would argue all of those are software qualities as well.


I don’t think the Quality category is limited to devops. There is some devops there but just skimming the subjects there are quite some that clearly don’t belong to devops (software metrics, testing tools and practices, git branching practices, input validation, design by contract). It is very hard for me to judge whether devops is in majority. I would have to count posts :slight_smile:

The traffic in the category is not overwhelming right now, so I would say it makes sense to discuss best practices in there. Best practices normally have quality in mind. If this becomes a burden we could always split. To make it clearer that best practices are in scope, we could adjust the category description.

I think that it is a very good idea of @130s to evolve discussions of practices into wiki pages if a consensus is reached. I don’t think we had such case yet.


Yeah, these are all important, but are they specific to ROS? And for that matter, how wil best practices and design patterns change with the adoption of ros2? I think the topics on the best practices wiki page illustrate the difference between common quality topics and ROS-specific best practices.

Either way, I think @130s is right about the need for some sort of process to come to consensus and categorization. Discourse leads to pretty visible discussion, but isn’t well suited for persistence or process control. The wiki doesn’t work very well, t you can see that he page @130s linked still uses pre-hydro terminology.

Maybe a best-practice tag in the quality channel for requesting/brainstorming, since quality-minded people are likely to go there, and a GitHub repo for drafting them via PRs.


You’re right, they aren’t, but they are being discussed in the context of applying them to ROS development.

Don’t believe we know that yet, although @fkromer has started with a set of pages for that on the ROS2 wiki on Github: Quality guide for ROS2.

Perhaps worth a topic in #quality?

yes, that seems like a good workflow.


I also like tagging. I am not against separating best-practices principally, but I would do this when the volume becomes a challenge. I find it counterproductive to create a lot of categories with little contents in it.


Thanks for the discussion. It has been eye-opening to me.

  • About brainstorm (or whatever you call) phase, +1 for this suggestion. Quality channel sounds suitable so thanks for bringing that up @gavanderhoorn.
  • About “document” location, I don’t have a strong opinion. I’ve always slightly worried about the wiki for the lack of review process thus less control, so I’m leaning towards pull request style. However wiki is convenient and PR could get stale. Since best practice is just “practice” not a rule/spec, wiki may or may not be fine.


Can we create a best-practice tag in the Quality category (assuming it’s not something a poster can create)?


You should be able to add tags to posts when you compose a message. We can limit tags on categories but by default they’re open.


Hm, I failed to create a tag. In this post I typed a tag in the text field next to the category but only the search result (which was ‘not found’. There was also “+” sign but was unclickable) was shown.


The minimum trust level for creating a tag was 3, I bumped it down to 2 which should let you and other regulars create tags.

ROS2 Best Practices for Supporting Windows 10