Hi all,
Hope you are enjoying LensKit! I am reviewing our Python version support policies. Right now, we support the version of Python 3 shipped in the most recent stable release of major distributions for new releases of LensKit: RHEL (3.6 in RHEL8), Debian (3.7 in Buster), and Ubuntu LTS (3.8 in Focal). This means we currently continue to support Python 3.6, CI tests on Python 3.6, and we fix bugs on 3.6 when possible (and I just learned that one previously only known to affect Mac affects Linux as well:
https://github.com/lenskit/lkpy/issues/166).
The goal of this is to make it easy to use LensKit on your system Python, although I generally recommend people use Anaconda instead of pip to install LensKit if practical.
However, the NumPy folks produced an informational guidance doc, NEP 29, that recommends support schedules across the scientific Python ecosystem:
https://numpy.org/neps/nep-0029-deprecation_policy.html. Several projects, including Dask, Matplotlib, and Pandas (I think), have adopted this schedule. According to NEP29, we could have dropped Python 3.6 support in LensKit 0.12 (along with NumPy 1.16 support, which would simplify our random number generation support code - we've got some kludges around to support 1.16's RNG).
Adopting NEP 29 would synchronize our support practices with much of the rest of the Scientific Python ecosystem. If we do not adopt NEP 29, using LensKit with older versions of Python would also require older versions of its dependencies. We currently only support Python itself from stable Linux distros - I do not invest any time in tracking other dependencies (with the occasional exception of NumPy) to make sure LensKit works with distro-packaged Python dependencies, we assume that you're using virtualenv with your system Python.
The only downside I see to adopting NEP 29 is that it means people working on Linux systems that only provide Python 3.6 (RHEL8, old Ubuntu) will need to obtain a Python from elsewhere (Anaconda, pyenv, or something like that) in order to use the latest release of LensKit.
Thoughts? If there is not significant objection, I am inclined to adopt NEP29 beginning in LensKit 0.13, but want to get input first :).
- Michael
--
I may send mail outside of working hours; I do not expect you to. He/him.