Set required versions for GROMACS 2021 - Redmine #3047
For GROMACS 2021, specify minimum support versions of dependencies, tools, and interacting software. Document and confirm test coverage.
Remember that they start being relevant to users when we release in 2021. Remember, there is a trade-off between what new things we can do (because we support a smaller range of things) vs what things we might require some users to do (because GROMACS no longer builds out of the box for them). Your workload as a GROMACS developer goes up for each extra version we support, even if that only shows up in what you have to do to keep Jenkins happy, or how hard it is for you to get access to others’ feedback because they are thinking about something that is mysteriously broken in some Jenkins combination. Also, versions that may or may not be the bases for forks that support hardware that GROMACS users might have that isn’t already shipping in early 2021 really shouldn’t factor highly.
Ref:
https://redmine.gromacs.org/projects/gromacs/repository/revisions/master/entry/docs/install-guide/index.rst
Ref: https://redmine.gromacs.org/issues/2831
CMake
proposed (#3290): 3.12
C Compilers
gcc
See below Unless something compelling comes along, let’s give sysadmins a break for 2021, then bump to gcc 7 for C++17 support in 2022.
We decided to require gcc 7 for the appropriate level of support for C++17 in both compiler and std library
See also discussion at #3297
icc
clang
updating to clang-3.9 would avoid running into some issues where the standard was updated.
CUDA
OpenCL
MPI
2.0 is suggested at #3591 (closed)
Python interpreter
The end-of-life schedule for Python minor versions may be too aggressive to guide support plans in the context of HPC installations, but it is becoming easier to manage multiple/custom Python installations, and potentially extra hassle to get EOLed versions into our testing infrastructure. It may be worth dropping support for 3.5 to simplify testing. There are also various improvements to Python meta-typing in 3.6 that allow removal of some awkward boiler plate in gmxapi. Let’s make this choice as #3272 gets wrapped u
Documentation
Doxygen
Sphinx
Source code checking and other infrastructure
clang-format and clang-tidy may warrant coordinated clang infrastructure versioning as clangd becomes more useful and widespread.
(from redmine: issue id 3047, created on 2019-07-23 by eirrgang)
- Relations:
- relates #2899 (closed)
- duplicates #3065 (closed)
- child #2905 (closed)
- child #3033 (closed)
- child #3290 (closed)