Proposed changes to the ROS releases

First, apologies for being so quiet on this after the initial post; I was busy getting Melodic out. Now that that is done, I’m going to try and address some of the comments all at once here. Feel free to follow up.

As you mention, this is closer to the Debian model, and has similar benefits along the testing/unstable/stable axis. I do like the ability to get some additional testing on packages before they go out, though I will point out that ros-shadow-fixed does provide that capability today. I will also point out that even if we don’t decide to do that right away, it seems like a natural extension later on.

We can certainly have some guidelines, that makes sense (this proposal wasn’t meant to be all of the details, just to get the initial conversation started and gauge community interest). However, as you point out in several places, we don’t really have mechanisms to enforce any of the guidelines, we just have to trust the maintainers to do the correct thing.

It is kind of tautological, but the removal of packages on non-LTS Ubuntu distributions removes testing on Ubuntu non-LTS, and doesn’t really have much other impact on automated testing. The rolling release is meant to fill in that gap. As for how it affects things like meta-ros, I don’t really know.

We could go in that direction, but honestly, given the numbers we’ve seen, there is just no reason to support the Ubuntu non-LTS versions. So few people use them that the amount of testing we get there is negligible.

Overall, I’m not usually a huge fan of prolonged testing cycles. My experience has been that you get a flurry of activity right at the beginning or right at the end (sometimes both), but the middle sees little use and thus you get little value out of it. Since maintainers have the ability to update their packages after a release, I’d rather see the release out there and then make improvements to it along the way.

Good question. I think either could work, though if we are making users download a tarball and extract it anyway, I would lean towards using rosdep for this.

There are a few different things we could do with deprecations. If a package is marked as deprecated/orphaned, we could immediately remove it from the rolling release, which would be a clear signal to downstream consumers that it won’t be available in the next LTS. Or we could let it continue to build in the rolling distro until it starts failing, and only remove it then. I’m generally in favor of failing loud and early, so I’d lean towards the former, but we haven’t come up with any of those details yet.

I also don’t know all of the details here, so I can’t give a direct answer. I agree that this seems like a limitation that could be overcome, but I don’t know how much work that would be.

The intent is that the packages will be taken from the last LTS into the new rolling distribution immediately after the LTS is released. See my earlier answer about abandoned packages; there are a few different things we could do here.

The initial proposal does call for using the latest Ubuntu LTS for at least 6 months (basically, until the next Ubuntu non-LTS is released). The main driver for the rolling distribution is to give maintainers advanced notice of platform changes that are coming, so we would want to switch to the non-LTS as soon as it was available. The last ROS LTS is still available, and can still get package updates, so users who need stability can still use that. If we did something more like @gbiggs testing/unstable/stable idea, that could potentially bridge that gap a bit more, though it is more work both to develop the infrastructure and for the maintainers long-term. It is something we will have to consider.