-
Notifications
You must be signed in to change notification settings - Fork 2.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Revert "Update python-lxml key." #31570
Revert "Update python-lxml key." #31570
Conversation
This reverts commit 7db7cb6.
The same problem occurs in |
I was the contributor of the initial pull requests and have several more in flight which continue to remove Trusty or Xenial-specific definitions. I think a better solution would be for the Kinetic packages provided by Canonical to provide and use separate rosdep sources which are maintained along with continued Xenial support. They could start, and possibly finish, with a snapshot of the rosdep database from April of last year. Since Canonical don't need to support other platforms beyond Ubuntu Xenial, they could generate additional rosdep defnitions for every package in Xenial and include that as a supplemental rosdep source.
In general we prefer the most condensed valid expression of definitions for a rosdep key. However omitting the operating system version requires that the package be available by that name in all supported distributions and |
Just like we do with snapshot repositories, I recommend you target a snapshot of You should be able to continue using rosdep as usual. |
ok, if you'd like to go this direction, please support something like |
I'm so sorry, but I don't understand your issues for supporting jammy clearly. I also want to know the concrete examples of the bad effects of old keys like |
IMO, I want to keep the old rosdistro keys. Our robots are running with ROS Indigo and Kinetic in private network. Our softwares are open-source, maintained on github and running CI with You recommended to use snapshot of rosdistro for old EOL distros, In that case, some developers may start using their own fork IMO, some part of ros releasing system relies on the policy that everyone should use the latest main branch of I don't understand the bad effect of old keys clearly, In conclusion, for CI and releasing system, I think we should share and use the same and latest cc. @smits |
I also want @smits to join this discussion, too. |
As a company we are still using xenial/kinetic. We understand that both are EOL, but following the mantra don't fix what ain't broken, we have been pushing upgrading to noetic forward as long as we can. We've done an initial trial of porting our product to bionic/noetic in May 2021 but after 2 weeks of porting and testing, we were still being confronted with missing dependencies and changed behaviour, which is why we stopped as there was zero added value for our customers and only a lot more work and uncertainty ahead. Our CI and CD stopped working since 2 days ago, we will be forced to find a solution fast which will probably be what @cottsay proposes if the community decides to move on and fully drop support for xenial/kinetic. |
The
Conditional dependencies help ease the transition between ROS and ROS 2 and the ROS transition between Python 2 and Python 3 in non-distribution-specific manner. Part of the reason for these conditionals was to avoid using distribution names entirely as there are community distributions out there both based on official distributions and completely independent which are able to make use of these conditions without requiring any patches to the ROS infrastructure code. Using conditions on the distribution name does not solve any problems that aren't already better addressed by Let's consider an example: <depend condition="ROS_PYTHON_VERSION==2">python-numpy</depend>
<depend condition="ROS_PYTHON_VERSION==3">python3-numpy</depend> Using rosdep to resolve a package with these dependencies will attempt to resolve When dependencies evolve from platform to platform (and thus from ROS distribution to ROS distribution) rosdep is the conditional mechanism by which those dependencies are selected. The problem is not a lack of conditions to cover scenarios. It is that Debian, Ubuntu, and ROS are all evolving projects with maintenance burdens and the older distributions need to give way so maintainer effort can be focused on the newer ones. The rosdep database is hard to maintain, contains at least 400 known inaccuracies (based on the rosdep_repo_check tool) which I've been steadily working to fix. But part of that fix involves cleaning up keys for platforms that we no longer support in order to both retain the accuracy of the database for supported platforms and reduce the amount of information dedicated to unsupported platforms. Official ROS distributions are not the only ROS distributions out there and I would be extremely hesitant to assign any kind of ordinality to named ROS distributions for a multitude of reasons. The current convention for ROS projects is to maintain different branches to support different distributions when needed and that should remain the case for dependency changes as with other source changes.
Changes to Kinetic and any inactive distribution in this repository are blocked. So backports into Kinetic itself using the official rosdistro database are not possible.#31570 (comment) If you're still making changes and adding further dependencies to an unsupported distribution, my recommendation is again, use static upstream rosdep sources and then add an additional custom source for the additional dependencies you require. In order to reach consensus without half of the participants currently out on a limb, I've opened #31613 to tempporarily redefine the recently changed keys for Ubuntu Xenial which effectively closes this PR. However I want to keep the discussion going. I see that @smits opened #31569 and I think we should continue the discussion there. I'll add a link back to this pull request and continue responding there. |
Reverts #31554
Canonical still supports xenial/kinetic https://ubuntu.com/engage/ros-kinetic-eol , I think we should revert this PR.
In addition to that, if we write like
we need to update distribution key every 2 year, so I think
is better