Update testing matrix versions for GROMACS 2020 release
This meta tasks collects a set of smaller tasks related to infrastructures. These should be stable preferably at least a month before the beta release (for which we now have a target).
We will consider updating the supported versions other important things (e.g. clang, gcc, CUDA, cmake) that come out after the date of that target. However no such changes will happen before the first beta, and we will plan/discuss/review them with a higher focus on stability of the code and and its functionality. For example, we have previously patched released versions to support CUDA versions that came out during the final stages of (or after) our release cycle.
Please add TODO items as you see new releases of things we test. Please discuss below if there's things we should start or stop doing.
- support clang 8 - Fix in gerrit
- update compilation matrix entries to clang 8 - fix in gerrit
- update ASAN/MSAN/TSAN matrix entries to clang 8 - fix in gerrit
- update to clang-tidy-8 - WIP
- update to clang-static-analyzer-8 - fix in gerrit
- support gcc 9 - fix in gerrit
- use clang-format - WIP, some progress in gerrit
Fix clang-tidy-7 issues
These are detected on the mac build agent, but weren't on a Linux one,
e.g. because there is a system xdr library found on Linux.
Test specific hwloc versions
Now that releng understands the installed hwloc versions, we can
specify those in the matrix configurations. We can also specify that a
test configuration requires hwloc, but don't have to specify the
version. And we can leave it auto and provide a specific version of
the library to get detected automatically.
Update testing matrices and fix warnings
Updated to test gcc 9, clang 8, and cmake 3.15.1.
Also fixes for compilation with gcc 9 and clang 9 (still in release
candidate, not yet released)
Added a gmx_source_file_warning_suppression() CMake helper function
(like the recently introduced gmx_target_warning_suppression()) to
manage per-source-file suppressions. This is used to suppress a
warning about the abuse of t_inputrec that is too difficult to fix
without replacing all of the handling of initialization and broadcast
of t_inputrec and subfields.
This is useful in itself, but mainly prepares to modernize other users
of t_rgb, which need it to have a constructor.
Also made a comment more neutral
Modernize t_matrix, t_mapping, t_rgb
This supports removing some manual string handling that regularly
troubles e.g. the static analyzer.
Made more use of vector, ArrayRef and ssize.
Stopped installing matio.h, because the transformation introduced
here was going to lead to many more files installed, and we anyway
plan to remove the serendipitous API that we have.
Converted a CUDA config to use clang host-only compilation
This is distinct from the clang_cuda configuration because that one
uses clang also for device compilation. This one doesn't use the
modified build system, and will be easier to update when NVIDIA
support newer clang versions on Linux.
#7 Updated by Mark Abraham about 1 month ago
- Target version changed from 2020-infrastructure-stable to 2020-infrastructure-update-post-beta1
We plan to do several disruptive things alongside the beta release, including
- switch to clang-format
- adopt gitlab for CI
- remove \inpublicapi annotations on documentation
- move sim_util.cpp to its own module
- rename ArrayRef to span
- rename methods with view in the name that return span-like things to have span in the name (thus constPositionsSpan() and positionsSpan())