SAVE THE DATE: Jazzy Jalisco Testing and Tutorial Party 2024-05-01

SAVE THE DATE: Jazzy Jalisco Testing and Tutorial Party, 2024-05-01T16:00:00Z



As many of you are already aware, the ROS Jazzy Jalisco release is just around the corner: Thursday, May 23, 2024, to be exact! We want this to be our best ROS 2 release yet, and to get there we need to make sure that we thoroughly test Jazzy before it is released to the general public. We also want to make sure that the ROS documentation on docs.ros.org continues to be clear, concise, and correct. That’s where we need your help! We’re looking for community volunteers to join us for our annual ROS Testing and Tutorial Party. If you are looking to start dipping your toes into ROS development this is a great place to start.

Following the Gazebo team’s successfull history of tutorial parties, and the results from last year’s Iron Irwini Tutorial Party, we’re bringing back the tutorial party of ROS 2 Jazzy Jalisco. We want to replicate for Jazzy the success we had with the Iron Irwini Testing and Tutorial Party. So, what is a testing and tutorial party you may ask? Well, it is a chance for the community to meet and systematically review all of the current ROS tutorials while also testing the latest ROS release. What we attempt to do at the party is to test every ROS tutorial for every “flavor” of ROS user, or in other words, every combination of operating system (Ubuntu Linux, RedHat Linux, Windows, etc.), RMW implementation (FastDDS, Cyclone DDS, etc.), installation method, and CPU architecture (amd64, aarch64, etc.).

Now that we’ve frozen the Jazzy release, the core developer team is working on generating a set of “early release” binary and source packages for Jazzy Jalisco. We plan to make these pre-release binaries publicly available before the Testing and Tutorial Party. During the party we’ll release our testing repository with a long list of tests we would like to run on the testing version of Jazzy Jalisco. These tests will first ask contributors to pick a particular release “setup”, and then run either the test suite or work through one or more of the existing ROS 2 tutorials on docs.ros.org. Each “setup” is a specific combination of RMW vendor (FastDDS/Cyclone DDS/Connext DDS), build type (binary tarball/packages/source), host operating system (Ubuntu Nobel/RHEL-9/Windows), and architecture (amd64/aarch64). For each setup, we would like to perform a number of tests that validate our tutorials, core ROS functionality, and important features. With dozens possible setup configurations, testing each and every one internally just isn’t feasible. To ensure reproducibility of the tests it’s also valuable to get multiple evaluations of each test, which is why we need your help!

Tutorial party participants are asked to perform the tests they sign up for and report back the results. If you happen to find an issue or bug while participating in the tutorial party you’ll need to report it to us so it can get corrected before the Jazzy release.

We are planning to kick-off the tutorial party off at 4:00 PM on Wednesday, May 1, 2024 with a meeting where we explain the whole Testing and Tutorial Party Process. That meeting can be found on the OSRF Official Events Calendar. We’ll record the meeting and post instructions on Discourse for those who can’t make the meeting. To help motivate participants, we will be giving away ROS Jazzy Jalisco swag to the testers who complete the most tests during the tutorial party. Every time you complete a test or tutorial you will need to close the Github issue, and then fill out a short Google form. The Testing and Tutorial party participants with the most completed tests during the tutorial party will receive a credit to Zazzle to pick out some Jazzy swag. We’ll post more details about the tutorial party in about two weeks when we kick things off. For now, we’re outlining a rough sequence of events so everyone can set aside some time to participate. Here are the key dates you’ll want to remember:

  • 2024-05-01T07:00:00Z Tutorial & Testing Party begins Jazzy Jalisco
  • 2024-05-01T16:00:00Z Tutorial & Testing Party Hangout + Q&A
  • 2024-05-08T07:00:00Z ROS 2 Jazzy Jalisco logo and swag sale begins (tentative)
  • 2024-05-15T07:00:00Z Tutorial and Testing Party ends
  • 2024-05-23T07:00:00Z ROS 2 Jazzy Jalisco released

We have added these events to the OSRF Official Events Calendar, but the big one that you won’t want to miss is the kick-off event on 2024-05-01T16:00:00Z. At this tutorial party kickoff meeting we’ll walk everyone through the steps involved in participation. In the meantime we would like your help spreading the word about the Testing and Tutorial Party. We hope to see you there on May 1st!

Finally, if you would like to help support Open Robotics, and events like these, consider making a donation or joining the OSRA.

16 Likes

I was wondering, would it not be useful to have another process for the corporate world, in which participating companies upgrade their stack to Jazzy and test it using the “early release” binaries?
I see it as a win-win: Jazzy benefits of broader testing (not just of tutorials) and companies benefit from quicker support on issues they would have likely faced later on.

1 Like

Good point. Same for people like me maintaining e.g. drivers. I’d like to test on Jazzy with pre-release binaries to see if my stuff works on Noble/Jazzy. The earlier I can do that, the quicker the packages can be released to Jazzy.

@Bernd_Pfrommer @tnajjar Can you elaborate on what you think a “second process for the corporate world” would look like?

My understanding is that we already provide pre-release binaries for each release and everyone is welcome to take them for a test drive and report any issues they may have. Is there something I am missing here?

I believe the Testing and Tutorial party would not have been the success it was for Iron if the effort stopped at providing the early binaries.

My point is that the part I see missing for more corporate involvement in broader testing is similar to what it took for more community involvment for Tutorial testing and it’s mostly not at the technical level. Things like “making it a thing”, advertizing, highlighting the benefits to the companies, etc… @Katherine_Scott I think you know better than anyone what would be needed there :slight_smile:

At the company I work at (and previous ones), the rationale has always been: “for sure we want to upgrade to the latest LTS release but let’s wait some months after it’s released until the initial post-release bugs detected by other companies are ironed out”.
It would be great, for both sides, if there was some motivation to switch that rationale to: “Let’s participate in the (let’s call it) corporate testing party, so we can get the focused fast support of the core package maintainers on the issues we face and have a smooth upgrade ASAP”

I will note that many of our contributors come from the corporate world and have been testing improvements to rolling as we get closer to the Jazzy release. This is not as obvious as the testing and tutorial party, but it is definitely a substantial contribution that we could probably celebrate more.

@Katherine_Scott I was unaware of pre-release binaries for Jazzy. Ignorance is not bliss in this case. I followed the link you provided but it takes me to the post about the Iron Tutorial party.

Sorry, I don’t really know what process to suggest. Access to pre-release binaries such that I don’t have to build everything from scratch, that was mostly what I was looking for. I mainly wanted to stress the importance of package maintainers getting their stuff working and released on Jazzy. That also provides valuable testing for the base ROS2 packages as well.

1 Like

Yep! That is something we always provide. When we kick off the tutorial party on May 1, there will also be pre-release binaries available, along with instructions on how to use them.

I think @mjcarroll has a good point here. I don’t think you have good visibility into who is actually helping out with tests most of the time. A good number of our testers are coming from very large corporations. I don’t want to single any of them out by name, but many of them are Fortune 500 companies.

“for sure we want to upgrade to the latest LTS release but let’s wait some months after it’s released until the initial post-release bugs detected by other companies are ironed out”.

I certainly think this is a symptom of a larger problem where organizations with the means to support these efforts simply don’t. I can certainly do more to articulate the value of testing, but at the end of the day we really rely on individual contributors to make their organizations understand the value of these things. I can provide some talking points for ROS developers, but those developers are the ones who really know their organizations and decision makers.

You’ve also got just one developer advocate for three projects with tens of thousands of users. While I could certainly write a Medium think piece with the title “50 reasons why your company should help test the open source software you use every day” I don’t exactly have the bandwidth for that right now, and others have done similar things in the past. [link goes to arbitrary think piece] Having said that, I do have some plans to work on a project in that direction this summer with my intern (mainly around package maintainership). What would really help the project out is having our users be more vocal about their support (e.g. “5 Reasons ‘Our Cool Startup’ Participates in Testing Open Source”). As the old saying goes, “don’t take our word for it, ask our users / customers.”


If your concern is more related to branding, is this more what you are looking for? :grin: (don’t take this too seriously, a good meme is hard to pass up, especially in the ROS community)

5 Likes

I think @mjcarroll has a good point here. I don’t think you have good visibility into who is actually helping out with tests most of the time. A good number of our testers are coming from very large corporations.

I don’t doubt that, I’m not trying to say that there is no corporate involvement in any kind of testing; like you said I don’t have any visibility on that.

I think the point I’m trying to make is getting lost, so I’ll state it here clearly:

Enticing companies to test their complete stack on the new pre-release with their own testing suite and report issues is a win-win situation but I don’t see efforts in this direction

but at the end of the day we really rely on individual contributors to make their organizations understand the value of these things.

I find it much harder to encourage my organization to help testing random tutorials or rolling features than to encourage them to upgrade their ROS stack and report bugs early on that will affect the business. For the latter, I’d still need from you (OSRF?), some compelling process that offers a smooth upgrade and responsive support for the duration of the testing timeframe (e.g. migration guide and office hours).

In return, ROS gets not only more testers but especially more diverse testing conditions in the “real world”.

You’ve also got just one developer advocate for three projects with tens of thousands of users.

Now that’s a completly different issue, what can I say other than may the force be with you :sweat_smile: I guess what I’m proposing is not the kind of stuff that can be offloaded to the community

The pre-releases will come with installation instructions for those who are interested in testing. I’m sometimes amazed people want to test the pre-releases at all, we still have more than a third of the ROS community still using ROS 1. :sob:

I don’t know if there is much we can offer in terms of migration guides. My gut says that upgrades from Humble and Iron should be a fairly straightforward migration, but ROS 1 and early versions of ROS 2 may be more difficult and predicated on the initial distro. I’ll check in and see if can do office hours during the tutorial party. Having said that, most of our office hours have had sparse attendance so I’m more inclined to send people to Discord.

We at Nauticus Robotics recently completed our switch over from foxy to humble and definitely plan to go to jazzy at some point. We look forward to testing! Any idea if the ros:jazzy docker images will be available in time for the tutorial party? Also we’d love to grab some jazzy swag even if we don’t win the contest. Is there are a purchase link available?

Is Windows with WSL considered a “flavor” of ROS user?

The official ones will not be available. Due to the way we do releases, we can only build those official images after the day of the release.

However, we are looking into providing some “unofficial” images for people to use. We’ll have more details during the Tutorial party kickoff on May 1st.

WSL is not an official Tier 1 platform as defined in REP-2000. However, we welcome people testing on it and reporting issues. Just keep in mind that any WSL-specific issues will not be considered blocking for the release.

1 Like

Is ROS2 rmw_zenoh_cpp coming out before tutorial party for Jazzy release?

No, rmw_zenoh is not an official part of Jazzy, so we won’t be releasing it as an installable package right now.

That said, we are more than happy to get early feedback. You can follow the instructions at GitHub - ros2/rmw_zenoh: RMW for ROS 2 using Zenoh as the middleware to build it from source and try it out.

1 Like

The official ones will not be available. Due to the way we do releases, we can only build those official images after the day of the release.

However, we are looking into providing some “unofficial” images for people to use. We’ll have more details during the Tutorial party kickoff on May 1st.

Ha I was thinking the same thing.
If it’s of any use, some dockerfiles targetting the testing apt repo are available here Add images for Jazzy testing by mikaelarguedas · Pull Request #741 · osrf/docker_images · GitHub

(they all build except simulation / desktop_full due to some ros_ign_* packages)

2 Likes

Hello there,

We’ve just put together 2 solutions to quickly test Jazzy. They both use the ‘testing’ binaries at the moment and will be updated to use the release binaries upon… release.

Please find some quick indications below:

Launching a Jazzy Linux Container

The first solution is making use of LXD. Assuming you’re all set up (check the doc), you can launch a ROS 2 Jazzy ready container as follows,

lxc launch ubuntu:24.04 jazzy-lxc --config=user.user-data="$(curl -L https://gist.githubusercontent.com/artivis/0357fe03a5ae459bee8c55823fbb0af8/raw/0f62f4ccd7da7c4a0d42493df5fc027b359f4cc9/ros2.cloudinit.yaml)"

While you can access the container quickly after its instantiation, you better wait for its initialisation to finish,

$ lxc exec jazzy-lxc -- cloud-init status --wait
.................
status: done

After that you can shell into the container,

$ lxc exec jazzy-lxc -- sudo --login --user ubuntu

where a ready to use ROS 2 Jazzy environment awaits,

ubuntu@jazzy-lxc:~$ echo $ROS_DISTRO 
jazzy

Note that this also works for Humble simply replacing 24.04 in the launch command by 22.04 and similarly for Foxy with 20.04.

Launching a Jazzy VM

The second solution is making use of Multipass. While using LXD is restricted to Linux machines, Multipass can be used equally on Linux, Windows and macOS (see the doc).

Assuming Multipass is all set, and before launching the VM, we need to point Multipass toward the Jazzy recipe. This step will not be necessary in the future as once Jazzy is officially released. Note that the following slightly differ depending on your host OS; I’ll detail below how to update the Multipass snap.

Edit the systemd service as follows,

sudo systemctl edit snap.multipass.multipassd.service

and add the following,

[Service]
Environment="MULTIPASS_BLUEPRINTS_URL=https://github.com/artivis/multipass-blueprints/archive/refs/heads/feature/ros2-jazzy.zip"

After saving, restart the service,

sudo snap restart multipass

You can now launch a ROS 2 Jazzy ready VM with,

$ multipass launch ros2-jazzy -n jazzy-vm
Launched: jazzy-vm

You can then shell into the VM with,

multipass shell jazzy-vm

where a ready to use ROS 2 Jazzy environment awaits,

ubuntu@jazzy-vm:~$ echo $ROS_DISTRO 
jazzy

Final note

This was all put together to allow us to quickly spawn Jazzy environments. Give it a try and feel free to send me feedback here or by dm. I hope you will find either solution useful.

If you want to know more about using Multipass/LXD for ROS, please give a look at our past posts on the Ubuntu blog, e.g.:

Cheers.

2 Likes

The ROS Jazzy docker images are now available on Dockerhub ! :whale2:

Simply run this command to download and start a session in a Jazzy container:

docker run -it --rm ros:jazzy

The available tags are

ROS Jazzy images are available for the following platforms/architectures:

Ubuntu Noble:
  amd64
  arm64v8 (aarch64)

GUI images like “desktop_full”

The simulation, desktop and desktop-full images are available on the ‘osrf/ros’ docker hub profile

Meaning you can pull them like this:

docker pull osrf/ros:jazzy-desktop-full

The available tags are

As always:

Happy Testing and tutorial party! :whale: :turtle:

2 Likes