ci: Timeline to drop Xenial + Python 2 support #10606
Should determine when to remove support, and remove it.
This will be kept open until timelines are complete.
Per f2f, should define a date to make
Should also consider when to make platforms default to using Python 3. Could happen before or at the same time as build job switch. Min. 3 months before removing Python 2 support.
EDIT: Will be highly coupled to what our ROS1 support is.
@EricCousineau-TRI notable for the TRI side, we should endeavor to move past GCC-6 on Bionic internally, prior to GCC-5 (Xenial) disappearing from Drake's CI. If Drake CI only has GCC-7, we don't want to be firefighting GCC-6 issues in our internal CI. GCC-7 had major C++17 improvements, so GCC-6 and GCC-7 are relatively dissimilar.
Notes from f2f Kitware meeting:
Might also be able to push up Python 2 deprecation on Mac.
Possibly just make Mojave images be Python 3 only?
Yup, that's what we do in Anzu for things that require C extensions like
Regarding Python 2 vs 3 defaulting in Slack discussion:
I would say we initially try to target July 15. I will add a checkbox above.
changed the title
ci: Determine timeline for Xenial, Python 2 support
Jun 26, 2019
Just saw this ROS discourse post recently, but to @peteflorence's question about Python 2 + ROS1:
I haven't yet figured out what that means for Drake; my ideal minimum-effort solution is that we still only accommodate Python 3 after the October deadline, meaning that it would cut off use of ROS1 prebuilt binaries with Drake.
However, from my experience in Anzu with our limited use of ROS1, it seems like most core pure Python ROS1 packages support Python 3, and most C extension libraries (e.g.
On the ROS 2 front, it seems to be up and coming, but the translation is still not completely trivial, and there are some remaining RViz features to be ported that had stopped me during my spike test. There is some active work on this, and I will revisit it later either this quarter or next.
In short: It's, uh, complicated, given ROS1's scheduling having dead-time to support Python 3 after Python 2's EOL, and possibly not supporting 16.04 / 18.04 for Noetic... :(