Prune change-management.rst and update links.
authorM. Eric Irrgang <mei2n@virginia.edu>
Fri, 3 Apr 2020 10:07:34 +0000 (10:07 +0000)
committerMark Abraham <mark.j.abraham@gmail.com>
Fri, 3 Apr 2020 10:07:34 +0000 (10:07 +0000)
Replaced more URLS and updated or removed most references to
Redmine and Gerrit.

References to Gerrit that occur in conjunction with references to
Jenkins are left untouched, since there are other works in progress
related to updating the releng documentation that presumably will
update the Jenkins-related documentation.

135 files changed:
CMakeLists.txt
admin/builds/clang-analyzer.py [deleted file]
admin/builds/clang-format-update.py [deleted file]
admin/builds/clang-format.py [deleted file]
admin/builds/coverage.py [deleted file]
admin/builds/documentation.py [deleted file]
admin/builds/get-version-info.py [deleted file]
admin/builds/gpubufferops-matrix.txt [deleted file]
admin/builds/gpucomm-matrix.txt [deleted file]
admin/builds/gpuupdate-matrix.txt [deleted file]
admin/builds/gromacs.py [deleted file]
admin/builds/nightly-matrix.txt [deleted file]
admin/builds/post-submit-matrix.txt [deleted file]
admin/builds/pre-submit-matrix.txt [deleted file]
admin/builds/regressiontests-update.py [deleted file]
admin/builds/release-matrix.txt [deleted file]
admin/builds/source-package.py [deleted file]
admin/builds/uncrustify.py [deleted file]
admin/builds/update-regtest-hash.py [deleted file]
admin/clang-format.sh
admin/copyright.sh
admin/git-pre-commit
admin/uncrustify.cfg [deleted file]
admin/uncrustify.sh [deleted file]
cmake/gmxGenerateVersionInfo.cmake
cmake/gmxManageLinearAlgebraLibraries.cmake
cmake/gmxManageNvccConfig.cmake
cmake/gmxManageSimd.cmake
cmake/gmxVersionInfo.cmake
docs/conf.cmakein.py
docs/dev-manual/change-management.rst
docs/dev-manual/code-formatting.rst
docs/dev-manual/commitstyle.rst
docs/dev-manual/contribute.rst
docs/dev-manual/gitlab.rst
docs/dev-manual/language-features.rst
docs/dev-manual/reportstyle.rst
docs/dev-manual/style.rst
docs/dev-manual/tools.rst
docs/doxygen/suppressions.txt
docs/gmxapi/reference/datamodel.rst
docs/gmxapi/userguide/install.rst
docs/gmxapi/userguide/usage.rst
docs/gmxapi/userguide/userguide.rst
docs/reference-manual/preface.rst
docs/release-notes/2016/major/bugs-fixed.rst
docs/release-notes/2018/major/miscellaneous.rst
docs/release-notes/2019/2019.2.rst
docs/release-notes/2019/2019.3.rst
docs/release-notes/2019/2019.4.rst
docs/release-notes/2019/2019.5.rst
docs/release-notes/2019/2019.6.rst
docs/release-notes/2020/2020.1.rst
docs/release-notes/2020/2020.2.rst
docs/release-notes/2020/major/bugs-fixed.rst
docs/release-notes/2020/major/deprecated-functionality.rst
docs/release-notes/2020/major/features.rst
docs/release-notes/2020/major/highlights.rst
docs/release-notes/2020/major/miscellaneous.rst
docs/release-notes/2020/major/performance.rst
docs/release-notes/2020/major/portability.rst
docs/release-notes/2020/major/removed-functionality.rst
docs/release-notes/2020/major/tools.rst
docs/release-notes/2021/major/bugs-fixed.rst
docs/release-notes/2021/major/deprecated-functionality.rst
docs/release-notes/2021/major/features.rst
docs/release-notes/2021/major/highlights.rst
docs/release-notes/2021/major/miscellaneous.rst
docs/release-notes/2021/major/performance.rst
docs/release-notes/2021/major/portability.rst
docs/release-notes/2021/major/removed-functionality.rst
docs/release-notes/2021/major/tools.rst
docs/release-notes/index.rst
docs/release-notes/older/index.rst
python_packaging/README.md
python_packaging/docker/README.md
python_packaging/docker/ci.dockerfile
python_packaging/sample_restraint/CMakeLists.txt
python_packaging/sample_restraint/README.md
python_packaging/sample_restraint/tests/CMakeLists.txt
python_packaging/src/CMakeLists.txt
python_packaging/src/external/pybind/include/pybind11/pybind11.h
python_packaging/src/gmxapi/export_context.cpp
python_packaging/src/gmxapi/export_tprfile.cpp
python_packaging/src/gmxapi/version.py
python_packaging/test/test_fr08.py
share/top/amber03.ff/tip5p.itp
share/top/amber03.ff/watermodels.dat
share/top/amber94.ff/tip5p.itp
share/top/amber94.ff/watermodels.dat
share/top/amber96.ff/tip5p.itp
share/top/amber96.ff/watermodels.dat
share/top/amber99.ff/tip5p.itp
share/top/amber99.ff/watermodels.dat
share/top/amber99sb-ildn.ff/tip5p.itp
share/top/amber99sb-ildn.ff/watermodels.dat
share/top/amber99sb.ff/tip5p.itp
share/top/amber99sb.ff/watermodels.dat
share/top/amberGS.ff/tip5p.itp
share/top/amberGS.ff/watermodels.dat
share/top/charmm27.ff/tip5p.itp
share/top/charmm27.ff/watermodels.dat
share/top/oplsaa.ff/tip5p.itp
share/top/oplsaa.ff/watermodels.dat
src/api/CMakeLists.txt
src/api/cpp/context.cpp
src/api/cpp/include/gmxapi/gmxapi.h
src/api/cpp/tests/CMakeLists.txt
src/api/cpp/workflow.cpp
src/gromacs/CMakeLists.txt
src/gromacs/domdec/gpuhaloexchange_impl.cu
src/gromacs/ewald/pme.h
src/gromacs/ewald/pme_gpu_constants.h
src/gromacs/ewald/pme_gpu_program_impl.h
src/gromacs/gmxpreprocess/topio.cpp
src/gromacs/gpu_utils/clfftinitializer.h
src/gromacs/gpu_utils/ocl_compiler.h
src/gromacs/listed_forces/bonded.cpp
src/gromacs/math/CMakeLists.txt
src/gromacs/mdlib/lincs_gpu.cu
src/gromacs/mdrun/md.cpp
src/gromacs/mdrun/runner.cpp
src/gromacs/mdrun/simulationcontext.h
src/gromacs/mdtypes/commrec.h
src/gromacs/modularsimulator/constraintelement.cpp
src/gromacs/pbcutil/pbc_aiuc.h
src/gromacs/pbcutil/pbc_aiuc_cuda.cuh
src/gromacs/utility.h
src/gromacs/utility/CMakeLists.txt
src/gromacs/utility/dir_separator.h
src/programs/mdrun/tests/moduletest.cpp
src/programs/mdrun/tests/rerun.cpp
src/programs/mdrun/tests/termination.cpp
src/testutils/simulationdatabase/one-tip5p.top
tests/CMakeLists.txt

index 22302be17f1a6a16b86b033d7727c71e68a02688..4c834b0b19fa7ea8371e0100a0262347d2b2c527 100644 (file)
@@ -837,7 +837,7 @@ if (BUILD_TESTING)
 endif()
 
 # TODO: Determine control flow and defaults for package installation and testing use cases.
-# Ref: http://redmine.gromacs.org/issues/2896
+# Ref: https://gitlab.com/gromacs/gromacs/-/issues/2896
 option(GMX_PYTHON_PACKAGE "Configure gmxapi Python package" OFF)
 mark_as_advanced(GMX_PYTHON_PACKAGE)
 
@@ -856,7 +856,7 @@ if (NOT GMX_BUILD_MDRUN_ONLY)
     if(GMX_PYTHON_PACKAGE)
         find_package(PythonInterp 3.6 REQUIRED)
         # Note: PythonLibs will be found later by pybind11.
-        # TODO: (issue #2998) When CMake >= 3.12 is required, update detection.
+        # TODO: (Issue #2998) When CMake >= 3.12 is required, update detection.
         # I.e.  find_package(Python3 3.6 COMPONENTS Interpreter Development REQUIRED)
     else()
         find_package(PythonInterp 3.6)
diff --git a/admin/builds/clang-analyzer.py b/admin/builds/clang-analyzer.py
deleted file mode 100644 (file)
index 1b1129e..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-#
-# This file is part of the GROMACS molecular simulation package.
-#
-# Copyright (c) 2015,2016,2017,2018,2019, by the GROMACS development team, led by
-# Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
-# and including many others, as listed in the AUTHORS file in the
-# top-level source directory and at http://www.gromacs.org.
-#
-# GROMACS is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public License
-# as published by the Free Software Foundation; either version 2.1
-# of the License, or (at your option) any later version.
-#
-# GROMACS is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with GROMACS; if not, see
-# http://www.gnu.org/licenses, or write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA.
-#
-# If you want to redistribute modifications to GROMACS, please
-# consider that scientific software is very special. Version
-# control is crucial - bugs must be traceable. We will be happy to
-# consider code for inclusion in the official distribution, but
-# derived work must not be called official GROMACS. Details are found
-# in the README & COPYING files - if they are missing, get the
-# official version at http://www.gromacs.org.
-#
-# To help us fund GROMACS development, we humbly ask that you cite
-# the research papers on the package. Check out http://www.gromacs.org.
-
-# These options need to match the node label in Jenkins and the
-# capabilities in releng/agents.py for the agent where the analysis is
-# intended to run.
-build_options = ['clang-8', 'clang-static-analyzer-8']
-
-# Policy global variables
-use_stdlib_through_env_vars = False
-
-def do_build(context):
-    cmake_opts = {
-            'CMAKE_BUILD_TYPE': 'Debug',
-            # Build tests as part of the all target.
-            'GMX_DEVELOPER_BUILD': 'ON',
-            'GMX_GPU': 'OFF',
-            'GMX_OPENMP': 'OFF',
-            'GMX_SIMD': 'None',
-            'GMX_USE_RDTSCP': 'OFF',
-            'GMX_FFT_LIBRARY': 'fftpack',
-            'GMX_CLANG_ANALYZER' : 'ON'
-        }
-    context.env.append_to_env_var('CXXFLAGS', '-stdlib=libc++')
-
-    context.run_cmake(cmake_opts)
-    context.build_target(target=None)
-    context.process_clang_analyzer_results()
diff --git a/admin/builds/clang-format-update.py b/admin/builds/clang-format-update.py
deleted file mode 100644 (file)
index 237b95e..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-#
-# This file is part of the GROMACS molecular simulation package.
-#
-# Copyright (c) 2019, by the GROMACS development team, led by
-# Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
-# and including many others, as listed in the AUTHORS file in the
-# top-level source directory and at http://www.gromacs.org.
-#
-# GROMACS is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public License
-# as published by the Free Software Foundation; either version 2.1
-# of the License, or (at your option) any later version.
-#
-# GROMACS is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with GROMACS; if not, see
-# http://www.gnu.org/licenses, or write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA.
-#
-# If you want to redistribute modifications to GROMACS, please
-# consider that scientific software is very special. Version
-# control is crucial - bugs must be traceable. We will be happy to
-# consider code for inclusion in the official distribution, but
-# derived work must not be called official GROMACS. Details are found
-# in the README & COPYING files - if they are missing, get the
-# official version at http://www.gromacs.org.
-#
-# To help us fund GROMACS development, we humbly ask that you cite
-# the research papers on the package. Check out http://www.gromacs.org.
-
-def do_build(context):
-    context.env.set_env_var('CLANG_FORMAT', context.env.get_clang_format_command('7'))
-    clangformat_log = context.workspace.get_path_for_logfile('clang-format.log', category='clang-format')
-    cmd = ['admin/clang-format.sh', 'update', '--rev=HEAD^', '--warnings=' + clangformat_log]
-    ret = context.run_cmd(cmd, use_return_code=True)
-    if ret == 1:
-        with open(clangformat_log, 'r') as f:
-            warnings = f.readlines()
-        if len(warnings) <= 5:
-            details = [x.rstrip() for x in warnings]
-        else:
-            format_count = 0
-            for w in warnings:
-                if 'clang-format performed' in w:
-                    format_count += 1
-            details = []
-            if format_count > 0:
-                details.append('fixed formatting issues in {0} files'.format(format_count))
-    elif ret != 0:
-        raise BuildError('clang-format.sh failed to run')
-
-    context.workspace.upload_revision(project=Project.GROMACS, file_glob='*')
diff --git a/admin/builds/clang-format.py b/admin/builds/clang-format.py
deleted file mode 100644 (file)
index 6582cd9..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-#
-# This file is part of the GROMACS molecular simulation package.
-#
-# Copyright (c) 2019, by the GROMACS development team, led by
-# Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
-# and including many others, as listed in the AUTHORS file in the
-# top-level source directory and at http://www.gromacs.org.
-#
-# GROMACS is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public License
-# as published by the Free Software Foundation; either version 2.1
-# of the License, or (at your option) any later version.
-#
-# GROMACS is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with GROMACS; if not, see
-# http://www.gnu.org/licenses, or write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA.
-#
-# If you want to redistribute modifications to GROMACS, please
-# consider that scientific software is very special. Version
-# control is crucial - bugs must be traceable. We will be happy to
-# consider code for inclusion in the official distribution, but
-# derived work must not be called official GROMACS. Details are found
-# in the README & COPYING files - if they are missing, get the
-# official version at http://www.gromacs.org.
-#
-# To help us fund GROMACS development, we humbly ask that you cite
-# the research papers on the package. Check out http://www.gromacs.org.
-
-def do_build(context):
-    context.env.set_env_var('CLANG_FORMAT', context.env.get_clang_format_command('7'))
-    clangformat_log = context.workspace.get_path_for_logfile('clang-format.log', category='clang-format')
-    copyright_log  = context.workspace.get_path_for_logfile('copyright.log', category='copyright')
-    cmd = ['admin/clang-format.sh', 'check', '--rev=HEAD^', '--warnings=' + clangformat_log]
-    ret = context.run_cmd(cmd, use_return_code=True)
-    if ret == 1:
-        with open(clangformat_log, 'r') as f:
-            warnings = f.readlines()
-        if len(warnings) <= 5:
-            details = [x.rstrip() for x in warnings]
-        else:
-            format_count = 0
-            for w in warnings:
-                if 'needs formatting' in w:
-                    format_count += 1
-            details = []
-            if format_count > 0:
-                details.append('formatting issues in {0} files'.format(format_count))
-        context.mark_unstable(reason='clang-format.sh found issues', details=details)
-    elif ret != 0:
-        raise BuildError('clang-format.sh failed to run')
-
-    cmd = ['admin/copyright.sh', 'check', '--rev=HEAD^', '--warnings=' + copyright_log]
-    ret = context.run_cmd(cmd, use_return_code=True)
-    if ret == 1:
-        with open(copyright_log, 'r') as f:
-            warnings = f.readlines()
-        if len(warnings) <= 5:
-            details = [x.rstrip() for x in warnings]
-        else:
-            cpyear_count = 0
-            cpheader_count = 0
-            for w in warnings:
-                if 'copyright year' in w:
-                    cpyear_count += 1
-                if 'copyright header' in w:
-                    cpheader_count += 1
-            details = []
-            if cpyear_count > 0:
-                details.append('copyright year missing in {0} files'.format(cpyear_count))
-            if cpheader_count > 0:
-                details.append('copyright header issues in {0} files'.format(cpheader_count))
-        context.mark_unstable(reason='copyright.sh found issues', details=details)
-    elif ret != 0:
-        raise BuildError('copyright.sh failed to run')
diff --git a/admin/builds/coverage.py b/admin/builds/coverage.py
deleted file mode 100644 (file)
index 9c3b29d..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-#
-# This file is part of the GROMACS molecular simulation package.
-#
-# Copyright (c) 2015,2016,2017,2019, by the GROMACS development team, led by
-# Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
-# and including many others, as listed in the AUTHORS file in the
-# top-level source directory and at http://www.gromacs.org.
-#
-# GROMACS is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public License
-# as published by the Free Software Foundation; either version 2.1
-# of the License, or (at your option) any later version.
-#
-# GROMACS is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with GROMACS; if not, see
-# http://www.gnu.org/licenses, or write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA.
-#
-# If you want to redistribute modifications to GROMACS, please
-# consider that scientific software is very special. Version
-# control is crucial - bugs must be traceable. We will be happy to
-# consider code for inclusion in the official distribution, but
-# derived work must not be called official GROMACS. Details are found
-# in the README & COPYING files - if they are missing, get the
-# official version at http://www.gromacs.org.
-#
-# To help us fund GROMACS development, we humbly ask that you cite
-# the research papers on the package. Check out http://www.gromacs.org.
-
-import os.path
-
-build_options = ['gcc-7', 'gcov-7']
-extra_projects = [Project.REGRESSIONTESTS]
-
-def do_build(context):
-    cmake_opts=dict()
-    cmake_opts['CMAKE_BUILD_TYPE'] = 'Debug'
-    cmake_opts['GMX_BUILD_FOR_COVERAGE'] = 'ON'
-    cmake_opts['CMAKE_C_FLAGS'] = '--coverage -g'
-    cmake_opts['CMAKE_CXX_FLAGS'] = '--coverage -g'
-    cmake_opts['GMX_GPU'] = 'OFF'
-    # Ideally, this would be Reference, but running the regression tests is way
-    # too slow that way (and also with None)...
-    cmake_opts['GMX_SIMD'] = 'SSE4.1'
-    cmake_opts['GMX_USE_RDTSCP'] = 'DETECT'
-
-    context.env.set_env_var('GMX_NO_TERM', '1')
-
-    context.run_cmake(cmake_opts)
-    context.build_target(target=None)
-    context.build_target(target='tests')
-
-    context.run_ctest(args=['--output-on-failure'])
-
-    context.env.prepend_path_env(os.path.join(context.workspace.build_dir, 'bin'))
-    context.chdir(context.workspace.get_project_dir(Project.REGRESSIONTESTS))
-    cmd = ['perl', 'gmxtest.pl', '-xml', 'all', '-nt', '2']
-    context.run_cmd(cmd, failure_message='Regression tests failed to execute')
-
-    context.process_coverage_results(exclude=['^src/external/'])
diff --git a/admin/builds/documentation.py b/admin/builds/documentation.py
deleted file mode 100644 (file)
index 386f26e..0000000
+++ /dev/null
@@ -1,160 +0,0 @@
-#
-# This file is part of the GROMACS molecular simulation package.
-#
-# Copyright (c) 2015,2016,2017,2018,2019, by the GROMACS development team, led by
-# Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
-# and including many others, as listed in the AUTHORS file in the
-# top-level source directory and at http://www.gromacs.org.
-#
-# GROMACS is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public License
-# as published by the Free Software Foundation; either version 2.1
-# of the License, or (at your option) any later version.
-#
-# GROMACS is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with GROMACS; if not, see
-# http://www.gnu.org/licenses, or write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA.
-#
-# If you want to redistribute modifications to GROMACS, please
-# consider that scientific software is very special. Version
-# control is crucial - bugs must be traceable. We will be happy to
-# consider code for inclusion in the official distribution, but
-# derived work must not be called official GROMACS. Details are found
-# in the README & COPYING files - if they are missing, get the
-# official version at http://www.gromacs.org.
-#
-# To help us fund GROMACS development, we humbly ask that you cite
-# the research papers on the package. Check out http://www.gromacs.org.
-
-import os
-import re
-
-build_options = ['doxygen-1.8.5']
-build_out_of_source = True
-
-extra_options = {
-    'source-md5': Option.string
-}
-
-def do_build(context):
-    cmake_opts = {
-            'GMX_BUILD_HELP': 'ON',
-            'GMX_BUILD_MANUAL': 'ON',
-            'SOURCE_MD5SUM': context.opts.source_md5,
-            'CMAKE_BUILD_TYPE': 'Debug',
-            'GMX_GPU': 'OFF',
-            'GMX_OPENMP': 'OFF',
-            'GMX_SIMD': 'None',
-            'GMX_USE_RDTSCP': 'OFF'
-        }
-    release = (context.job_type == JobType.RELEASE)
-    if release:
-        cmake_opts['GMX_BUILD_TARBALL'] = 'ON'
-    elif context.job_type == JobType.GERRIT:
-        cmake_opts['GMX_COMPACT_DOXYGEN'] = 'ON'
-    cmake_opts['DOXYGEN_EXECUTABLE'] = context.env.doxygen_command
-    context.run_cmake(cmake_opts)
-
-    # we keep the individual build targets here to ensure some
-    # granularity of the resulting error messages (if any).
-    # it would be possible to run everything at once with
-    # target=webpage, but then debugging a failed build would
-    # become exceedingly tedious
-    context.build_target(target='sphinx-input', parallel=True,
-            failure_string='Generating Sphinx input failed',
-            continue_on_failure=True)
-    context.build_target(target='sphinx-programs', parallel=True,
-            failure_string='Running gmx help -export rst failed',
-            continue_on_failure=True)
-
-    context.build_target(target='manual', parallel=True,
-            target_descr='PDF manual', continue_on_failure=True)
-    logfile = os.path.join(context.workspace.build_dir, 'docs/manual/gromacs.log')
-    if os.path.isfile(logfile):
-        with open(logfile, 'r') as f:
-            manual_log = f.read()
-        if re.search(r'LaTeX Warning: Reference .* on page .* undefined', manual_log):
-            context.mark_unstable('undefined references in PDF manual')
-    context.publish_logs([logfile])
-
-    # check-source is not necessary for a release build, and building these
-    # separately causes many of the Doxygen targets to get built twice if run
-    # from a tarball.
-    if not release:
-        context.build_target(target='doxygen-all', parallel=True,
-                target_descr='Doxygen documentation', continue_on_failure=True)
-        context.build_target(target='check-source', parallel=True,
-                failure_string='check-source failed to run', continue_on_failure=True)
-        logs = []
-        for target in ('check-source', 'doxygen-xml', 'doxygen-user',
-                'doxygen-lib', 'doxygen-full'):
-            logfile = os.path.join(context.workspace.build_dir,
-                    'docs/doxygen/{0}.log'.format(target))
-            if os.path.isfile(logfile) and os.stat(logfile).st_size > 0:
-                context.mark_unstable('{0} produced warnings'.format(target))
-            logs.append(logfile)
-        context.publish_logs(logs, category='doxygen')
-        if context.failed:
-            return
-
-    if context.failed:
-        return
-
-    sphinx_targets = [ ('webpage-sphinx', 'html', 'HTML') ]
-    if not release:
-        sphinx_targets.extend((
-                ('man', 'man', 'man page'),
-                ('install-guide', 'install', 'install-guide')
-            ))
-    logs = []
-    for target, log, descr in sphinx_targets:
-        context.build_target(target=target, parallel=True,
-                failure_string='Sphinx: {0} generation failed'.format(descr),
-                continue_on_failure=True)
-        logfile = os.path.join(context.workspace.build_dir,
-                'docs/sphinx-{0}.log'.format(log))
-        if os.path.isfile(logfile) and os.stat(logfile).st_size > 0:
-            context.mark_unstable('Sphinx: {0} generation produced warnings'.format(descr))
-        logs.append(logfile)
-    context.publish_logs(logs, category='sphinx')
-    if context.failed:
-        return
-
-    context.build_target(target='webpage', parallel=True)
-    if context.failed:
-        return
-
-    ignore_urls = ['html-full', 'html-user', 'html-lib', '.tar.gz', '_sources']
-    cmd = ['linkchecker', 'docs/html/index.html', '-f',
-            context.workspace.get_project_dir(Project.GROMACS) + '/docs/linkcheckerrc',
-            '-Fxml']
-    for url in ignore_urls:
-        cmd.extend(['--ignore-url', url])
-
-    context.run_cmd(cmd, ignore_failure=False)
-
-    logfile = os.path.join(context.workspace.build_dir,
-        'docs/linkchecker-out.xml')
-    if os.path.isfile(logfile):
-        with open(logfile, 'r') as f:
-            manual_log = f.read()
-            if re.search(r'URLError:', manual_log):
-                context.mark_unstable('non resolvable URL in webpage')
-            if re.search(r'warnings', manual_log):
-                context.mark_unstable('empty pages in web documentation')
-        context.publish_logs([logfile], category='webpage')
-
-    if context.failed:
-        return
-
-    if release:
-        version_info = context.read_cmake_variable_file('VersionInfo.cmake')
-        version = version_info['GMX_VERSION_STRING']
-        package_name = 'website-' + version
-        context.make_archive(package_name, root_dir='docs/html', prefix=package_name)
diff --git a/admin/builds/get-version-info.py b/admin/builds/get-version-info.py
deleted file mode 100644 (file)
index 29af769..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-#
-# This file is part of the GROMACS molecular simulation package.
-#
-# Copyright (c) 2016, by the GROMACS development team, led by
-# Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
-# and including many others, as listed in the AUTHORS file in the
-# top-level source directory and at http://www.gromacs.org.
-#
-# GROMACS is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public License
-# as published by the Free Software Foundation; either version 2.1
-# of the License, or (at your option) any later version.
-#
-# GROMACS is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with GROMACS; if not, see
-# http://www.gnu.org/licenses, or write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA.
-#
-# If you want to redistribute modifications to GROMACS, please
-# consider that scientific software is very special. Version
-# control is crucial - bugs must be traceable. We will be happy to
-# consider code for inclusion in the official distribution, but
-# derived work must not be called official GROMACS. Details are found
-# in the README & COPYING files - if they are missing, get the
-# official version at http://www.gromacs.org.
-#
-# To help us fund GROMACS development, we humbly ask that you cite
-# the research papers on the package. Check out http://www.gromacs.org.
-
-import json
-
-def do_build(context):
-    cmd = [context.env.cmake_command, '-P', 'cmake/gmxVersionInfo.cmake']
-    info_json = context.run_cmd(cmd, use_output=True)
-    values = json.loads(info_json)
-    context.set_version_info(values['version'], values['regressiontest-md5sum'])
diff --git a/admin/builds/gpubufferops-matrix.txt b/admin/builds/gpubufferops-matrix.txt
deleted file mode 100644 (file)
index bab7e2a..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-# This matrix is intended to permit Jenkins on-demand testing
-# of code hidden behind the GMX_USE_BUFFER_OPS feature flag
-# during development. When the feature flag is removed, the
-# normal test matrices will be adapted to cover this code path.
-#
-# Comment line(s) preceding each configuration document the main
-# intent behind that configuration, so that we can correctly judge
-# whether to preserve that during maintenance decisions.
-#
-# Both configurations currently target bs_nix1204, for better load
-# balance with pre-submit matrix, which makes heavier use of
-# bs_nix1310 agent.
-
-# Test an older version of CUDA
-# Test MPI with CUDA
-# Test MPMD PME with library MPI
-# Test gpubufferops features in the above combination
-gcc-5 gpuhw=nvidia cuda-9.0 mpi npme=1 nranks=2 openmp gpubufferops
-
-# Test newest gcc supported by newest CUDA at time of release
-# Test thread-MPI with CUDA
-# Test gpubufferops features in the above combination
-gcc-8 gpuhw=nvidia nranks=1 gpu_id=1 cuda-10.1 thread-mpi openmp cmake-3.10.0 release-with-assert simd=avx2_256 hwloc libhwloc-2.0.4 gpubufferops
-
-# Test non-default use of mdrun -gpu_id
-# Test GPU-sharing among 4 PP ranks
-# Test no hwloc build, tests internal CPU topology detection (mainly for x86)
-# Test gpubufferops in the above combination
-gcc-7 gpuhw=nvidia nranks=4 gpu_id=1 cuda-10.0 no-hwloc release-with-assert gpubufferops
-
-# Test CUDA build on a agent with no CUDA devices
-# Test without TNG support
-# Test gpubufferops in the above combination
-gcc-7 gpuhw=none cuda-10.0 openmp no-tng release-with-assert gpubufferops
-
-# Test OpenCL build with gpudev features
-# Test gpubufferops on the OpenCL path where it is unsupported
-clang-8 openmp gpuhw=amd opencl-1.2 clFFT-2.14 simd=None gpubufferops
diff --git a/admin/builds/gpucomm-matrix.txt b/admin/builds/gpucomm-matrix.txt
deleted file mode 100644 (file)
index 644334d..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-# This matrix is intended to permit Jenkins:
-# - nigtly testing of the GPU direct communations experimental features in the 2020 release
-# - on-demand testing of the GPU direct communication code path
-# This is neceassary due to:
-# i) the limitations of the integration tests which only test the deafult code-path
-# ii) limitations of the regresssion tests which are not able to rerun update with a
-#     different offload mode unless the default is observed to be GPU.
-#
-# Comment line(s) preceding each configuration document the main
-# intent behind that configuration, so that we can correctly judge
-# whether to preserve that during maintenance decisions.
-#
-# Both configurations currently target bs_nix1204, for better load
-# balance with pre-submit matrix, which makes heavier use of
-# bs_nix1310 agent.
-
-# Test an older version of CUDA
-# Test MPI with CUDA
-# Test multiple PP ranks with separate PME rank
-# Test with thread-MPI (library MPI not supported initially)
-# Test GPU comm features in the above combination
-gcc-5 gpuhw=nvidia cuda-9.0 npme=1 nranks=3 thread-mpi openmp gpucomm
-
-# Test newest gcc supported by newest CUDA at time of release
-# Test multiple PP ranks without separate PME rank
-# Test thread-MPI with CUDA
-# Test GPU comm features in the above combination
-gcc-8 gpuhw=nvidia nranks=2 gpu_id=1 cuda-10.1 thread-mpi openmp cmake-3.10.0 release-with-assert simd=avx2_256 hwloc libhwloc-2.0.4 gpucomm
-
-# Test non-default use of mdrun -gpu_id
-# Test GPU-sharing among 4 PP ranks
-# Test no hwloc build, tests internal CPU topology detection (mainly for x86)
-# Test GPU comm features in the above combination
-gcc-7 gpuhw=nvidia nranks=4 gpu_id=1 cuda-10.0 no-hwloc release-with-assert gpucomm
-
-# Test CUDA build on a agent with no CUDA devices
-# Test without TNG support
-# Test GPU comm features in the above combination
-gcc-7 gpuhw=none cuda-10.0 openmp no-tng release-with-assert gpucomm
-
-# Test OpenCL build with gpudev features
-# Test GPU comm on the OpenCL path where it is unsupported
-clang-8 openmp gpuhw=amd opencl-1.2 clFFT-2.14 simd=None gpucomm
-
-# Test a non-GPU build with the gpucomm optiom set
-gcc-8 double x11 no-tng fftpack simd=sse4.1 gpucomm
diff --git a/admin/builds/gpuupdate-matrix.txt b/admin/builds/gpuupdate-matrix.txt
deleted file mode 100644 (file)
index f31acc2..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-# This matrix is intended to permit Jenkins:
-# - nigtly testing of the GPU update features in the 2020 release
-# - on-demand testing of the GPU update code path
-# This is neceassary due to:
-# i) the limitations of the integration tests which only test the deafult code-path
-# ii) limitations of the regresssion tests which are not able to rerun update with a
-#     different offload mode unless the default is observed to be GPU.
-#
-# Comment line(s) preceding each configuration document the main
-# intent behind that configuration, so that we can correctly judge
-# whether to preserve that during maintenance decisions.
-
-# Test GPU update-constraints features on a single PP+PME rank
-gcc-8 gpuhw=nvidia nranks=1 gpu_id=1 cuda-10.1 thread-mpi openmp cmake-3.10.0 release-with-assert simd=avx2_256 hwloc libhwloc-2.0.4 gpuupdate
-
-# Test GPU update-constraints features in a CUDA build without CUDA devices
-gcc-7 gpuhw=none cuda-10.0 openmp no-tng release-with-assert gpuupdate
-
-# Test GPU update-constraints on the OpenCL path where it is unsupported
-clang-8 openmp gpuhw=amd opencl-1.2 clFFT-2.14 simd=None gpuupdate
-
-# Test GPU update-constraints features with multiple PP ranks and one PME rank
-# Note: this should fall back correctly to the CPU codepath
-gcc-5 gpuhw=nvidia cuda-9.0 cmake-3.9.6 thread-mpi npme=1 nranks=3 release-with-assert gpuupdate
diff --git a/admin/builds/gromacs.py b/admin/builds/gromacs.py
deleted file mode 100644 (file)
index 7dce328..0000000
+++ /dev/null
@@ -1,300 +0,0 @@
-#
-# This file is part of the GROMACS molecular simulation package.
-#
-# Copyright (c) 2015,2016,2017,2018,2019,2020, The GROMACS development team.
-# Copyright (c) 2020, by the GROMACS development team, led by
-# Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
-# and including many others, as listed in the AUTHORS file in the
-# top-level source directory and at http://www.gromacs.org.
-#
-# GROMACS is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public License
-# as published by the Free Software Foundation; either version 2.1
-# of the License, or (at your option) any later version.
-#
-# GROMACS is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with GROMACS; if not, see
-# http://www.gnu.org/licenses, or write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA.
-#
-# If you want to redistribute modifications to GROMACS, please
-# consider that scientific software is very special. Version
-# control is crucial - bugs must be traceable. We will be happy to
-# consider code for inclusion in the official distribution, but
-# derived work must not be called official GROMACS. Details are found
-# in the README & COPYING files - if they are missing, get the
-# official version at http://www.gromacs.org.
-#
-# To help us fund GROMACS development, we humbly ask that you cite
-# the research papers on the package. Check out http://www.gromacs.org.
-
-import os.path
-
-# Policy global variables
-use_stdlib_through_env_vars = False
-
-# These are accessible later in the script, just like other declared
-# options, via e.g. context.opts.release.  Keep these in alphabetical
-# order for more convenient rebasing
-extra_options = {
-    'asan': Option.simple,
-    'buildfftw': Option.simple,
-    'clang_cuda': Option.bool,
-    'double': Option.simple,
-    'fftpack': Option.simple,
-    'gpu_id': Option.string,
-    'hwloc': Option.bool,
-    'mdrun-only': Option.simple,
-    'mkl': Option.simple,
-    'mpiinplace': Option.bool,
-    'npme': Option.string,
-    'nranks': Option.string,
-    'openmp': Option.bool,
-    'reference': Option.simple,
-    'release': Option.simple,
-    'release-with-assert': Option.simple,
-    'release-with-debug-info': Option.simple,
-    'static': Option.simple,
-    'thread-mpi': Option.bool,
-    'tng' : Option.bool,
-    # The following options cater for testing code in Jenkins that is
-    # currently behind feature flags in master branch.
-    'gpubufferops' : Option.bool,
-    'gpucomm': Option.bool,
-    'gpuupdate': Option.bool,
-}
-
-extra_projects = [Project.REGRESSIONTESTS]
-
-def do_build(context):
-    cmake_opts = dict()
-    cmake_opts['GMX_COMPILER_WARNINGS'] = 'ON'
-    cmake_opts['GMX_DEFAULT_SUFFIX'] = 'OFF'
-    cmake_opts['CMAKE_BUILD_TYPE'] = 'Debug'
-    cmake_opts['GMX_USE_RDTSCP'] = 'DETECT'
-
-    if not context.opts.msvc and not context.opts.mdrun_only and not context.opts.static:
-        cmake_opts['GMXAPI'] = 'ON'
-
-    if context.opts.reference:
-        cmake_opts['CMAKE_BUILD_TYPE'] = 'Reference'
-    elif context.opts['release']:
-        cmake_opts['CMAKE_BUILD_TYPE'] = 'Release'
-    elif context.opts['release-with-assert']:
-        cmake_opts['CMAKE_BUILD_TYPE'] = 'RelWithAssert'
-    elif context.opts['release-with-debug-info']:
-        cmake_opts['CMAKE_BUILD_TYPE'] = 'RelWithDebInfo'
-    elif context.opts.asan:
-        cmake_opts['CMAKE_BUILD_TYPE'] = 'ASAN'
-    elif context.opts.tsan:
-        cmake_opts['CMAKE_BUILD_TYPE'] = 'TSAN'
-
-    if context.opts.static:
-        cmake_opts['BUILD_SHARED_LIBS'] = 'OFF'
-
-    if context.opts.phi:
-        cmake_opts['CMAKE_TOOLCHAIN_FILE'] = 'Platform/XeonPhi'
-
-    if context.opts.double:
-        cmake_opts['GMX_DOUBLE'] = 'ON'
-
-    if context.opts.simd is None:
-        cmake_opts['GMX_SIMD'] = 'None'
-    else:
-        cmake_opts['GMX_SIMD'] = context.opts.simd
-    if context.opts.cuda or context.opts.opencl:
-        cmake_opts['GMX_GPU'] = 'ON'
-        if context.opts.opencl:
-            context.env.set_env_var('CUDA_PATH', context.env.cuda_root)
-            cmake_opts['GMX_USE_OPENCL'] = 'ON'
-        else:
-            cmake_opts['CUDA_TOOLKIT_ROOT_DIR'] = context.env.cuda_root
-            if context.opts.clang_cuda:
-                cmake_opts['GMX_CLANG_CUDA'] = 'ON'
-            else:
-                cmake_opts['CUDA_HOST_COMPILER'] = context.env.cuda_host_compiler
-    else:
-        cmake_opts['GMX_GPU'] = 'OFF'
-    if context.opts.thread_mpi is False:
-        cmake_opts['GMX_THREAD_MPI'] = 'OFF'
-    if context.opts.mpi:
-        cmake_opts['GMX_MPI'] = 'ON'
-    if context.opts.mpiinplace is False:
-        cmake_opts['GMX_MPI_IN_PLACE'] = 'OFF'
-    if context.opts.openmp is False:
-        cmake_opts['GMX_OPENMP'] = 'OFF'
-    if context.opts.tng is False:
-        cmake_opts['GMX_USE_TNG'] = 'OFF'
-
-    if context.opts.mkl:
-        cmake_opts['GMX_FFT_LIBRARY'] = 'mkl'
-    elif context.opts.fftpack:
-        cmake_opts['GMX_FFT_LIBRARY'] = 'fftpack'
-    elif context.opts.buildfftw:
-        cmake_opts['GMX_BUILD_OWN_FFTW'] = 'ON'
-        cmake_opts['GMX_BUILD_OWN_FFTW_URL'] = 'ftp://ftp.gromacs.org/misc/fftw-3.3.8.tar.gz'
-        cmake_opts['GMX_BUILD_OWN_FFTW_MD5'] = '8aac833c943d8e90d51b697b27d4384d'
-    if context.opts.mkl or context.opts.atlas or context.opts.armpl:
-        cmake_opts['GMX_EXTERNAL_BLAS'] = 'ON'
-        cmake_opts['GMX_EXTERNAL_LAPACK'] = 'ON'
-    if context.opts.clFFT:
-        cmake_opts['GMX_EXTERNAL_CLFFT'] = 'ON'
-        cmake_opts['clFFT_ROOT'] = context.env.clFFT_root
-
-    if context.opts.armpl:
-        cmake_opts['FFTWF_LIBRARY']     = os.path.join(context.env.armpl_dir, 'lib/libarmpl_lp64.so')
-        cmake_opts['FFTWF_INCLUDE_DIR'] = os.path.join(context.env.armpl_dir, 'include')
-        cmake_opts['GMX_BLAS_USER']     = os.path.join(context.env.armpl_dir, 'lib/libarmpl_lp64.so')
-        cmake_opts['GMX_LAPACK_USER']   = os.path.join(context.env.armpl_dir, 'lib/libarmpl_lp64.so')
-
-    if context.opts.hwloc is False:
-        cmake_opts['GMX_HWLOC'] = 'OFF'
-    elif context.opts.hwloc is True:
-        cmake_opts['GMX_HWLOC'] = 'ON'
-    else:
-        cmake_opts['GMX_HWLOC'] = 'AUTO'
-
-    if context.opts.tng is False:
-        cmake_opts['GMX_USE_TNG'] = 'OFF'
-
-    if context.opts.x11:
-        cmake_opts['GMX_X11'] = 'ON'
-
-    if context.opts.tidy:
-        cmake_opts['GMX_CLANG_TIDY'] = 'ON'
-        cmake_opts['CLANG_TIDY'] = context.env.cxx_compiler.replace("clang++", "clang-tidy")
-
-    # At least hwloc on Jenkins produces a massive amount of reports about
-    # memory leaks, which cannot be reasonably suppressed because ASAN cannot
-    # produce a reasonable stack trace for them.
-    if context.opts.asan:
-        cmake_opts['GMX_HWLOC'] = 'OFF'
-
-    if context.opts.gpubufferops:
-        context.env.set_env_var('GMX_USE_GPU_BUFFER_OPS', "1")
-
-    # GPU comm flag enables both DD and PP-PME comm as well as buffer ops (hard dependency)
-    if context.opts.gpucomm:
-        context.env.set_env_var('GMX_USE_GPU_BUFFER_OPS', "1")
-        context.env.set_env_var('GMX_GPU_DD_COMMS', "1")
-        context.env.set_env_var('GMX_GPU_PME_PP_COMMS', "1")
-
-    # GPU update flag changes the default for '-update auto' to GPU
-    if context.opts.gpuupdate:
-        context.env.set_env_var('GMX_FORCE_UPDATE_DEFAULT_GPU', "1")
-
-    regressiontests_path = context.workspace.get_project_dir(Project.REGRESSIONTESTS)
-
-    if context.job_type == JobType.RELEASE:
-        cmake_opts['REGRESSIONTEST_PATH'] = regressiontests_path
-    else:
-        if context.opts.mdrun_only:
-            cmake_opts['GMX_BUILD_MDRUN_ONLY'] = 'ON'
-
-    # The build configuration has constructed the environment of the
-    # context so that a particular c++ standard library can be used,
-    # which may come from a different installation of gcc. Here, we
-    # tell CMake how to react to this.
-    #
-    # TODO Once gerrit 9051 and 9053 are both submitted on master,
-    # remove the hasattr part of the predicate, which will then be
-    # redundant.
-    if hasattr(context.env, 'gcc_exe') and context.env.gcc_exe is not None:
-        cmake_opts['GMX_GPLUSPLUS_PATH'] = context.env.gcc_exe
-        # TODO are these needed?
-        # gcc_exe_dirname = os.path.dirname(self.gcc_exe)
-        # gcc_toolchain_path = os.path.join(gcc_exe_dirname, '..')
-        # format_for_linker_flags="-Wl,-rpath,{gcctoolchain}/lib64 -L{gcctoolchain}/lib64"
-        # cmake_opts['CMAKE_CXX_LINK_FLAGS'] = format_for_linker_flags.format(gcctoolchain=gcc_toolchain_path)
-
-    context.env.set_env_var('GMX_NO_TERM', '1')
-
-    context.run_cmake(cmake_opts)
-    context.build_target(target=None, keep_going=True)
-
-    # TODO: Consider if it would be better to split this into a separate build
-    # script, since it is somewhat different, even though it benefits from some
-    # of the same build options.
-    if context.job_type == JobType.RELEASE:
-        context.build_target(target='check', keep_going=True)
-        context.build_target(target='install')
-        if context.opts.mdrun_only:
-            context.workspace.clean_build_dir()
-            cmake_opts['REGRESSIONTEST_PATH'] = None
-            cmake_opts['GMX_BUILD_MDRUN_ONLY'] = 'ON'
-            context.run_cmake(cmake_opts)
-            context.build_target(target=None, keep_going=True)
-            context.build_target(target='check', keep_going=True)
-            context.build_target(target='install')
-        gmxrc_cmd = '. ' + os.path.join(context.workspace.install_dir, 'bin', 'GMXRC')
-        context.env.run_env_script(gmxrc_cmd)
-        cmd = [os.path.join(regressiontests_path, 'gmxtest.pl'), '-nosuffix', 'all']
-        if context.opts.mpi:
-            cmd += ['-np', '1']
-        if context.opts.double:
-            cmd += ['-double']
-        if context.opts.mdrun_only:
-            cmd += ['-mdrun', 'mdrun']
-        context.run_cmd(cmd, failure_message='Regression tests failed to execute')
-        # TODO: Add testing for building the template.
-        # TODO: Generalize the machinery here such that it can easily be used
-        # also for non-release builds.
-    else:
-        # run OpenCL offline compile tests on clang tidy builds
-        if (context.opts.tidy and context.opts.opencl):
-            context.build_target(target='ocl_nbnxm_kernels')
-            context.build_target(target='ocl_pme_kernels')
-
-        context.build_target(target='tests', keep_going=True)
-
-        context.run_ctest(args=['--output-on-failure', '--label-exclude', 'SlowTest'], memcheck=context.opts.asan)
-
-        context.build_target(target='install')
-        # TODO: Consider what could be tested about the installed binaries.
-
-        if not context.opts.mdrun_only:
-            context.env.prepend_path_env(os.path.join(context.workspace.build_dir, 'bin'))
-            context.chdir(regressiontests_path)
-
-            use_tmpi = not context.opts.mpi and context.opts.thread_mpi is not False
-
-            cmd = 'perl gmxtest.pl -mpirun mpirun -xml -nosuffix all'
-
-            # setting this stuff below is just a temporary solution,
-            # it should all be passed as a proper the runconf from outside
-            # The whole mechanism should be rethought in #1587.
-            if context.opts.phi:
-                cmd += ' -ntomp 28'
-            elif context.opts.openmp:
-                # OpenMP should always work when compiled in! Currently not set if
-                # not explicitly set
-                cmd += ' -ntomp 2'
-
-            if context.opts.gpuhw == Gpuhw.NONE:
-                context.env.set_env_var('GMX_DISABLE_GPU_DETECTION', '1')
-
-            if context.opts.gpu_id:
-                cmd += ' -gpu_id ' + context.opts.gpu_id
-
-            if context.opts.nranks:
-                nranks = context.opts.nranks
-            else:
-                nranks = '2'
-
-            if context.opts.npme:
-                cmd += ' -npme ' + context.opts.npme
-
-            if context.opts.mpi:
-                cmd += ' -np ' + nranks
-            elif use_tmpi:
-                cmd += ' -nt ' + nranks
-            if context.opts.double:
-                cmd += ' -double'
-            if context.opts.asan:
-                context.env.set_env_var('ASAN_OPTIONS', 'detect_leaks=0')
-            context.run_cmd(cmd, shell=True, failure_message='Regression tests failed to execute')
diff --git a/admin/builds/nightly-matrix.txt b/admin/builds/nightly-matrix.txt
deleted file mode 100644 (file)
index 5d4b2a5..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-# Comment line(s) preceding each configuration document the main
-# intent behind that configuration, so that we can correctly judge
-# whether to preserve that during maintenance decisions.
-#
-# Other configurations might coincidentally test such configurations
-# (e.g. because they are the current default), but it is appropriate
-# to intend to teach each feature (or a feature combination) exactly
-# once, and for the intent to be reflected precisely in the
-# configuration syntax, so that the configurations are stable even
-# if the defaults change in future.
-#
-# The phrase "at time of release" refers to either the initial
-# GROMACS release from that branch, or the next expected release
-# from that branch. (We will tend not to retroactively support
-# newer infrastructure in CI, unless it's either easy or of
-# high impact.)
-
-# Test clang on ARM v8
-# Test ARM_NEON SIMD
-clang-3.9 no-openmp simd=ARM_NEON_ASIMD release-with-assert
-
-# Test AVX2_256 SIMD
-# Test icc with SIMD in mixed precision in release mode
-# Test icc with MPI
-icc-19 mpi release simd=avx2_256 no-hwloc
-
-# Test AVX_128_FMA SIMD in mixed precision
-# Test build of downloaded FFTW
-gcc-5 openmp simd=avx_128_fma cmake-3.11.4 buildfftw
-
-# Test with SSE2 + double
-gcc-9 simd=sse2 fftpack double
-
-# Test OpenMP with clang-tidy
-# Test AVX2_256 SIMD with clang-tidy
-# Test OpenCL build with clang-tidy
-# Test offline OpenCL kernel build with clang-tidy
-clang-8 simd=avx2_256 opencl-1.2 cmake-3.14.5 tidy
diff --git a/admin/builds/post-submit-matrix.txt b/admin/builds/post-submit-matrix.txt
deleted file mode 100644 (file)
index afb7ee9..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-# Comment line(s) preceding each configuration document the main
-# intent behind that configuration, so that we can correctly judge
-# whether to preserve that during maintenance decisions.
-#
-# Other configurations might coincidentally test such configurations
-# (e.g. because they are the current default), but it is appropriate
-# to intend to teach each feature (or a feature combination) exactly
-# once, and for the intent to be reflected precisely in the
-# configuration syntax, so that the configurations are stable even
-# if the defaults change in future.
-
-# Test on ARM v8
-# Test ARM_NEON_ASIMD SIMD
-gcc-5 simd=ARM_NEON_ASIMD release-with-assert
-
-# Test the mdrun-only build
-# Test newest gcc at time of release
-# TODO In combination with gmx from another build, arrange to run regressiontests
-gcc-9 mpi no-openmp fftpack mdrun-only
-
-# Test MPMD PME with thread-MPI
-# Test oldest supported icc
-# Test icc with AVX256 in double precision in release mode
-icc-17 simd=avx_256 npme=1 nranks=2 no-openmp  double fftpack release
-
-# Test CUDA build on a agent with no CUDA devices
-# Test without TNG support
-gcc-7 gpuhw=none cuda-10.0 openmp no-tng release-with-assert
-
-# Test non-default GMX_PREFER_STATIC_LIBS behavior
-# TODO enable this
-# msvc-2017 double no-threadmpi no-prefer-static-libs release-with-assert
-
-# Test newest icc at time of release
-# TODO Reinstate this when SIMD exp works again
-#   Test icc with SIMD in mixed precision in release mode
-icc-19 simd=none mkl release
-
-# Test SSE4.1 SIMD
-# Test single-rank GPU
-# Test clang host and device compilation, with OpenMP and CUDA
-# NOTE: using release-with-assert as debug build trigers some ptx warnings
-clang-8 simd=sse4.1 openmp nranks=1 gpuhw=nvidia cuda-10.0 clang_cuda release-with-assert
-
-# Test MPMD PME with library MPI
-# Test clang + OpenMP
-# Test clang in double precision
-# Test AVX_128_FMA SIMD + Double (Important for Simd4N=Simd4 and sizeof(SimdInt32)!=4*GMX_SIMD_REAL_WIDTH)
-clang-8 double openmp simd=avx_128_fma npme=1 nranks=2 mpi
-
-# Test SSE2 SIMD
-# Test CMAKE_BUILD_TYPE=Release
-# Test OpenCL
-# Test bundled clFFT (developed by AMD) on NVIDIA OpenCL
-gcc-6 npme=1 nranks=2 opencl-1.2 gpuhw=nvidia simd=sse2 release
-
-# Test non-default use of mdrun -gpu_id
-# Test GPU-sharing among 4 PP ranks
-# Test no hwloc build, tests internal CPU topology detection (mainly for x86)
-# Test clang host compilation with CUDA on Linux
-clang-8 gpuhw=nvidia openmp nranks=4 gpu_id=1 cuda-10.1 no-hwloc release-with-assert
-
-# Test ARM HPC compier toolchain with gcc-7
-#gcc-7 armhpc-18.2 openmp simd=ARM_NEON_ASIMD release
-
-# Test ARM HPC compier toolchain with armclang (most recent version at the time if the release)
-# TODO: upgrade to 19.3 before that lands (ref #3011)
-# Test ARMPL for FFTs
-# Test linking against ARMPL for BLAS/LAPACK
-armclang-19.3 armhpc-19.3 armpl openmp simd=ARM_NEON_ASIMD release-with-assert
-
-# TODO
-# Add SIMD + OpenMP + CUDA asan build
-# Add OpenMP + CUDA + device sharing TSAN build
-# Test statically linked hwloc support (if/when it can work well)
-# Test 3D DD (2D is partially covered in regressiontests)
-# Test mdrun -tunepme (e.g. with relaxed tolerances, for now)
-# Consider testing of other CMake option paths
-# Test behaviour when dlopen is not present
diff --git a/admin/builds/pre-submit-matrix.txt b/admin/builds/pre-submit-matrix.txt
deleted file mode 100644 (file)
index 0cfc48e..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-# Comment line(s) preceding each configuration document the main
-# intent behind that configuration, so that we can correctly judge
-# whether to preserve that during maintenance decisions.
-#
-# Other configurations might coincidentally test such configurations
-# (e.g. because they are the current default), but it is appropriate
-# to intend to teach each feature (or a feature combination) exactly
-# once, and for the intent to be reflected precisely in the
-# configuration syntax, so that the configurations are stable even
-# if the defaults change in future.
-#
-# The phrase "at time of release" refers to either the initial
-# GROMACS release from that branch, or the next expected release
-# from that branch. (We will tend not to retroactively support
-# newer infrastructure in CI, unless it's either easy or of
-# high impact.)
-
-# Test oldest supported gcc
-# Test oldest supported CUDA
-# Test oldest supported Ubuntu
-# Test MPI with CUDA
-# Test MPI with gcc
-# Test MPMD PME with library MPI
-gcc-5 gpuhw=nvidia cuda-9.0 cmake-3.9.6 mpi npme=1 nranks=2 openmp
-
-# Test newest cmake at time of release
-# Test non-default use of mdrun -gpu_id
-# Test newest gcc supported by newest CUDA at time of release
-# Test thread-MPI with CUDA
-# Test SIMD implementation of pair search for GPU code-path
-# Test hwloc-2 support
-gcc-8 gpuhw=nvidia gpu_id=1 cuda-10.1 thread-mpi openmp cmake-3.15.1 release-with-assert simd=avx2_256 hwloc libhwloc-2.0.4
-
-# Test with libcxx
-# Test with ThreadSanitizer + OpenMP + SIMD
-clang-7 no-hwloc tsan libcxx-7 openmp cmake-3.12.1 simd=avx2_256
-
-# Test on MacOS (the gcc-8 and/or x11 flags implicitly steer jobs to the OSX agent)
-# Test X11 build
-# Test gcc in double precision
-# Test without TNG support
-# Test 128-bit SIMD in double precision (to cover SimdInt32 support better)
-# Test fftpack fallback
-gcc-8 double x11 no-tng fftpack simd=sse4.1
-
-# Test oldest supported clang (while avoiding AVX codegen issues in it)
-# Test without OpenMP
-# Test thread-MPI
-# Test with TNG support
-clang-3.6 simd=sse2 thread-mpi no-openmp fftpack cmake-3.11.4 tng
-
-# Test newest clang at time of release
-# Test with AddressSanitizer (without OpenMP, see below)
-clang-8 no-openmp asan cmake-3.11.4
-
-# Test with clang-tidy (without OpenMP)
-clang-8 no-openmp cmake-3.12.1 tidy
-
-# Test oldest supported MSVC on Windows
-# Test newest supported MSVC on Windows
-msvc-2017 openmp release-with-assert
-
-# Test newest icc at the time of release
-# Test icc without SIMD in double precision in release mode
-# Test MKL
-# Test without any MPI
-# Test on CentOS (because cmake-3.9.6 is available there)
-icc-19 no-thread-mpi double openmp mkl cmake-3.9.6 simd=none release
-
-# Test oldest supported cmake
-# Test NVIDIA OpenCL
-# Test external clFFT (for build speed)
-# Test MPI + OpenCL
-# Test AVX2_256 SIMD
-# Test without MPI_IN_PLACE
-gcc-6 openmp gpuhw=nvidia opencl-1.2 clFFT-2.14 cmake-3.9.6 mpi no-mpiinplace simd=avx2_256
-
-# Test AMD OpenCL
-# Test external clFFT (for build speed)
-# Test AVX2_256 SIMD
-# Test newest gcc at time of release
-# Test hwloc-1 support
-gcc-9 openmp simd=avx2_256 gpuhw=amd opencl-1.2 clFFT-2.14 hwloc libhwloc-1.11.2 cmake-3.14.5
-
-# TODO
-# Add OpenMP support to ASAN build (but libomp.so in clang-4 reports leaks, so might need a suitable build or suppression)
-# Test newest supported LTS Ubuntu
-# Test AVX-512 when hardware is available
diff --git a/admin/builds/regressiontests-update.py b/admin/builds/regressiontests-update.py
deleted file mode 100644 (file)
index f1dcdaf..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-#
-# This file is part of the GROMACS molecular simulation package.
-#
-# Copyright (c) 2016,2019, by the GROMACS development team, led by
-# Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
-# and including many others, as listed in the AUTHORS file in the
-# top-level source directory and at http://www.gromacs.org.
-#
-# GROMACS is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public License
-# as published by the Free Software Foundation; either version 2.1
-# of the License, or (at your option) any later version.
-#
-# GROMACS is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with GROMACS; if not, see
-# http://www.gnu.org/licenses, or write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA.
-#
-# If you want to redistribute modifications to GROMACS, please
-# consider that scientific software is very special. Version
-# control is crucial - bugs must be traceable. We will be happy to
-# consider code for inclusion in the official distribution, but
-# derived work must not be called official GROMACS. Details are found
-# in the README & COPYING files - if they are missing, get the
-# official version at http://www.gromacs.org.
-#
-# To help us fund GROMACS development, we humbly ask that you cite
-# the research papers on the package. Check out http://www.gromacs.org.
-
-import os.path
-
-build_options = ['gcc-5', 'cmake-3.9.6']
-extra_projects = [Project.REGRESSIONTESTS]
-
-def run_build(context, cmake_opts):
-    context.chdir(context.workspace.build_dir)
-    context.run_cmake(cmake_opts)
-    context.build_target(target=None)
-
-    context.chdir(context.workspace.get_project_dir(Project.REGRESSIONTESTS))
-    cmd = ['perl', 'gmxtest.pl', 'all']
-    if cmake_opts['GMX_DOUBLE'] == 'ON':
-        cmd += ['-double']
-    context.run_cmd(cmd, failure_message='Regression tests failed to execute')
-
-def do_build(context):
-    cmake_opts=dict()
-    cmake_opts['CMAKE_BUILD_TYPE'] = 'Reference'
-    context.env.set_env_var('GMX_NO_TERM', '1')
-    context.env.prepend_path_env(os.path.join(context.workspace.build_dir, 'bin'))
-
-    cmake_opts['GMX_DOUBLE'] = 'ON'
-    run_build(context, cmake_opts)
-
-    cmake_opts['GMX_DOUBLE'] = 'OFF'
-    run_build(context, cmake_opts)
-
-    context.workspace.upload_revision(project=Project.REGRESSIONTESTS, file_glob='*reference*')
diff --git a/admin/builds/release-matrix.txt b/admin/builds/release-matrix.txt
deleted file mode 100644 (file)
index 2aaf4dd..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-# Comment line(s) preceding each configuration document the main
-# intent behind that configuration, so that we can correctly judge
-# whether to preserve that during maintenance decisions.
-#
-# Other configurations might coincidentally test such configurations
-# (e.g. because they are the current default), but it is appropriate
-# to intend to teach each feature (or a feature combination) exactly
-# once, and for the intent to be reflected precisely in the
-# configuration syntax, so that the configurations are stable even
-# if the defaults change in future.
-#
-# The phrase "at time of release" refers to either the initial
-# GROMACS release from that branch, or the next expected release
-# from that branch. (We will tend not to retroactively support
-# newer infrastructure in CI, unless it's either easy or of
-# high impact.)
-#
-# These configurations will be used to build and test the tarballs
-# before the releases. These all build in release mode (ie with
-# minimal assertions, as we intend the code to be built and used
-# by end users).
-
-# Test mpi support
-# Test mdrun-only build
-gcc-9 mpi mdrun-only release
-
-# Test static linking with gcc
-# Test newest gcc at time of release
-gcc-9 static release
-
-# Test double precision
-# Test with newest supported Intel compiler
-icc-19 double release
-
-# Test static linking with clang
-# Test double precision
-# Test newest supported clang version
-clang-8 static double release cmake-3.10.0
-
-# Test oldest supported gcc at time of release
-# Test with GPU support
-# Test with newest CUDA at time of release
-gcc-5 gpuhw=nvidia cuda-10.0 release
-
-# Test with OpenCL support
-gcc-8 simd=avx2_256 gpuhw=amd opencl-1.2 release
-
-# TODO items
-# Avoid specifying cmake versions just to move jobs away from bs_nix-amd
diff --git a/admin/builds/source-package.py b/admin/builds/source-package.py
deleted file mode 100644 (file)
index f3d52e0..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-#
-# This file is part of the GROMACS molecular simulation package.
-#
-# Copyright (c) 2015,2016,2017,2019, by the GROMACS development team, led by
-# Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
-# and including many others, as listed in the AUTHORS file in the
-# top-level source directory and at http://www.gromacs.org.
-#
-# GROMACS is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public License
-# as published by the Free Software Foundation; either version 2.1
-# of the License, or (at your option) any later version.
-#
-# GROMACS is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with GROMACS; if not, see
-# http://www.gnu.org/licenses, or write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA.
-#
-# If you want to redistribute modifications to GROMACS, please
-# consider that scientific software is very special. Version
-# control is crucial - bugs must be traceable. We will be happy to
-# consider code for inclusion in the official distribution, but
-# derived work must not be called official GROMACS. Details are found
-# in the README & COPYING files - if they are missing, get the
-# official version at http://www.gromacs.org.
-#
-# To help us fund GROMACS development, we humbly ask that you cite
-# the research papers on the package. Check out http://www.gromacs.org.
-
-import os.path
-
-build_out_of_source = True
-
-def do_build(context):
-    cmake_opts = {
-            'GMX_BUILD_HELP': 'ON',
-            'CMAKE_BUILD_TYPE': 'Debug',
-            'GMX_SIMD': 'None',
-            'GMX_USE_RDTSCP': 'OFF',
-            'GMX_THREAD_MPI': 'OFF',
-            'GMX_OPENMP': 'OFF',
-            'GMX_GPU': 'OFF'
-        }
-    if context.params.get('RELEASE', Parameter.bool):
-        cmake_opts['GMX_BUILD_TARBALL'] = 'ON'
-
-    context.run_cmake(cmake_opts)
-    context.build_target(target='gmx')
-    context.build_target(target='man')
-    context.build_target(target='completion')
-    context.build_target(target='install-guide')
-    context.build_target(target='reference_checksum')
-
-    context.build_target(target='package_source')
-
-    cpack_config_path = os.path.join(context.workspace.build_dir, 'CPackSourceConfig.cmake')
-    cpack_config = context.read_cmake_variable_file(cpack_config_path)
-    package_name = cpack_config['CPACK_PACKAGE_FILE_NAME'] + '.tar.gz'
-    version = cpack_config['CPACK_PACKAGE_VERSION']
-    context.write_package_info(Project.GROMACS, package_name, version)
diff --git a/admin/builds/uncrustify.py b/admin/builds/uncrustify.py
deleted file mode 100644 (file)
index 2054ef1..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-#
-# This file is part of the GROMACS molecular simulation package.
-#
-# Copyright (c) 2015,2016,2019, by the GROMACS development team, led by
-# Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
-# and including many others, as listed in the AUTHORS file in the
-# top-level source directory and at http://www.gromacs.org.
-#
-# GROMACS is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public License
-# as published by the Free Software Foundation; either version 2.1
-# of the License, or (at your option) any later version.
-#
-# GROMACS is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with GROMACS; if not, see
-# http://www.gnu.org/licenses, or write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA.
-#
-# If you want to redistribute modifications to GROMACS, please
-# consider that scientific software is very special. Version
-# control is crucial - bugs must be traceable. We will be happy to
-# consider code for inclusion in the official distribution, but
-# derived work must not be called official GROMACS. Details are found
-# in the README & COPYING files - if they are missing, get the
-# official version at http://www.gromacs.org.
-#
-# To help us fund GROMACS development, we humbly ask that you cite
-# the research papers on the package. Check out http://www.gromacs.org.
-
-def do_build(context):
-    context.env.set_env_var('UNCRUSTIFY', context.env.get_uncrustify_command())
-    uncrustify_log = context.workspace.get_path_for_logfile('uncrustify.log', category='uncrustify')
-    copyright_log  = context.workspace.get_path_for_logfile('copyright.log', category='copyright')
-    cmd = ['admin/uncrustify.sh', 'check', '--rev=HEAD^', '--warnings=' + uncrustify_log]
-    ret = context.run_cmd(cmd, use_return_code=True)
-    if ret == 1:
-        with open(uncrustify_log, 'r') as f:
-            warnings = f.readlines()
-        if len(warnings) <= 5:
-            details = [x.rstrip() for x in warnings]
-        else:
-            uncrustify_count = 0
-            for w in warnings:
-                if 'needs uncrustify' in w:
-                    uncrustify_count += 1
-            details = []
-            if uncrustify_count > 0:
-                details.append('formatting issues in {0} files'.format(uncrustify_count))
-        context.mark_unstable(reason='uncrustify.sh found issues', details=details)
-    elif ret != 0:
-        raise BuildError('uncrustify.sh failed to run')
-
-    cmd = ['admin/copyright.sh', 'check', '--rev=HEAD^', '--warnings=' + copyright_log]
-    ret = context.run_cmd(cmd, use_return_code=True)
-    if ret == 1:
-        with open(copyright_log, 'r') as f:
-            warnings = f.readlines()
-        if len(warnings) <= 5:
-            details = [x.rstrip() for x in warnings]
-        else:
-            cpyear_count = 0
-            cpheader_count = 0
-            for w in warnings:
-                if 'copyright year' in w:
-                    cpyear_count += 1
-                if 'copyright header' in w:
-                    cpheader_count += 1
-            details = []
-            if cpyear_count > 0:
-                details.append('copyright year missing in {0} files'.format(cpyear_count))
-            if cpheader_count > 0:
-                details.append('copyright header issues in {0} files'.format(cpheader_count))
-        context.mark_unstable(reason='copyright.sh found issues', details=details)
-    elif ret != 0:
-        raise BuildError('copyright.sh failed to run')
diff --git a/admin/builds/update-regtest-hash.py b/admin/builds/update-regtest-hash.py
deleted file mode 100644 (file)
index ee73d0e..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-#
-# This file is part of the GROMACS molecular simulation package.
-#
-# Copyright (c) 2016, by the GROMACS development team, led by
-# Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
-# and including many others, as listed in the AUTHORS file in the
-# top-level source directory and at http://www.gromacs.org.
-#
-# GROMACS is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public License
-# as published by the Free Software Foundation; either version 2.1
-# of the License, or (at your option) any later version.
-#
-# GROMACS is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with GROMACS; if not, see
-# http://www.gnu.org/licenses, or write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA.
-#
-# If you want to redistribute modifications to GROMACS, please
-# consider that scientific software is very special. Version
-# control is crucial - bugs must be traceable. We will be happy to
-# consider code for inclusion in the official distribution, but
-# derived work must not be called official GROMACS. Details are found
-# in the README & COPYING files - if they are missing, get the
-# official version at http://www.gromacs.org.
-#
-# To help us fund GROMACS development, we humbly ask that you cite
-# the research papers on the package. Check out http://www.gromacs.org.
-
-import json
-
-extra_options = {
-    'md5sum': Option.string
-}
-
-def do_build(context):
-    info_path = 'cmake/gmxVersionInfo.cmake'
-    cmd = [context.env.cmake_command, '-P', info_path]
-    info_json = context.run_cmd(cmd, use_output=True)
-    values = json.loads(info_json)
-    old_md5sum = values['regressiontest-md5sum']
-    new_md5sum = context.opts.md5sum
-    if new_md5sum != old_md5sum:
-        context.replace_in_file(info_path, r'set\(REGRESSIONTEST_MD5SUM "(\w*)"',
-                lambda x: do_replacement(x, new_md5sum))
-        context.workspace.upload_revision(project=Project.GROMACS, file_glob=info_path)
-
-def do_replacement(match, new_md5sum):
-    result = match.group(0)
-    start = match.start(1) - match.start(0)
-    end = match.end(1) - match.end(0)
-    return result[:start] + new_md5sum + result[end:]
index e4ab728c0ee440dd51dcc0df853680f05024f5ba..36fc12d9e315dd5ecc9edba0ceb4743b0d22b484 100755 (executable)
@@ -2,7 +2,7 @@
 #
 # This file is part of the GROMACS molecular simulation package.
 #
-# Copyright (c) 2019, by the GROMACS development team, led by
+# Copyright (c) 2019,2020, by the GROMACS development team, led by
 # Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
 # and including many others, as listed in the AUTHORS file in the
 # top-level source directory and at http://www.gromacs.org.
@@ -49,7 +49,7 @@ function usage() {
 
 action="check-workdir"
 declare -a diffargs
-baserev="HEAD"
+baserev="origin/master"
 force=
 format_mode=check
 warning_file=
index d66e8b11468967d9aeb1af7ce80bfe8df0bec492..e6e2e967b3efa00b93d24b0b461fabcdf5cbbcff 100755 (executable)
@@ -2,7 +2,7 @@
 #
 # This file is part of the GROMACS molecular simulation package.
 #
-# Copyright (c) 2019, by the GROMACS development team, led by
+# Copyright (c) 2019,2020, by the GROMACS development team, led by
 # Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
 # and including many others, as listed in the AUTHORS file in the
 # top-level source directory and at http://www.gromacs.org.
@@ -50,7 +50,7 @@ function usage() {
 
 action="check-workdir"
 declare -a diffargs
-baserev="HEAD"
+baserev="origin/master"
 force=
 copyright_mode=update
 warning_file=
index c52d55914837e63b29998f4f7ea81895c729828b..fc6423fd5eab807802c24bceeb5b44d61adb549d 100755 (executable)
@@ -2,7 +2,7 @@
 #
 # This file is part of the GROMACS molecular simulation package.
 #
-# Copyright (c) 2013,2014,2015,2019, by the GROMACS development team, led by
+# Copyright (c) 2013,2014,2015,2019,2020, by the GROMACS development team, led by
 # Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
 # and including many others, as listed in the AUTHORS file in the
 # top-level source directory and at http://www.gromacs.org.
 # To disable the hook temporarily for a commit, set NO_FORMAT_CHECK environment
 # variable.  For example,
 #   NO_FORMAT_CHECK=1 git commit -a
-# You can also run git commit --no-verify, but that also disables other hooks,
-# such as the Change-Id hook used by Gerrit.
+# You can also run git commit --no-verify, but that also disables other hooks.
 #
-# See docs/dev-manual/uncrustify.rst for more details.
+# See docs/dev-manual/code-formatting.rst for more details.
 
 if [ ! -z "$NO_FORMAT_CHECK" ]
 then
diff --git a/admin/uncrustify.cfg b/admin/uncrustify.cfg
deleted file mode 100644 (file)
index 24e80a0..0000000
+++ /dev/null
@@ -1,1586 +0,0 @@
-# Uncrustify 0.59
-
-#
-# General options
-#
-
-# The type of line endings
-newlines                                 = auto     # auto/lf/crlf/cr
-
-# The original size of tabs in the input
-input_tab_size                           = 4        # number
-
-# The size of tabs in the output (only used if align_with_tabs=true)
-output_tab_size                          = 4        # number
-
-# The ASCII value of the string escape char, usually 92 (\) or 94 (^). (Pawn)
-string_escape_char                       = 92       # number
-
-# Alternate string escape char for Pawn. Only works right before the quote char.
-string_escape_char2                      = 0        # number
-
-# Allow interpreting '>=' and '>>=' as part of a template in 'void f(list<list<B>>=val);'.
-# If true (default), 'assert(x<0 && y>=3)' will be broken.
-# Improvements to template detection may make this option obsolete.
-tok_split_gte                            = false    # false/true
-
-# Control what to do with the UTF-8 BOM (recommend 'remove')
-utf8_bom                                 = ignore   # ignore/add/remove/force
-
-# If the file contains bytes with values between 128 and 255, but is not UTF-8, then output as UTF-8
-utf8_byte                                = false    # false/true
-
-# Force the output encoding to UTF-8
-utf8_force                               = false    # false/true
-
-#
-# Indenting
-#
-
-# The number of columns to indent per level.
-# Usually 2, 3, 4, or 8.
-indent_columns                           = 4        # number
-
-# The continuation indent. If non-zero, this overrides the indent of '(' and '=' continuation indents.
-# For FreeBSD, this is set to 4. Negative value is absolute and not increased for each ( level
-indent_continue                          = 0        # number
-
-# How to use tabs when indenting code
-# 0=spaces only
-# 1=indent with tabs to brace level, align with spaces
-# 2=indent and align with tabs, using spaces when not on a tabstop
-indent_with_tabs                         = 0        # number
-
-# Comments that are not a brace level are indented with tabs on a tabstop.
-# Requires indent_with_tabs=2. If false, will use spaces.
-indent_cmt_with_tabs                     = false    # false/true
-
-# Whether to indent strings broken by '\' so that they line up
-indent_align_string                      = false    # false/true
-
-# The number of spaces to indent multi-line XML strings.
-# Requires indent_align_string=True
-indent_xml_string                        = 0        # number
-
-# Spaces to indent '{' from level
-indent_brace                             = 0        # number
-
-# Whether braces are indented to the body level
-indent_braces                            = false    # false/true
-
-# Disabled indenting function braces if indent_braces is true
-indent_braces_no_func                    = true     # false/true
-
-# Disabled indenting class braces if indent_braces is true
-indent_braces_no_class                   = true     # false/true
-
-# Disabled indenting struct braces if indent_braces is true
-indent_braces_no_struct                  = true     # false/true
-
-# Indent based on the size of the brace parent, i.e. 'if' => 3 spaces, 'for' => 4 spaces, etc.
-indent_brace_parent                      = false    # false/true
-
-# Whether the 'namespace' body is indented
-indent_namespace                         = false    # false/true
-
-# The number of spaces to indent a namespace block
-indent_namespace_level                   = 0        # number
-
-# If the body of the namespace is longer than this number, it won't be indented.
-# Requires indent_namespace=true. Default=0 (no limit)
-indent_namespace_limit                   = 0        # number
-
-# Whether the 'extern "C"' body is indented
-indent_extern                            = false    # false/true
-
-# Whether the 'class' body is indented
-indent_class                             = false    # false/true
-
-# Whether to indent the stuff after a leading class colon
-indent_class_colon                       = true    # false/true
-
-# Virtual indent from the ':' for member initializers. Default is 2
-indent_ctor_init_leading                 = 2        # number
-
-# Additional indenting for constructor initializer list
-indent_ctor_init                         = 0        # number
-
-# False=treat 'else\nif' as 'else if' for indenting purposes
-# True=indent the 'if' one level
-indent_else_if                           = false    # false/true
-
-# Amount to indent variable declarations after a open brace. neg=relative, pos=absolute
-indent_var_def_blk                       = 0        # number
-
-# Indent continued variable declarations instead of aligning.
-indent_var_def_cont                      = false    # false/true
-
-# True:  force indentation of function definition to start in column 1
-# False: use the default behavior
-indent_func_def_force_col1               = false    # false/true
-
-# True:  indent continued function call parameters one indent level
-# False: align parameters under the open paren
-indent_func_call_param                   = false    # false/true
-
-# Same as indent_func_call_param, but for function defs
-indent_func_def_param                    = false    # false/true
-
-# Same as indent_func_call_param, but for function protos
-indent_func_proto_param                  = false    # false/true
-
-# Same as indent_func_call_param, but for class declarations
-indent_func_class_param                  = false    # false/true
-
-# Same as indent_func_call_param, but for class variable constructors
-indent_func_ctor_var_param               = false    # false/true
-
-# Same as indent_func_call_param, but for templates
-indent_template_param                    = false    # false/true
-
-# Double the indent for indent_func_xxx_param options
-indent_func_param_double                 = true     # false/true
-
-# Indentation column for standalone 'const' function decl/proto qualifier
-indent_func_const                        = 0        # number
-
-# Indentation column for standalone 'throw' function decl/proto qualifier
-indent_func_throw                        = 0        # number
-
-# The number of spaces to indent a continued '->' or '.'
-# Usually set to 0, 1, or indent_columns.
-indent_member                            = 4        # number
-
-# Spaces to indent single line ('//') comments on lines before code
-indent_sing_line_comments                = 0        # number
-
-# If set, will indent trailing single line ('//') comments relative
-# to the code instead of trying to keep the same absolute column
-indent_relative_single_line_comments     = false    # false/true
-
-# Spaces to indent 'case' from 'switch'
-# Usually 0 or indent_columns.
-indent_switch_case                       = 4        # number
-
-# Spaces to shift the 'case' line, without affecting any other lines
-# Usually 0.
-indent_case_shift                        = 0        # number
-
-# Spaces to indent '{' from 'case'.
-# By default, the brace will appear under the 'c' in case.
-# Usually set to 0 or indent_columns.
-indent_case_brace                        = 0        # number
-
-# Whether to indent comments found in first column
-indent_col1_comment                      = false    # false/true
-
-# How to indent goto labels
-#  >0 : absolute column where 1 is the leftmost column
-#  <=0 : subtract from brace indent
-indent_label                             = 1        # number
-
-# Same as indent_label, but for access specifiers that are followed by a colon
-indent_access_spec                       = 1        # number
-
-# Indent the code after an access specifier by one level.
-# If set, this option forces 'indent_access_spec=0'
-indent_access_spec_body                  = true     # false/true
-
-# If an open paren is followed by a newline, indent the next line so that it lines up after the open paren (not recommended)
-indent_paren_nl                          = false    # false/true
-
-# Controls the indent of a close paren after a newline.
-# 0: Indent to body level
-# 1: Align under the open paren
-# 2: Indent to the brace level
-indent_paren_close                       = 0        # number
-
-# Controls the indent of a comma when inside a paren.If TRUE, aligns under the open paren
-indent_comma_paren                       = false    # false/true
-
-# Controls the indent of a BOOL operator when inside a paren.If TRUE, aligns under the open paren
-indent_bool_paren                        = false    # false/true
-
-# If 'indent_bool_paren' is true, controls the indent of the first expression. If TRUE, aligns the first expression to the following ones
-indent_first_bool_expr                   = false    # false/true
-
-# If an open square is followed by a newline, indent the next line so that it lines up after the open square (not recommended)
-indent_square_nl                         = false    # false/true
-
-# Don't change the relative indent of ESQL/C 'EXEC SQL' bodies
-indent_preserve_sql                      = false    # false/true
-
-# Align continued statements at the '='. Default=True
-# If FALSE or the '=' is followed by a newline, the next line is indent one tab.
-indent_align_assign                      = false    # false/true
-
-# Indent OC blocks at brace level instead of usual rules.
-indent_oc_block                          = false    # false/true
-
-# Minimum indent for subsequent parameters
-indent_oc_msg_colon                      = 0        # number
-
-#
-# Spacing options
-#
-
-# Add or remove space around arithmetic operator '+', '-', '/', '*', etc
-sp_arith                                 = add      # ignore/add/remove/force
-
-# Add or remove space around assignment operator '=', '+=', etc
-sp_assign                                = add      # ignore/add/remove/force
-
-# Add or remove space around '=' in C++11 lambda capture specifications. Overrides sp_assign
-sp_cpp_lambda_assign                     = ignore   # ignore/add/remove/force
-
-# Add or remove space after the capture specification in C++11 lambda.
-sp_cpp_lambda_paren                      = ignore   # ignore/add/remove/force
-
-# Add or remove space around assignment operator '=' in a prototype
-sp_assign_default                        = add      # ignore/add/remove/force
-
-# Add or remove space before assignment operator '=', '+=', etc. Overrides sp_assign.
-sp_before_assign                         = add      # ignore/add/remove/force
-
-# Add or remove space after assignment operator '=', '+=', etc. Overrides sp_assign.
-sp_after_assign                          = add      # ignore/add/remove/force
-
-# Add or remove space around assignment '=' in enum
-sp_enum_assign                           = add      # ignore/add/remove/force
-
-# Add or remove space before assignment '=' in enum. Overrides sp_enum_assign.
-sp_enum_before_assign                    = ignore   # ignore/add/remove/force
-
-# Add or remove space after assignment '=' in enum. Overrides sp_enum_assign.
-sp_enum_after_assign                     = ignore   # ignore/add/remove/force
-
-# Add or remove space around preprocessor '##' concatenation operator. Default=Add
-sp_pp_concat                             = add      # ignore/add/remove/force
-
-# Add or remove space after preprocessor '#' stringify operator. Also affects the '#@' charizing operator.
-sp_pp_stringify                          = ignore   # ignore/add/remove/force
-
-# Add or remove space before preprocessor '#' stringify operator as in '#define x(y) L#y'.
-sp_before_pp_stringify                   = ignore   # ignore/add/remove/force
-
-# Add or remove space around boolean operators '&&' and '||'
-sp_bool                                  = add      # ignore/add/remove/force
-
-# Add or remove space around compare operator '<', '>', '==', etc
-sp_compare                               = add      # ignore/add/remove/force
-
-# Add or remove space inside '(' and ')'
-sp_inside_paren                          = ignore   # ignore/add/remove/force
-
-# Add or remove space between nested parens
-sp_paren_paren                           = ignore   # ignore/add/remove/force
-
-# Whether to balance spaces inside nested parens
-sp_balance_nested_parens                 = false    # false/true
-
-# Add or remove space between ')' and '{'
-sp_paren_brace                           = ignore   # ignore/add/remove/force
-
-# Add or remove space before pointer star '*'
-sp_before_ptr_star                       = ignore   # ignore/add/remove/force
-
-# Add or remove space before pointer star '*' that isn't followed by a variable name
-# If set to 'ignore', sp_before_ptr_star is used instead.
-sp_before_unnamed_ptr_star               = ignore   # ignore/add/remove/force
-
-# Add or remove space between pointer stars '*'
-sp_between_ptr_star                      = ignore   # ignore/add/remove/force
-
-# Add or remove space after pointer star '*', if followed by a word.
-sp_after_ptr_star                        = ignore   # ignore/add/remove/force
-
-# Add or remove space after a pointer star '*', if followed by a func proto/def.
-sp_after_ptr_star_func                   = ignore   # ignore/add/remove/force
-
-# Add or remove space after a pointer star '*', if followed by an open paren (function types).
-sp_ptr_star_paren                        = ignore   # ignore/add/remove/force
-
-# Add or remove space before a pointer star '*', if followed by a func proto/def.
-sp_before_ptr_star_func                  = ignore   # ignore/add/remove/force
-
-# Add or remove space before a reference sign '&'
-sp_before_byref                          = add      # ignore/add/remove/force
-
-# Add or remove space before a reference sign '&' that isn't followed by a variable name
-# If set to 'ignore', sp_before_byref is used instead.
-sp_before_unnamed_byref                  = ignore   # ignore/add/remove/force
-
-# Add or remove space after reference sign '&', if followed by a word.
-sp_after_byref                           = ignore      # ignore/add/remove/force
-
-# Add or remove space after a reference sign '&', if followed by a func proto/def.
-sp_after_byref_func                      = ignore   # ignore/add/remove/force
-
-# Add or remove space before a reference sign '&', if followed by a func proto/def.
-sp_before_byref_func                     = ignore   # ignore/add/remove/force
-
-# Add or remove space between type and word. Default=Force
-sp_after_type                            = ignore   # ignore/add/remove/force
-
-# Add or remove space before the paren in the D constructs 'template Foo(' and 'class Foo('.
-sp_before_template_paren                 = ignore   # ignore/add/remove/force
-
-# Add or remove space in 'template <' vs 'template<'.
-# If set to ignore, sp_before_angle is used.
-sp_template_angle                        = add      # ignore/add/remove/force
-
-# Add or remove space before '<>'
-sp_before_angle                          = ignore   # ignore/add/remove/force
-
-# Add or remove space inside '<' and '>'
-sp_inside_angle                          = ignore   # ignore/add/remove/force
-
-# Add or remove space after '<>'
-sp_after_angle                           = ignore   # ignore/add/remove/force
-
-# Add or remove space between '<>' and '(' as found in 'new List<byte>();'
-sp_angle_paren                           = ignore   # ignore/add/remove/force
-
-# Add or remove space between '<>' and a word as in 'List<byte> m;'
-sp_angle_word                            = ignore   # ignore/add/remove/force
-
-# Add or remove space between '>' and '>' in '>>' (template stuff C++/C# only). Default=Add
-sp_angle_shift                           = add      # ignore/add/remove/force
-
-# Permit removal of the space between '>>' in 'foo<bar<int> >' (C++11 only). Default=False
-# sp_angle_shift cannot remove the space without this option.
-sp_permit_cpp11_shift                    = false    # false/true
-
-# Add or remove space before '(' of 'if', 'for', 'switch', and 'while'
-sp_before_sparen                         = add      # ignore/add/remove/force
-
-# Add or remove space inside if-condition '(' and ')'
-sp_inside_sparen                         = remove   # ignore/add/remove/force
-
-# Add or remove space before if-condition ')'. Overrides sp_inside_sparen.
-sp_inside_sparen_close                   = ignore   # ignore/add/remove/force
-
-# Add or remove space before if-condition '('. Overrides sp_inside_sparen.
-sp_inside_sparen_open                    = ignore   # ignore/add/remove/force
-
-# Add or remove space after ')' of 'if', 'for', 'switch', and 'while'
-sp_after_sparen                          = ignore   # ignore/add/remove/force
-
-# Add or remove space between ')' and '{' of 'if', 'for', 'switch', and 'while'
-sp_sparen_brace                          = ignore   # ignore/add/remove/force
-
-# Add or remove space between 'invariant' and '(' in the D language.
-sp_invariant_paren                       = ignore   # ignore/add/remove/force
-
-# Add or remove space after the ')' in 'invariant (C) c' in the D language.
-sp_after_invariant_paren                 = ignore   # ignore/add/remove/force
-
-# Add or remove space before empty statement ';' on 'if', 'for' and 'while'
-sp_special_semi                          = ignore   # ignore/add/remove/force
-
-# Add or remove space before ';'. Default=Remove
-sp_before_semi                           = remove   # ignore/add/remove/force
-
-# Add or remove space before ';' in non-empty 'for' statements
-sp_before_semi_for                       = ignore   # ignore/add/remove/force
-
-# Add or remove space before a semicolon of an empty part of a for statement.
-sp_before_semi_for_empty                 = ignore   # ignore/add/remove/force
-
-# Add or remove space after ';', except when followed by a comment. Default=Add
-sp_after_semi                            = add      # ignore/add/remove/force
-
-# Add or remove space after ';' in non-empty 'for' statements. Default=Force
-sp_after_semi_for                        = force    # ignore/add/remove/force
-
-# Add or remove space after the final semicolon of an empty part of a for statement: for ( ; ; <here> ).
-sp_after_semi_for_empty                  = ignore   # ignore/add/remove/force
-
-# Add or remove space before '[' (except '[]')
-sp_before_square                         = ignore   # ignore/add/remove/force
-
-# Add or remove space before '[]'
-sp_before_squares                        = ignore   # ignore/add/remove/force
-
-# Add or remove space inside a non-empty '[' and ']'
-sp_inside_square                         = ignore   # ignore/add/remove/force
-
-# Add or remove space after ','
-sp_after_comma                           = add      # ignore/add/remove/force
-
-# Add or remove space before ','
-sp_before_comma                          = remove   # ignore/add/remove/force
-
-# Add or remove space between an open paren and comma: '(,' vs '( ,'
-sp_paren_comma                           = force    # ignore/add/remove/force
-
-# Add or remove space before the variadic '...' when preceded by a non-punctuator
-sp_before_ellipsis                       = ignore   # ignore/add/remove/force
-
-# Add or remove space after class ':'
-sp_after_class_colon                     = add      # ignore/add/remove/force
-
-# Add or remove space before class ':'
-sp_before_class_colon                    = add      # ignore/add/remove/force
-
-# Add or remove space before case ':'. Default=Remove
-sp_before_case_colon                     = remove   # ignore/add/remove/force
-
-# Add or remove space between 'operator' and operator sign
-sp_after_operator                        = remove   # ignore/add/remove/force
-
-# Add or remove space between the operator symbol and the open paren, as in 'operator ++('
-sp_after_operator_sym                    = ignore   # ignore/add/remove/force
-
-# Add or remove space after C/D cast, i.e. 'cast(int)a' vs 'cast(int) a' or '(int)a' vs '(int) a'
-sp_after_cast                            = ignore   # ignore/add/remove/force
-
-# Add or remove spaces inside cast parens
-sp_inside_paren_cast                     = ignore   # ignore/add/remove/force
-
-# Add or remove space between the type and open paren in a C++ cast, i.e. 'int(exp)' vs 'int (exp)'
-sp_cpp_cast_paren                        = ignore   # ignore/add/remove/force
-
-# Add or remove space between 'sizeof' and '('
-sp_sizeof_paren                          = ignore   # ignore/add/remove/force
-
-# Add or remove space after the tag keyword (Pawn)
-sp_after_tag                             = ignore   # ignore/add/remove/force
-
-# Add or remove space inside enum '{' and '}'
-sp_inside_braces_enum                    = ignore   # ignore/add/remove/force
-
-# Add or remove space inside struct/union '{' and '}'
-sp_inside_braces_struct                  = ignore   # ignore/add/remove/force
-
-# Add or remove space inside '{' and '}'
-sp_inside_braces                         = ignore   # ignore/add/remove/force
-
-# Add or remove space inside '{}'
-sp_inside_braces_empty                   = ignore   # ignore/add/remove/force
-
-# Add or remove space between return type and function name
-# A minimum of 1 is forced except for pointer return types.
-sp_type_func                             = ignore   # ignore/add/remove/force
-
-# Add or remove space between function name and '(' on function declaration
-sp_func_proto_paren                      = ignore   # ignore/add/remove/force
-
-# Add or remove space between function name and '(' on function definition
-sp_func_def_paren                        = ignore   # ignore/add/remove/force
-
-# Add or remove space inside empty function '()'
-sp_inside_fparens                        = ignore   # ignore/add/remove/force
-
-# Add or remove space inside function '(' and ')'
-sp_inside_fparen                         = ignore   # ignore/add/remove/force
-
-# Add or remove space inside the first parens in the function type: 'void (*x)(...)'
-sp_inside_tparen                         = ignore   # ignore/add/remove/force
-
-# Add or remove between the parens in the function type: 'void (*x)(...)'
-sp_after_tparen_close                    = ignore   # ignore/add/remove/force
-
-# Add or remove space between ']' and '(' when part of a function call.
-sp_square_fparen                         = ignore   # ignore/add/remove/force
-
-# Add or remove space between ')' and '{' of function
-sp_fparen_brace                          = ignore   # ignore/add/remove/force
-
-# Add or remove space between function name and '(' on function calls
-sp_func_call_paren                       = ignore   # ignore/add/remove/force
-
-# Add or remove space between function name and '()' on function calls without parameters.
-# If set to 'ignore' (the default), sp_func_call_paren is used.
-sp_func_call_paren_empty                 = ignore   # ignore/add/remove/force
-
-# Add or remove space between the user function name and '(' on function calls
-# You need to set a keyword to be a user function, like this: 'set func_call_user _' in the config file.
-sp_func_call_user_paren                  = ignore   # ignore/add/remove/force
-
-# Add or remove space between a constructor/destructor and the open paren
-sp_func_class_paren                      = ignore   # ignore/add/remove/force
-
-# Add or remove space between 'return' and '('
-sp_return_paren                          = ignore   # ignore/add/remove/force
-
-# Add or remove space between '__attribute__' and '('
-sp_attribute_paren                       = ignore   # ignore/add/remove/force
-
-# Add or remove space between 'defined' and '(' in '#if defined (FOO)'
-sp_defined_paren                         = ignore   # ignore/add/remove/force
-
-# Add or remove space between 'throw' and '(' in 'throw (something)'
-sp_throw_paren                           = ignore   # ignore/add/remove/force
-
-# Add or remove space between 'throw' and anything other than '(' as in '@throw [...];'
-sp_after_throw                           = ignore   # ignore/add/remove/force
-
-# Add or remove space between 'catch' and '(' in 'catch (something) { }'
-# If set to ignore, sp_before_sparen is used.
-sp_catch_paren                           = ignore   # ignore/add/remove/force
-
-# Add or remove space between 'version' and '(' in 'version (something) { }' (D language)
-# If set to ignore, sp_before_sparen is used.
-sp_version_paren                         = ignore   # ignore/add/remove/force
-
-# Add or remove space between 'scope' and '(' in 'scope (something) { }' (D language)
-# If set to ignore, sp_before_sparen is used.
-sp_scope_paren                           = ignore   # ignore/add/remove/force
-
-# Add or remove space between macro and value
-sp_macro                                 = ignore   # ignore/add/remove/force
-
-# Add or remove space between macro function ')' and value
-sp_macro_func                            = ignore   # ignore/add/remove/force
-
-# Add or remove space between 'else' and '{' if on the same line
-sp_else_brace                            = ignore   # ignore/add/remove/force
-
-# Add or remove space between '}' and 'else' if on the same line
-sp_brace_else                            = ignore   # ignore/add/remove/force
-
-# Add or remove space between '}' and the name of a typedef on the same line
-sp_brace_typedef                         = ignore   # ignore/add/remove/force
-
-# Add or remove space between 'catch' and '{' if on the same line
-sp_catch_brace                           = ignore   # ignore/add/remove/force
-
-# Add or remove space between '}' and 'catch' if on the same line
-sp_brace_catch                           = ignore   # ignore/add/remove/force
-
-# Add or remove space between 'finally' and '{' if on the same line
-sp_finally_brace                         = ignore   # ignore/add/remove/force
-
-# Add or remove space between '}' and 'finally' if on the same line
-sp_brace_finally                         = ignore   # ignore/add/remove/force
-
-# Add or remove space between 'try' and '{' if on the same line
-sp_try_brace                             = ignore   # ignore/add/remove/force
-
-# Add or remove space between get/set and '{' if on the same line
-sp_getset_brace                          = ignore   # ignore/add/remove/force
-
-# Add or remove space before the '::' operator
-sp_before_dc                             = ignore   # ignore/add/remove/force
-
-# Add or remove space after the '::' operator
-sp_after_dc                              = ignore   # ignore/add/remove/force
-
-# Add or remove around the D named array initializer ':' operator
-sp_d_array_colon                         = ignore   # ignore/add/remove/force
-
-# Add or remove space after the '!' (not) operator. Default=Remove
-sp_not                                   = remove   # ignore/add/remove/force
-
-# Add or remove space after the '~' (invert) operator. Default=Remove
-sp_inv                                   = remove   # ignore/add/remove/force
-
-# Add or remove space after the '&' (address-of) operator. Default=Remove
-# This does not affect the spacing after a '&' that is part of a type.
-sp_addr                                  = remove   # ignore/add/remove/force
-
-# Add or remove space around the '.' or '->' operators. Default=Remove
-sp_member                                = remove   # ignore/add/remove/force
-
-# Add or remove space after the '*' (dereference) operator. Default=Remove
-# This does not affect the spacing after a '*' that is part of a type.
-sp_deref                                 = remove   # ignore/add/remove/force
-
-# Add or remove space after '+' or '-', as in 'x = -5' or 'y = +7'. Default=Remove
-sp_sign                                  = remove   # ignore/add/remove/force
-
-# Add or remove space before or after '++' and '--', as in '(--x)' or 'y++;'. Default=Remove
-sp_incdec                                = remove   # ignore/add/remove/force
-
-# Add or remove space before a backslash-newline at the end of a line. Default=Add
-sp_before_nl_cont                        = add      # ignore/add/remove/force
-
-# Add or remove space after the scope '+' or '-', as in '-(void) foo;' or '+(int) bar;'
-sp_after_oc_scope                        = ignore   # ignore/add/remove/force
-
-# Add or remove space after the colon in message specs
-# '-(int) f:(int) x;' vs '-(int) f: (int) x;'
-sp_after_oc_colon                        = ignore   # ignore/add/remove/force
-
-# Add or remove space before the colon in message specs
-# '-(int) f: (int) x;' vs '-(int) f : (int) x;'
-sp_before_oc_colon                       = ignore   # ignore/add/remove/force
-
-# Add or remove space after the colon in immutable dictionary expression
-# 'NSDictionary *test = @{@"foo" :@"bar"};'
-sp_after_oc_dict_colon                   = ignore   # ignore/add/remove/force
-
-# Add or remove space before the colon in immutable dictionary expression
-# 'NSDictionary *test = @{@"foo" :@"bar"};'
-sp_before_oc_dict_colon                  = ignore   # ignore/add/remove/force
-
-# Add or remove space after the colon in message specs
-# '[object setValue:1];' vs '[object setValue: 1];'
-sp_after_send_oc_colon                   = ignore   # ignore/add/remove/force
-
-# Add or remove space before the colon in message specs
-# '[object setValue:1];' vs '[object setValue :1];'
-sp_before_send_oc_colon                  = ignore   # ignore/add/remove/force
-
-# Add or remove space after the (type) in message specs
-# '-(int)f: (int) x;' vs '-(int)f: (int)x;'
-sp_after_oc_type                         = ignore   # ignore/add/remove/force
-
-# Add or remove space after the first (type) in message specs
-# '-(int) f:(int)x;' vs '-(int)f:(int)x;'
-sp_after_oc_return_type                  = ignore   # ignore/add/remove/force
-
-# Add or remove space between '@selector' and '('
-# '@selector(msgName)' vs '@selector (msgName)'
-# Also applies to @protocol() constructs
-sp_after_oc_at_sel                       = ignore   # ignore/add/remove/force
-
-# Add or remove space between '@selector(x)' and the following word
-# '@selector(foo) a:' vs '@selector(foo)a:'
-sp_after_oc_at_sel_parens                = ignore   # ignore/add/remove/force
-
-# Add or remove space inside '@selector' parens
-# '@selector(foo)' vs '@selector( foo )'
-# Also applies to @protocol() constructs
-sp_inside_oc_at_sel_parens               = ignore   # ignore/add/remove/force
-
-# Add or remove space before a block pointer caret
-# '^int (int arg){...}' vs. ' ^int (int arg){...}'
-sp_before_oc_block_caret                 = ignore   # ignore/add/remove/force
-
-# Add or remove space after a block pointer caret
-# '^int (int arg){...}' vs. '^ int (int arg){...}'
-sp_after_oc_block_caret                  = ignore   # ignore/add/remove/force
-
-# Add or remove space between the receiver and selector in a message.
-# '[receiver selector ...]'
-sp_after_oc_msg_receiver                 = ignore   # ignore/add/remove/force
-
-# Add or remove space after @property.
-sp_after_oc_property                     = ignore   # ignore/add/remove/force
-
-# Add or remove space around the ':' in 'b ? t : f'
-sp_cond_colon                            = add      # ignore/add/remove/force
-
-# Add or remove space around the '?' in 'b ? t : f'
-sp_cond_question                         = add      # ignore/add/remove/force
-
-# Fix the spacing between 'case' and the label. Only 'ignore' and 'force' make sense here.
-sp_case_label                            = ignore   # ignore/add/remove/force
-
-# Control the space around the D '..' operator.
-sp_range                                 = ignore   # ignore/add/remove/force
-
-# Control the spacing after ':' in 'for (TYPE VAR : EXPR)' (Java)
-sp_after_for_colon                       = ignore   # ignore/add/remove/force
-
-# Control the spacing before ':' in 'for (TYPE VAR : EXPR)' (Java)
-sp_before_for_colon                      = ignore   # ignore/add/remove/force
-
-# Control the spacing in 'extern (C)' (D)
-sp_extern_paren                          = ignore   # ignore/add/remove/force
-
-# Control the space after the opening of a C++ comment '// A' vs '//A'
-sp_cmt_cpp_start                         = ignore   # ignore/add/remove/force
-
-# Controls the spaces between #else or #endif and a trailing comment
-sp_endif_cmt                             = ignore   # ignore/add/remove/force
-
-# Controls the spaces after 'new', 'delete', and 'delete[]'
-sp_after_new                             = ignore   # ignore/add/remove/force
-
-# Controls the spaces before a trailing or embedded comment
-sp_before_tr_emb_cmt                     = ignore   # ignore/add/remove/force
-
-# Number of spaces before a trailing or embedded comment
-sp_num_before_tr_emb_cmt                 = 0        # number
-
-# Control space between a Java annotation and the open paren.
-sp_annotation_paren                      = ignore   # ignore/add/remove/force
-
-#
-# Code alignment (not left column spaces/tabs)
-#
-
-# Whether to keep non-indenting tabs
-align_keep_tabs                          = false    # false/true
-
-# Whether to keep whitespace not required for alignment
-align_keep_extra_space                  = false    # false/true
-
-# Whether to use tabs for aligning
-align_with_tabs                          = false    # false/true
-
-# Whether to bump out to the next tab when aligning
-align_on_tabstop                         = false    # false/true
-
-# Whether to left-align numbers
-align_number_left                        = false    # false/true
-
-# Align variable definitions in prototypes and functions
-align_func_params                        = true     # false/true
-
-# Align parameters in single-line functions that have the same name.
-# The function names must already be aligned with each other.
-align_same_func_call_params              = false    # false/true
-
-# The span for aligning variable definitions (0=don't align)
-align_var_def_span                       = 1        # number
-
-# How to align the star in variable definitions.
-#  0=Part of the type     'void *   foo;'
-#  1=Part of the variable 'void     *foo;'
-#  2=Dangling             'void    *foo;'
-align_var_def_star_style                 = 0        # number
-
-# How to align the '&' in variable definitions.
-#  0=Part of the type
-#  1=Part of the variable
-#  2=Dangling
-align_var_def_amp_style                  = 0        # number
-
-# The threshold for aligning variable definitions (0=no limit)
-align_var_def_thresh                     = 0        # number
-
-# The gap for aligning variable definitions
-align_var_def_gap                        = 1        # number
-
-# Whether to align the colon in struct bit fields
-align_var_def_colon                      = false    # false/true
-
-# Whether to align any attribute after the variable name
-align_var_def_attribute                  = false    # false/true
-
-# Whether to align inline struct/enum/union variable definitions
-align_var_def_inline                     = false    # false/true
-
-# The span for aligning on '=' in assignments (0=don't align)
-align_assign_span                        = 1        # number
-
-# The threshold for aligning on '=' in assignments (0=no limit)
-align_assign_thresh                      = 0        # number
-
-# The span for aligning on '=' in enums (0=don't align)
-align_enum_equ_span                      = 1        # number
-
-# The threshold for aligning on '=' in enums (0=no limit)
-align_enum_equ_thresh                    = 0        # number
-
-# The span for aligning struct/union (0=don't align)
-align_var_struct_span                    = 1        # number
-
-# The threshold for aligning struct/union member definitions (0=no limit)
-align_var_struct_thresh                  = 0        # number
-
-# The gap for aligning struct/union member definitions
-align_var_struct_gap                     = 1        # number
-
-# The span for aligning struct initializer values (0=don't align)
-align_struct_init_span                   = 0        # number
-
-# The minimum space between the type and the synonym of a typedef
-align_typedef_gap                        = 0        # number
-
-# The span for aligning single-line typedefs (0=don't align)
-align_typedef_span                       = 0        # number
-
-# How to align typedef'd functions with other typedefs
-# 0: Don't mix them at all
-# 1: align the open paren with the types
-# 2: align the function type name with the other type names
-align_typedef_func                       = 0        # number
-
-# Controls the positioning of the '*' in typedefs. Just try it.
-# 0: Align on typedef type, ignore '*'
-# 1: The '*' is part of type name: typedef int  *pint;
-# 2: The '*' is part of the type, but dangling: typedef int *pint;
-align_typedef_star_style                 = 0        # number
-
-# Controls the positioning of the '&' in typedefs. Just try it.
-# 0: Align on typedef type, ignore '&'
-# 1: The '&' is part of type name: typedef int  &pint;
-# 2: The '&' is part of the type, but dangling: typedef int &pint;
-align_typedef_amp_style                  = 0        # number
-
-# The span for aligning comments that end lines (0=don't align)
-align_right_cmt_span                     = 3        # number
-
-# If aligning comments, mix with comments after '}' and #endif with less than 3 spaces before the comment
-align_right_cmt_mix                      = true    # false/true
-
-# If a trailing comment is more than this number of columns away from the text it follows,
-# it will qualify for being aligned. This has to be > 0 to do anything.
-align_right_cmt_gap                      = 0        # number
-
-# Align trailing comment at or beyond column N; 'pulls in' comments as a bonus side effect (0=ignore)
-align_right_cmt_at_col                   = 0        # number
-
-# The span for aligning function prototypes (0=don't align)
-align_func_proto_span                    = 0        # number
-
-# Minimum gap between the return type and the function name.
-align_func_proto_gap                     = 0        # number
-
-# Align function protos on the 'operator' keyword instead of what follows
-align_on_operator                        = false    # false/true
-
-# Whether to mix aligning prototype and variable declarations.
-# If true, align_var_def_XXX options are used instead of align_func_proto_XXX options.
-align_mix_var_proto                      = false    # false/true
-
-# Align single-line functions with function prototypes, uses align_func_proto_span
-align_single_line_func                   = false    # false/true
-
-# Aligning the open brace of single-line functions.
-# Requires align_single_line_func=true, uses align_func_proto_span
-align_single_line_brace                  = false    # false/true
-
-# Gap for align_single_line_brace.
-align_single_line_brace_gap              = 0        # number
-
-# The span for aligning ObjC msg spec (0=don't align)
-align_oc_msg_spec_span                   = 0        # number
-
-# Whether to align macros wrapped with a backslash and a newline.
-# This will not work right if the macro contains a multi-line comment.
-align_nl_cont                            = false    # false/true
-
-# # Align macro functions and variables together
-align_pp_define_together                 = false    # false/true
-
-# The minimum space between label and value of a preprocessor define
-align_pp_define_gap                      = 0        # number
-
-# The span for aligning on '#define' bodies (0=don't align)
-align_pp_define_span                     = 0        # number
-
-# Align lines that start with '<<' with previous '<<'. Default=true
-align_left_shift                         = false    # false/true
-
-# Span for aligning parameters in an Obj-C message call on the ':' (0=don't align)
-align_oc_msg_colon_span                  = 0        # number
-
-# If true, always align with the first parameter, even if it is too short.
-align_oc_msg_colon_first                 = false    # false/true
-
-# Aligning parameters in an Obj-C '+' or '-' declaration on the ':'
-align_oc_decl_colon                      = false    # false/true
-
-#
-# Newline adding and removing options
-#
-
-# Whether to collapse empty blocks between '{' and '}'
-nl_collapse_empty_body                   = false    # false/true
-
-# Don't split one-line braced assignments - 'foo_t f = { 1, 2 };'
-nl_assign_leave_one_liners               = true     # false/true
-
-# Don't split one-line braced statements inside a class xx { } body
-nl_class_leave_one_liners                = true     # false/true
-
-# Don't split one-line enums: 'enum foo { BAR = 15 };'
-nl_enum_leave_one_liners                 = false    # false/true
-
-# Don't split one-line get or set functions
-nl_getset_leave_one_liners               = false    # false/true
-
-# Don't split one-line function definitions - 'int foo() { return 0; }'
-nl_func_leave_one_liners                 = true    # false/true
-
-# Don't split one-line if/else statements - 'if(a) b++;'
-nl_if_leave_one_liners                   = false    # false/true
-
-# Don't split one-line OC messages
-nl_oc_msg_leave_one_liner                = false    # false/true
-
-# Add or remove newlines at the start of the file
-nl_start_of_file                         = ignore   # ignore/add/remove/force
-
-# The number of newlines at the start of the file (only used if nl_start_of_file is 'add' or 'force'
-nl_start_of_file_min                     = 0        # number
-
-# Add or remove newline at the end of the file
-nl_end_of_file                           = force    # ignore/add/remove/force
-
-# The number of newlines at the end of the file (only used if nl_end_of_file is 'add' or 'force')
-nl_end_of_file_min                       = 1        # number
-
-# Add or remove newline between '=' and '{'
-nl_assign_brace                          = ignore   # ignore/add/remove/force
-
-# Add or remove newline between '=' and '[' (D only)
-nl_assign_square                         = ignore   # ignore/add/remove/force
-
-# Add or remove newline after '= [' (D only). Will also affect the newline before the ']'
-nl_after_square_assign                   = ignore   # ignore/add/remove/force
-
-# The number of blank lines after a block of variable definitions at the top of a function body
-# 0 = No change (default)
-nl_func_var_def_blk                      = 0        # number
-
-# The number of newlines before a block of typedefs
-# 0 = No change (default)
-nl_typedef_blk_start                     = 0        # number
-
-# The number of newlines after a block of typedefs
-# 0 = No change (default)
-nl_typedef_blk_end                       = 0        # number
-
-# The maximum consecutive newlines within a block of typedefs
-# 0 = No change (default)
-nl_typedef_blk_in                        = 0        # number
-
-# The number of newlines before a block of variable definitions not at the top of a function body
-# 0 = No change (default)
-nl_var_def_blk_start                     = 0        # number
-
-# The number of newlines after a block of variable definitions not at the top of a function body
-# 0 = No change (default)
-nl_var_def_blk_end                       = 0        # number
-
-# The maximum consecutive newlines within a block of variable definitions
-# 0 = No change (default)
-nl_var_def_blk_in                        = 0        # number
-
-# Add or remove newline between a function call's ')' and '{', as in:
-# list_for_each(item, &list) { }
-nl_fcall_brace                           = ignore   # ignore/add/remove/force
-
-# Add or remove newline between 'enum' and '{'
-nl_enum_brace                            = add      # ignore/add/remove/force
-
-# Add or remove newline between 'struct and '{'
-nl_struct_brace                          = add      # ignore/add/remove/force
-
-# Add or remove newline between 'union' and '{'
-nl_union_brace                           = add      # ignore/add/remove/force
-
-# Add or remove newline between 'if' and '{'
-nl_if_brace                              = add      # ignore/add/remove/force
-
-# Add or remove newline between '}' and 'else'
-nl_brace_else                            = add      # ignore/add/remove/force
-
-# Add or remove newline between 'else if' and '{'
-# If set to ignore, nl_if_brace is used instead
-nl_elseif_brace                          = add      # ignore/add/remove/force
-
-# Add or remove newline between 'else' and '{'
-nl_else_brace                            = add      # ignore/add/remove/force
-
-# Add or remove newline between 'else' and 'if'
-nl_else_if                               = ignore   # ignore/add/remove/force
-
-# Add or remove newline between '}' and 'finally'
-nl_brace_finally                         = ignore   # ignore/add/remove/force
-
-# Add or remove newline between 'finally' and '{'
-nl_finally_brace                         = ignore   # ignore/add/remove/force
-
-# Add or remove newline between 'try' and '{'
-nl_try_brace                             = add      # ignore/add/remove/force
-
-# Add or remove newline between get/set and '{'
-nl_getset_brace                          = ignore   # ignore/add/remove/force
-
-# Add or remove newline between 'for' and '{'
-nl_for_brace                             = add      # ignore/add/remove/force
-
-# Add or remove newline between 'catch' and '{'
-nl_catch_brace                           = add      # ignore/add/remove/force
-
-# Add or remove newline between '}' and 'catch'
-nl_brace_catch                           = add      # ignore/add/remove/force
-
-# Add or remove newline between 'while' and '{'
-nl_while_brace                           = add      # ignore/add/remove/force
-
-# Add or remove newline between 'scope (x)' and '{' (D)
-nl_scope_brace                           = ignore   # ignore/add/remove/force
-
-# Add or remove newline between 'unittest' and '{' (D)
-nl_unittest_brace                        = ignore   # ignore/add/remove/force
-
-# Add or remove newline between 'version (x)' and '{' (D)
-nl_version_brace                         = ignore   # ignore/add/remove/force
-
-# Add or remove newline between 'using' and '{'
-nl_using_brace                           = ignore   # ignore/add/remove/force
-
-# Add or remove newline between two open or close braces.
-# Due to general newline/brace handling, REMOVE may not work.
-nl_brace_brace                           = ignore   # ignore/add/remove/force
-
-# Add or remove newline between 'do' and '{'
-nl_do_brace                              = add      # ignore/add/remove/force
-
-# Add or remove newline between '}' and 'while' of 'do' statement
-nl_brace_while                           = remove   # ignore/add/remove/force
-
-# Add or remove newline between 'switch' and '{'
-nl_switch_brace                          = add      # ignore/add/remove/force
-
-# Add a newline between ')' and '{' if the ')' is on a different line than the if/for/etc.
-# Overrides nl_for_brace, nl_if_brace, nl_switch_brace, nl_while_switch, and nl_catch_brace.
-nl_multi_line_cond                       = false    # false/true
-
-# Force a newline in a define after the macro name for multi-line defines.
-nl_multi_line_define                     = false    # false/true
-
-# Whether to put a newline before 'case' statement
-nl_before_case                           = false    # false/true
-
-# Add or remove newline between ')' and 'throw'
-nl_before_throw                          = ignore   # ignore/add/remove/force
-
-# Whether to put a newline after 'case' statement
-nl_after_case                            = false    # false/true
-
-# Add or remove a newline between a case ':' and '{'. Overrides nl_after_case.
-nl_case_colon_brace                      = add      # ignore/add/remove/force
-
-# Newline between namespace and {
-nl_namespace_brace                       = add      # ignore/add/remove/force
-
-# Add or remove newline between 'template<>' and whatever follows.
-nl_template_class                        = ignore   # ignore/add/remove/force
-
-# Add or remove newline between 'class' and '{'
-nl_class_brace                           = add      # ignore/add/remove/force
-
-# Add or remove newline after each ',' in the constructor member initialization
-nl_class_init_args                       = ignore   # ignore/add/remove/force
-
-# Add or remove newline between return type and function name in a function definition
-nl_func_type_name                        = remove   # ignore/add/remove/force
-
-# Add or remove newline between return type and function name inside a class {}
-# Uses nl_func_type_name or nl_func_proto_type_name if set to ignore.
-nl_func_type_name_class                  = ignore   # ignore/add/remove/force
-
-# Add or remove newline between function scope and name in a definition
-# Controls the newline after '::' in 'void A::f() { }'
-nl_func_scope_name                       = ignore   # ignore/add/remove/force
-
-# Add or remove newline between return type and function name in a prototype
-nl_func_proto_type_name                  = ignore   # ignore/add/remove/force
-
-# Add or remove newline between a function name and the opening '('
-nl_func_paren                            = remove   # ignore/add/remove/force
-
-# Add or remove newline between a function name and the opening '(' in the definition
-nl_func_def_paren                        = ignore   # ignore/add/remove/force
-
-# Add or remove newline after '(' in a function declaration
-nl_func_decl_start                       = ignore   # ignore/add/remove/force
-
-# Add or remove newline after '(' in a function definition
-nl_func_def_start                        = ignore   # ignore/add/remove/force
-
-# Overrides nl_func_decl_start when there is only one parameter.
-nl_func_decl_start_single                = ignore   # ignore/add/remove/force
-
-# Overrides nl_func_def_start when there is only one parameter.
-nl_func_def_start_single                 = ignore   # ignore/add/remove/force
-
-# Add or remove newline after each ',' in a function declaration
-nl_func_decl_args                        = ignore   # ignore/add/remove/force
-
-# Add or remove newline after each ',' in a function definition
-nl_func_def_args                         = ignore   # ignore/add/remove/force
-
-# Add or remove newline before the ')' in a function declaration
-nl_func_decl_end                         = ignore   # ignore/add/remove/force
-
-# Add or remove newline before the ')' in a function definition
-nl_func_def_end                          = ignore   # ignore/add/remove/force
-
-# Overrides nl_func_decl_end when there is only one parameter.
-nl_func_decl_end_single                  = ignore   # ignore/add/remove/force
-
-# Overrides nl_func_def_end when there is only one parameter.
-nl_func_def_end_single                   = ignore   # ignore/add/remove/force
-
-# Add or remove newline between '()' in a function declaration.
-nl_func_decl_empty                       = ignore   # ignore/add/remove/force
-
-# Add or remove newline between '()' in a function definition.
-nl_func_def_empty                        = ignore   # ignore/add/remove/force
-
-# Whether to put each OC message parameter on a separate line
-# See nl_oc_msg_leave_one_liner
-nl_oc_msg_args                           = false    # false/true
-
-# Add or remove newline between function signature and '{'
-nl_fdef_brace                            = add      # ignore/add/remove/force
-
-# Add or remove a newline between the return keyword and return expression.
-nl_return_expr                           = ignore   # ignore/add/remove/force
-
-# Whether to put a newline after semicolons, except in 'for' statements
-nl_after_semicolon                       = false    # false/true
-
-# Whether to put a newline after brace open.
-# This also adds a newline before the matching brace close.
-nl_after_brace_open                      = true     # false/true
-
-# If nl_after_brace_open and nl_after_brace_open_cmt are true, a newline is
-# placed between the open brace and a trailing single-line comment.
-nl_after_brace_open_cmt                  = false    # false/true
-
-# Whether to put a newline after a virtual brace open with a non-empty body.
-# These occur in un-braced if/while/do/for statement bodies.
-nl_after_vbrace_open                     = false    # false/true
-
-# Whether to put a newline after a virtual brace open with an empty body.
-# These occur in un-braced if/while/do/for statement bodies.
-nl_after_vbrace_open_empty               = false    # false/true
-
-# Whether to put a newline after a brace close.
-# Does not apply if followed by a necessary ';'.
-nl_after_brace_close                     = false    # false/true
-
-# Whether to put a newline after a virtual brace close.
-# Would add a newline before return in: 'if (foo) a++; return;'
-nl_after_vbrace_close                    = false    # false/true
-
-# Control the newline between the close brace and 'b' in: 'struct { int a; } b;'
-# Affects enums, unions, and structures. If set to ignore, uses nl_after_brace_close
-nl_brace_struct_var                      = ignore   # ignore/add/remove/force
-
-# Whether to alter newlines in '#define' macros
-nl_define_macro                          = false    # false/true
-
-# Whether to not put blanks after '#ifxx', '#elxx', or before '#endif'
-nl_squeeze_ifdef                         = false    # false/true
-
-# Add or remove blank line before 'if'
-nl_before_if                             = ignore   # ignore/add/remove/force
-
-# Add or remove blank line after 'if' statement
-nl_after_if                              = ignore   # ignore/add/remove/force
-
-# Add or remove blank line before 'for'
-nl_before_for                            = ignore   # ignore/add/remove/force
-
-# Add or remove blank line after 'for' statement
-nl_after_for                             = ignore   # ignore/add/remove/force
-
-# Add or remove blank line before 'while'
-nl_before_while                          = ignore   # ignore/add/remove/force
-
-# Add or remove blank line after 'while' statement
-nl_after_while                           = ignore   # ignore/add/remove/force
-
-# Add or remove blank line before 'switch'
-nl_before_switch                         = ignore   # ignore/add/remove/force
-
-# Add or remove blank line after 'switch' statement
-nl_after_switch                          = ignore   # ignore/add/remove/force
-
-# Add or remove blank line before 'do'
-nl_before_do                             = ignore   # ignore/add/remove/force
-
-# Add or remove blank line after 'do/while' statement
-nl_after_do                              = ignore   # ignore/add/remove/force
-
-# Whether to double-space commented-entries in struct/enum
-nl_ds_struct_enum_cmt                    = false    # false/true
-
-# Whether to double-space before the close brace of a struct/union/enum
-# (lower priority than 'eat_blanks_before_close_brace')
-nl_ds_struct_enum_close_brace            = false    # false/true
-
-# Add or remove a newline around a class colon.
-# Related to pos_class_colon, nl_class_init_args, and pos_comma.
-nl_class_colon                           = ignore   # ignore/add/remove/force
-
-# Change simple unbraced if statements into a one-liner
-# 'if(b)\n i++;' => 'if(b) i++;'
-nl_create_if_one_liner                   = false    # false/true
-
-# Change simple unbraced for statements into a one-liner
-# 'for (i=0;i<5;i++)\n foo(i);' => 'for (i=0;i<5;i++) foo(i);'
-nl_create_for_one_liner                  = false    # false/true
-
-# Change simple unbraced while statements into a one-liner
-# 'while (i<5)\n foo(i++);' => 'while (i<5) foo(i++);'
-nl_create_while_one_liner                = false    # false/true
-
-#
-# Positioning options
-#
-
-# The position of arithmetic operators in wrapped expressions
-pos_arith                                = lead     # ignore/join/lead/lead_break/lead_force/trail/trail_break/trail_force
-
-# The position of assignment in wrapped expressions.
-# Do not affect '=' followed by '{'
-pos_assign                               = lead     # ignore/join/lead/lead_break/lead_force/trail/trail_break/trail_force
-
-# The position of boolean operators in wrapped expressions
-pos_bool                                 = lead     # ignore/join/lead/lead_break/lead_force/trail/trail_break/trail_force
-
-# The position of comparison operators in wrapped expressions
-pos_compare                              = lead     # ignore/join/lead/lead_break/lead_force/trail/trail_break/trail_force
-
-# The position of conditional (b ? t : f) operators in wrapped expressions
-pos_conditional                          = lead     # ignore/join/lead/lead_break/lead_force/trail/trail_break/trail_force
-
-# The position of the comma in wrapped expressions
-pos_comma                                = trail    # ignore/join/lead/lead_break/lead_force/trail/trail_break/trail_force
-
-# The position of the comma in the constructor initialization list
-pos_class_comma                          = ignore   # ignore/join/lead/lead_break/lead_force/trail/trail_break/trail_force
-
-# The position of colons between constructor and member initialization
-pos_class_colon                          = ignore   # ignore/join/lead/lead_break/lead_force/trail/trail_break/trail_force
-
-#
-# Line Splitting options
-#
-
-# Try to limit code width to N number of columns
-code_width                               = 0        # number
-
-# Whether to fully split long 'for' statements at semi-colons
-ls_for_split_full                        = false    # false/true
-
-# Whether to fully split long function protos/calls at commas
-ls_func_split_full                       = false    # false/true
-
-# Whether to split lines as close to code_width as possible and ignore some groupings
-ls_code_width                            = false    # false/true
-
-#
-# Blank line options
-#
-
-# The maximum consecutive newlines
-nl_max                                   = 0        # number
-
-# The number of newlines after a function prototype, if followed by another function prototype
-nl_after_func_proto                      = 0        # number
-
-# The number of newlines after a function prototype, if not followed by another function prototype
-nl_after_func_proto_group                = 0        # number
-
-# The number of newlines after '}' of a multi-line function body
-nl_after_func_body                       = 0        # number
-
-# The number of newlines after '}' of a multi-line function body in a class declaration
-nl_after_func_body_class                 = 0        # number
-
-# The number of newlines after '}' of a single line function body
-nl_after_func_body_one_liner             = 0        # number
-
-# The minimum number of newlines before a multi-line comment.
-# Doesn't apply if after a brace open or another multi-line comment.
-nl_before_block_comment                  = 0        # number
-
-# The minimum number of newlines before a single-line C comment.
-# Doesn't apply if after a brace open or other single-line C comments.
-nl_before_c_comment                      = 0        # number
-
-# The minimum number of newlines before a CPP comment.
-# Doesn't apply if after a brace open or other CPP comments.
-nl_before_cpp_comment                    = 0        # number
-
-# Whether to force a newline after a multi-line comment.
-nl_after_multiline_comment               = false    # false/true
-
-# The number of newlines after '}' or ';' of a struct/enum/union definition
-nl_after_struct                          = 0        # number
-
-# The number of newlines after '}' or ';' of a class definition
-nl_after_class                           = 0        # number
-
-# The number of newlines before a 'private:', 'public:', 'protected:', 'signals:', or 'slots:' label.
-# Will not change the newline count if after a brace open.
-# 0 = No change.
-nl_before_access_spec                    = 0        # number
-
-# The number of newlines after a 'private:', 'public:', 'protected:', 'signals:', or 'slots:' label.
-# 0 = No change.
-nl_after_access_spec                     = 0        # number
-
-# The number of newlines between a function def and the function comment.
-# 0 = No change.
-nl_comment_func_def                      = 0        # number
-
-# The number of newlines after a try-catch-finally block that isn't followed by a brace close.
-# 0 = No change.
-nl_after_try_catch_finally               = 0        # number
-
-# The number of newlines before and after a property, indexer or event decl.
-# 0 = No change.
-nl_around_cs_property                    = 0        # number
-
-# The number of newlines between the get/set/add/remove handlers in C#.
-# 0 = No change.
-nl_between_get_set                       = 0        # number
-
-# Add or remove newline between C# property and the '{'
-nl_property_brace                        = ignore   # ignore/add/remove/force
-
-# Whether to remove blank lines after '{'
-eat_blanks_after_open_brace              = false    # false/true
-
-# Whether to remove blank lines before '}'
-eat_blanks_before_close_brace            = false    # false/true
-
-# How aggressively to remove extra newlines not in preproc.
-# 0: No change
-# 1: Remove most newlines not handled by other config
-# 2: Remove all newlines and reformat completely by config
-nl_remove_extra_newlines                 = 0        # number
-
-# Whether to put a blank line before 'return' statements, unless after an open brace.
-nl_before_return                         = false    # false/true
-
-# Whether to put a blank line after 'return' statements, unless followed by a close brace.
-nl_after_return                          = false    # false/true
-
-# Whether to put a newline after a Java annotation statement.
-# Only affects annotations that are after a newline.
-nl_after_annotation                      = ignore   # ignore/add/remove/force
-
-# Controls the newline between two annotations.
-nl_between_annotation                    = ignore   # ignore/add/remove/force
-
-#
-# Code modifying options (non-whitespace)
-#
-
-# Add or remove braces on single-line 'do' statement
-mod_full_brace_do                        = add      # ignore/add/remove/force
-
-# Add or remove braces on single-line 'for' statement
-mod_full_brace_for                       = add      # ignore/add/remove/force
-
-# Add or remove braces on single-line function definitions. (Pawn)
-mod_full_brace_function                  = add      # ignore/add/remove/force
-
-# Add or remove braces on single-line 'if' statement. Will not remove the braces if they contain an 'else'.
-mod_full_brace_if                        = add      # ignore/add/remove/force
-
-# Make all if/elseif/else statements in a chain be braced or not. Overrides mod_full_brace_if.
-# If any must be braced, they are all braced.  If all can be unbraced, then the braces are removed.
-mod_full_brace_if_chain                  = false    # false/true
-
-# Don't remove braces around statements that span N newlines
-mod_full_brace_nl                        = 0        # number
-
-# Add or remove braces on single-line 'while' statement
-mod_full_brace_while                     = add      # ignore/add/remove/force
-
-# Add or remove braces on single-line 'using ()' statement
-mod_full_brace_using                     = ignore   # ignore/add/remove/force
-
-# Add or remove unnecessary paren on 'return' statement
-mod_paren_on_return                      = ignore   # ignore/add/remove/force
-
-# Whether to change optional semicolons to real semicolons
-mod_pawn_semicolon                       = false    # false/true
-
-# Add parens on 'while' and 'if' statement around bools
-mod_full_paren_if_bool                   = false    # false/true
-
-# Whether to remove superfluous semicolons
-mod_remove_extra_semicolon               = false    # false/true
-
-# If a function body exceeds the specified number of newlines and doesn't have a comment after
-# the close brace, a comment will be added.
-mod_add_long_function_closebrace_comment = 0        # number
-
-# If a switch body exceeds the specified number of newlines and doesn't have a comment after
-# the close brace, a comment will be added.
-mod_add_long_switch_closebrace_comment   = 0        # number
-
-# If an #ifdef body exceeds the specified number of newlines and doesn't have a comment after
-# the #endif, a comment will be added.
-mod_add_long_ifdef_endif_comment         = 0        # number
-
-# If an #ifdef or #else body exceeds the specified number of newlines and doesn't have a comment after
-# the #else, a comment will be added.
-mod_add_long_ifdef_else_comment          = 0        # number
-
-# If TRUE, will sort consecutive single-line 'import' statements [Java, D]
-mod_sort_import                          = false    # false/true
-
-# If TRUE, will sort consecutive single-line 'using' statements [C#]
-mod_sort_using                           = false    # false/true
-
-# If TRUE, will sort consecutive single-line '#include' statements [C/C++] and '#import' statements [Obj-C]
-# This is generally a bad idea, as it may break your code.
-mod_sort_include                         = false    # false/true
-
-# If TRUE, it will move a 'break' that appears after a fully braced 'case' before the close brace.
-mod_move_case_break                      = false    # false/true
-
-# Will add or remove the braces around a fully braced case statement.
-# Will only remove the braces if there are no variable declarations in the block.
-mod_case_brace                           = ignore   # ignore/add/remove/force
-
-# If TRUE, it will remove a void 'return;' that appears as the last statement in a function.
-mod_remove_empty_return                  = false    # false/true
-
-#
-# Comment modifications
-#
-
-# Try to wrap comments at cmt_width columns
-cmt_width                                = 0        # number
-
-# Set the comment reflow mode (default: 0)
-# 0: no reflowing (apart from the line wrapping due to cmt_width)
-# 1: no touching at all
-# 2: full reflow
-cmt_reflow_mode                          = 0        # number
-
-# If false, disable all multi-line comment changes, including cmt_width. keyword substitution, and leading chars.
-# Default is true.
-cmt_indent_multi                         = true     # false/true
-
-# Whether to group c-comments that look like they are in a block
-cmt_c_group                              = false    # false/true
-
-# Whether to put an empty '/*' on the first line of the combined c-comment
-cmt_c_nl_start                           = false    # false/true
-
-# Whether to put a newline before the closing '*/' of the combined c-comment
-cmt_c_nl_end                             = false    # false/true
-
-# Whether to group cpp-comments that look like they are in a block
-cmt_cpp_group                            = false    # false/true
-
-# Whether to put an empty '/*' on the first line of the combined cpp-comment
-cmt_cpp_nl_start                         = false    # false/true
-
-# Whether to put a newline before the closing '*/' of the combined cpp-comment
-cmt_cpp_nl_end                           = false    # false/true
-
-# Whether to change cpp-comments into c-comments
-cmt_cpp_to_c                             = false    # false/true
-
-# Whether to put a star on subsequent comment lines
-cmt_star_cont                            = false    # false/true
-
-# The number of spaces to insert at the start of subsequent comment lines
-cmt_sp_before_star_cont                  = 0        # number
-
-# The number of spaces to insert after the star on subsequent comment lines
-cmt_sp_after_star_cont                   = 0        # number
-
-# For multi-line comments with a '*' lead, remove leading spaces if the first and last lines of
-# the comment are the same length. Default=True
-cmt_multi_check_last                     = false    # false/true
-
-# The filename that contains text to insert at the head of a file if the file doesn't start with a C/C++ comment.
-# Will substitute $(filename) with the current file's name.
-cmt_insert_file_header                   = ""         # string
-
-# The filename that contains text to insert at the end of a file if the file doesn't end with a C/C++ comment.
-# Will substitute $(filename) with the current file's name.
-cmt_insert_file_footer                   = ""         # string
-
-# The filename that contains text to insert before a function implementation if the function isn't preceded with a C/C++ comment.
-# Will substitute $(function) with the function name and $(javaparam) with the javadoc @param and @return stuff.
-# Will also substitute $(fclass) with the class name: void CFoo::Bar() { ... }
-cmt_insert_func_header                   = ""         # string
-
-# The filename that contains text to insert before a class if the class isn't preceded with a C/C++ comment.
-# Will substitute $(class) with the class name.
-cmt_insert_class_header                  = ""         # string
-
-# The filename that contains text to insert before a Obj-C message specification if the method isn't preceeded with a C/C++ comment.
-# Will substitute $(message) with the function name and $(javaparam) with the javadoc @param and @return stuff.
-cmt_insert_oc_msg_header                 = ""         # string
-
-# If a preprocessor is encountered when stepping backwards from a function name, then
-# this option decides whether the comment should be inserted.
-# Affects cmt_insert_oc_msg_header, cmt_insert_func_header and cmt_insert_class_header.
-cmt_insert_before_preproc                = false    # false/true
-
-#
-# Preprocessor options
-#
-
-# Control indent of preprocessors inside #if blocks at brace level 0
-pp_indent                                = ignore   # ignore/add/remove/force
-
-# Whether to indent #if/#else/#endif at the brace level (true) or from column 1 (false)
-pp_indent_at_level                       = false    # false/true
-
-# If pp_indent_at_level=false, specifies the number of columns to indent per level. Default=1.
-pp_indent_count                          = 1        # number
-
-# Add or remove space after # based on pp_level of #if blocks
-pp_space                                 = ignore   # ignore/add/remove/force
-
-# Sets the number of spaces added with pp_space
-pp_space_count                           = 0        # number
-
-# The indent for #region and #endregion in C# and '#pragma region' in C/C++
-pp_indent_region                         = 0        # number
-
-# Whether to indent the code between #region and #endregion
-pp_region_indent_code                    = false    # false/true
-
-# If pp_indent_at_level=true, sets the indent for #if, #else, and #endif when not at file-level
-pp_indent_if                             = 0        # number
-
-# Control whether to indent the code between #if, #else and #endif when not at file-level
-pp_if_indent_code                        = false    # false/true
-
-# Whether to indent '#define' at the brace level (true) or from column 1 (false)
-pp_define_at_level                       = false    # false/true
-
-# You can force a token to be a type with the 'type' option.
-# Example:
-# type myfoo1 myfoo2
-#
-# You can create custom macro-based indentation using macro-open,
-# macro-else and macro-close.
-# Example:
-# macro-open  BEGIN_TEMPLATE_MESSAGE_MAP
-# macro-open  BEGIN_MESSAGE_MAP
-# macro-close END_MESSAGE_MAP
-#
-# You can assign any keyword to any type with the set option.
-# set func_call_user _ N_
-#
-# The full syntax description of all custom definition config entries
-# is shown below:
-#
-# define custom tokens as:
-# - embed whitespace in token using '' escape character, or
-#   put token in quotes
-# - these: ' " and ` are recognized as quote delimiters
-#
-# type token1 token2 token3 ...
-#             ^ optionally specify multiple tokens on a single line
-# define def_token output_token
-#                  ^ output_token is optional, then NULL is assumed
-# macro-open token
-# macro-close token
-# macro-else token
-# set id token1 token2 ...
-#               ^ optionally specify multiple tokens on a single line
-#     ^ id is one of the names in token_enum.h sans the CT_ prefix,
-#       e.g. PP_PRAGMA
-#
-# all tokens are separated by any mix of ',' commas, '=' equal signs
-# and whitespace (space, tab)
-#
-
-# Teach uncrustify about the GROMACS attribute aliases that we use
-# to hide compiler differences. This means that declarations like
-#
-# int i, j;
-# int nthreads gmx_unused;
-#
-# does not align i with gmx_unused.
-set ATTRIBUTE gmx_unused gmx_inline gmx_restrict
diff --git a/admin/uncrustify.sh b/admin/uncrustify.sh
deleted file mode 100755 (executable)
index 5e98a11..0000000
+++ /dev/null
@@ -1,244 +0,0 @@
-#!/bin/bash
-#
-# This file is part of the GROMACS molecular simulation package.
-#
-# Copyright (c) 2013,2014,2015,2019, by the GROMACS development team, led by
-# Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
-# and including many others, as listed in the AUTHORS file in the
-# top-level source directory and at http://www.gromacs.org.
-#
-# GROMACS is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public License
-# as published by the Free Software Foundation; either version 2.1
-# of the License, or (at your option) any later version.
-#
-# GROMACS is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with GROMACS; if not, see
-# http://www.gnu.org/licenses, or write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA.
-#
-# If you want to redistribute modifications to GROMACS, please
-# consider that scientific software is very special. Version
-# control is crucial - bugs must be traceable. We will be happy to
-# consider code for inclusion in the official distribution, but
-# derived work must not be called official GROMACS. Details are found
-# in the README & COPYING files - if they are missing, get the
-# official version at http://www.gromacs.org.
-#
-# To help us fund GROMACS development, we humbly ask that you cite
-# the research papers on the package. Check out http://www.gromacs.org.
-
-# This script runs uncrustify on modified files and
-# reports/applies the necessary changes.
-#
-# See `uncrustify.sh -h` for a brief usage, and docs/dev-manual/code-formatting.rst
-# for more details.
-
-# Parse command-line arguments
-function usage() {
-    echo "usage: uncrustify.sh [-f|--force] [--rev=REV]"
-    echo "           [--uncrustify=(off|check)]"
-    echo "           [--warnings=<file>] [<action>]"
-    echo "<action>: (check*|diff|update)[-(index|workdir*)] (*=default)"
-}
-
-action="check-workdir"
-declare -a diffargs
-baserev="HEAD"
-force=
-uncrustify_mode=check
-warning_file=
-for arg in "$@" ; do
-    if [[ "$arg" == "check-index" || "$arg" == "check-workdir" || \
-          "$arg" == "diff-index" || "$arg" == "diff-workdir" || \
-          "$arg" == "update-index" || "$arg" == "update-workdir" ]]
-    then
-        action=$arg
-    elif [[ "$arg" == "check" || "$arg" == "diff" || "$arg" == "update" ]] ; then
-        action=$arg-workdir
-    elif [[ "$action" == diff-* ]] ; then
-        diffargs+=("$arg")
-    elif [[ "$arg" == --uncrustify=* ]] ; then
-        uncrustify_mode=${arg#--uncrustify=}
-        if [[ "$uncrustify_mode" != "off" && "$uncrustify_mode" != "check" ]] ; then
-            echo "Unknown option: $arg"
-            echo
-            usage
-            exit 2
-        fi
-    elif [[ "$arg" == "-f" || "$arg" == "--force" ]] ; then
-        force=1
-    elif [[ "$arg" == --rev=* ]] ; then
-        baserev=${arg#--rev=}
-    elif [[ "$arg" == --warnings=* ]] ; then
-        warning_file=${arg#--warnings=}
-    elif [[ "$arg" == "-h" || "$arg" == "--help" ]] ; then
-        usage
-        exit 0
-    else
-        echo "Unknown option: $arg"
-        echo
-        usage
-        exit 2
-    fi
-done
-
-# Check that uncrustify is present
-if [[ "$uncrustify_mode" != "off" ]]
-then
-    if [ -z "$UNCRUSTIFY" ]
-    then
-        UNCRUSTIFY=`git config hooks.uncrustifypath`
-    fi
-    if [ -z "$UNCRUSTIFY" ]
-    then
-        echo "Please set the path to uncrustify using UNCRUSTIFY or"
-        echo "git config hooks.uncrustifypath."
-        echo "Note that you need a custom version of uncrustify."
-        echo "See docs/dev-manual/uncrustify.rst for how to get one."
-        exit 2
-    fi
-    if ! which "$UNCRUSTIFY" 1>/dev/null
-    then
-        echo "Uncrustify not found: $UNCRUSTIFY"
-        exit 2
-    fi
-fi
-
-# Switch to the root of the source tree and check the config file
-srcdir=`git rev-parse --show-toplevel`
-pushd $srcdir >/dev/null
-admin_dir=$srcdir/admin
-cfg_file=$admin_dir/uncrustify.cfg
-if [ ! -f "$cfg_file" ]
-then
-    echo "Uncrustify configuration file not found: $cfg_file"
-    exit 2
-fi
-
-# Actual processing starts: create a temporary directory
-tmpdir=`mktemp -d -t gmxuncrust.XXXXXX`
-
-# Produce a list of changed files
-# Only include files that have proper filter set in .gitattributes
-internal_diff_args=
-if [[ $action == *-index ]]
-then
-    internal_diff_args="--cached"
-fi
-git diff-index $internal_diff_args --diff-filter=ACMR $baserev >$tmpdir/difflist
-cut -f2 <$tmpdir/difflist | \
-    git check-attr --stdin filter | \
-    sed -e 's/.*: filter: //' | \
-    paste $tmpdir/difflist - | \
-    grep -E '(complete_formatting|uncrustify|copyright|includesort)$' >$tmpdir/filtered
-cut -f2 <$tmpdir/filtered >$tmpdir/filelist_all
-grep -E '(uncrustify)$' <$tmpdir/filtered | \
-    cut -f2 >$tmpdir/filelist_uncrustify
-git diff-files --name-only | grep -Ff $tmpdir/filelist_all >$tmpdir/localmods
-
-# Extract changed files to a temporary directory
-mkdir $tmpdir/org
-if [[ $action == *-index ]] ; then
-    git checkout-index --prefix=$tmpdir/org/ --stdin <$tmpdir/filelist_all
-else
-    rsync --files-from=$tmpdir/filelist_all $srcdir $tmpdir/org
-fi
-# Duplicate the original files to a separate directory, where all changes will
-# be made.
-cp -r $tmpdir/org $tmpdir/new
-
-# Create output file for what was done (in case no messages get written)
-touch $tmpdir/messages
-
-# Run uncrustify on the temporary directory
-cd $tmpdir/new
-if [[ $uncrustify_mode != "off" ]] ; then
-    if ! $UNCRUSTIFY -c $cfg_file -F $tmpdir/filelist_uncrustify --no-backup >$tmpdir/uncrustify.out 2>&1 ; then
-        echo "Reformatting failed. Check uncrustify output below for errors:"
-        cat $tmpdir/uncrustify.out
-        rm -rf $tmpdir
-        exit 2
-    fi
-    # Find the changed files if necessary
-    if [[ $action != diff-* ]] ; then
-        msg="needs uncrustify"
-        if [[ $action == update-* ]] ; then
-            msg="uncrustified"
-        fi
-        git diff --no-index --name-only ../org/ . | \
-            awk -v msg="$msg" '{sub(/.\//,""); print $0 ": " msg}' >> $tmpdir/messages
-    fi
-    # TODO: Consider checking whether rerunning uncrustify causes additional changes
-fi
-
-cd $tmpdir
-
-# If a diff was requested, show it and we are done
-if [[ $action == diff-* ]] ; then
-    git diff --no-index --no-prefix "${diffargs[@]}" org/ new/
-    rm -rf $tmpdir
-    exit 0
-fi
-
-# Find the changed files
-git diff --no-index --name-only --exit-code org/ new/ | \
-    sed -e 's#new/##' > $tmpdir/changed
-changes=
-if [[ -s $tmpdir/changed ]]
-then
-    changes=1
-fi
-
-# Check if changed files have changed outside the index
-if grep -Ff $tmpdir/localmods $tmpdir/changed > $tmpdir/conflicts
-then
-    awk '{print $0 ": has changes in work tree"}' $tmpdir/conflicts \
-        >> $tmpdir/messages
-    if [[ ! $force && $action == update-* ]] ; then
-        echo "Modified files found in work tree, skipping update. Use -f to override."
-        echo "The following would have been done:"
-        sort $tmpdir/messages
-        rm -rf $tmpdir
-        exit 2
-    fi
-fi
-
-# Update the index/work tree if requested
-if [[ $action == update-index ]] ; then
-    grep -Ff $tmpdir/changed $tmpdir/filtered > $tmpdir/tohash
-    cd $tmpdir/new
-    IFS='
-'
-    for change in `cut -f2 $tmpdir/tohash | \
-                   git --git-dir=$srcdir/.git hash-object -w --stdin-paths --no-filters | \
-                   paste - $tmpdir/tohash`
-    do
-        # NOTE: the patterns below contain literal tabs
-        sha1=${change%%        *}
-        rest=${change#*        }
-        mode=${rest:8:6}
-        path=${rest#*  }
-        path=${path%%  *}
-        # Contains a literal tab
-        echo "$mode $sha1      $path" >> $tmpdir/toindex
-    done
-    unset IFS
-    git --git-dir=$srcdir/.git update-index --index-info < $tmpdir/toindex
-elif [[ $action == update-workdir ]] ; then
-    rsync --files-from=$tmpdir/changed $tmpdir/new/ $srcdir/
-fi
-
-# Get back to the original directory
-popd >/dev/null
-
-# Report what was done
-sort $tmpdir/messages | tee $warning_file
-
-rm -rf $tmpdir
-exit $changes
index 9c64eb580c95588f6504df61123d2fce7e8947f7..a2a3291bc3b86132d1012ffeaba24575afeaa505 100644 (file)
@@ -1,7 +1,7 @@
 #
 # This file is part of the GROMACS molecular simulation package.
 #
-# Copyright (c) 2010,2011,2012,2013,2014, by the GROMACS development team, led by
+# Copyright (c) 2010,2011,2012,2013,2014,2020, by the GROMACS development team, led by
 # Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
 # and including many others, as listed in the AUTHORS file in the
 # top-level source directory and at http://www.gromacs.org.
@@ -129,9 +129,9 @@ string(REGEX REPLACE "-" "" HEAD_DATE "${HEAD_DATE}")
 set(VERSION_STR_SUFFIX "${HEAD_DATE}-${HEAD_HASH_SHORT}${DIRTY_STR}")
 
 # find the names of remotes that are located on the official gromacs
-# git/gerrit servers
+# git servers
 execute_process(COMMAND ${GIT_EXECUTABLE} config --get-regexp
-                "remote\\..*\\.url" "\\.gromacs\\.org[:/].*gromacs(\\.git)?$"
+                "remote\\..*\\.url" "\\gitlab\\.com[:/]gromacs.gromacs(\\.git)?$"
     WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
     OUTPUT_VARIABLE GMX_REMOTES
     ERROR_VARIABLE EXEC_ERR
index aeb7937c7405d06c7d3213dcff64df7c7fe83258..bb5a5e61655e5ff2bd9227cb92f633914353f5fc 100644 (file)
@@ -1,7 +1,7 @@
 #
 # This file is part of the GROMACS molecular simulation package.
 #
-# Copyright (c) 2013,2014,2016, by the GROMACS development team, led by
+# Copyright (c) 2013,2014,2016,2020, by the GROMACS development team, led by
 # Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
 # and including many others, as listed in the AUTHORS file in the
 # top-level source directory and at http://www.gromacs.org.
@@ -160,7 +160,7 @@ endmacro()
 # there is need to (say) use vendor BLAS with MKL for FFTs.
 #
 # If the vendor BLAS and/or LAPACK have abnormal library names, then
-# the default searching procedure will fail (e.g. Redmine #771). The
+# the default searching procedure will fail (e.g. Issue #771). The
 # GMX_(BLAS|LAPACK)_USER variables can be used to indicate the correct
 # libraries. If these do not work, a warning is emitted and we try to
 # use them anyway, assuming the user knows what they are doing.
index 3b5da4e575558da5a70fc76731ea26b144cf29d2..2a8bc143e889070b04d83fc1895820e9291dc061 100644 (file)
@@ -51,7 +51,7 @@
 # glibc source shows that _FORCE_INLINES is only used in this string.h
 # feature and performance of memcpy variants is unimportant for CUDA
 # code in GROMACS. So this workaround is good enough to keep problems
-# away from users installing GROMACS. See Redmine 1942.
+# away from users installing GROMACS. See Issue #1942.
 function(work_around_glibc_2_23)
     try_compile(IS_GLIBC_2_23_OR_HIGHER ${CMAKE_BINARY_DIR} ${CMAKE_SOURCE_DIR}/cmake/TestGlibcVersion.cpp)
     if(IS_GLIBC_2_23_OR_HIGHER)
index 5041c1f6389d2dac6ffd89b0b2c90c08dabba0d9..6f0c6343eb7e49549e3a69d6e3a3afac4e3d4c00 100644 (file)
@@ -271,7 +271,7 @@ elseif(GMX_SIMD_ACTIVE STREQUAL "IBM_VSX")
     # is not required for SIMD support on this platform. cmake through
     # at least version 3.7 cannot pass this check with the C compiler
     # in the latest xlc 13.1.5, but the C++ compiler has different
-    # behaviour and is OK. See Redmine #2102.
+    # behaviour and is OK. See Issue #2102.
     if(NOT SIMD_IBM_VSX_CXX_SUPPORTED)
         gmx_give_fatal_error_when_simd_support_not_found("IBM VSX" "disable SIMD support (slower)" "${SUGGEST_BINUTILS_UPDATE}")
     endif()
index d6c69f81d949db674ba46d5556487827094c5463..7a2b56344e731ffcff230cd8b0738c6040034ead 100644 (file)
@@ -256,7 +256,7 @@ if (NOT SOURCE_IS_SOURCE_DISTRIBUTION AND
 endif()
 
 set(REGRESSIONTEST_VERSION "${GMX_VERSION_STRING}")
-set(REGRESSIONTEST_BRANCH "refs/heads/master")
+set(REGRESSIONTEST_BRANCH "master")
 # Run the regressiontests packaging job with the correct pakage
 # version string, and the release box checked, in order to have it
 # build the regressiontests tarball with all the right naming. The
index 30f10ecdce51d900b0f8878bcf5f522f36d309cd..ca737a50d11ea2e2b8c4f2995bb5250b31aa6a2c 100644 (file)
@@ -120,7 +120,7 @@ extensions = [
     # 'sphinx.ext.viewcode',
     'gmxsphinx'
 ]
-extlinks = {'issue': ('https://redmine.gromacs.org/issues/%s',
+extlinks = {'issue': ('https://gitlab.com/gromacs/gromacs/-/issues/%s',
                       'Issue ')}
 
 # Add any paths that contain templates here, relative to this directory.
@@ -228,6 +228,9 @@ rst_epilog += """
 .. _webpage: http://www.gromacs.org
 .. _ftp site: ftp://ftp.gromacs.org/pub/gromacs/
 .. _tutorials: http://www.gromacs.org/Documentation/Tutorials
+.. _issue tracker: https://gitlab.com/gromacs/gromacs/-/issues/
+.. _issues: https://gitlab.com/gromacs/gromacs/-/issues/
+.. _gitlab: https://gitlab.com/gromacs/gromacs/
 .. _redmine: http://redmine.gromacs.org
 .. _gerrit: http://gerrit.gromacs.org
 .. _download: ../download.html
index 9e281654f5a9baf4eb537182a69d37d0f79e9828..1dd6e26a5e968ef04c4df1c27efe3ad01af52698 100644 (file)
@@ -1,8 +1,6 @@
-.. _gmx-gerrit:
-
-=========================
-GROMACS change management
-=========================
+=================
+Change Management
+=================
 
 This documentation assumes the reader is already familiary with using ``git``
 for managing file revisions.
@@ -13,183 +11,21 @@ for managing file revisions.
 Getting started
 ===============
 
-#.  Go to https://gerrit.gromacs.org
-#.  Click Register (you can choose any OpenID provider including any
-    existing Google/Yahoo account. If you manually enter the URL make sure
-    to start with ``http(s)://``)
-#.  Choose a username and add an ssh key
-
-See `here <https://gerrit.gromacs.org/Documentation/intro-quick.html>`_ for
-a quick intro into Gerrit.
-
-Creating the SSH key for Gerrit
--------------------------------
-
-In order to push your commits to gerrit server, you must have an SSH key
-in your computer which matches with the one registered in your Gerrit
-user account. To do so, you first need to create this unique SSH
-key. You will be asked to enter a passphrase. *This is
-optional with respect to Gerrit, but it is a good security practice to have
-it.*
-
-To proceed with the creation of the SSH key, type the following commands
-from your terminal window:
-
-::
-
-    $ cd ~/.ssh
-
-    $ ssh-keygen -t rsa -C "your.email@address.com"
-
-Please substitute the email string in the command above
-with the same email address which you used to register the account in
-Gerrit.
-
-Now you have created your public SSH key, which you need to copy/paste
-into your Gerrit profile. First, open it with the following command:
-
-::
-
-    $ cat id_rsa.pub
-
-Copy all the contents of the file id_rsa.pub in your clipboard, and
-switch to your favorite web browser where you logged in to Gerrit
-GROMACS page. Click on your username at the top right corner of the
-Gerrit webpage and select "Settings". You should now be in your Gerrit
-profile settings page, where you should see a vertical menu.
-
-From this vertical menu, select "SSH Public Keys", then click the button
-"Add Key ..." and an edit box will appear below the button. Here you
-need to paste the contents of id_rsa.pub file, which you previously
-copied to your clipboard.
-
-Now you are ready to operate!
-
-Setting up a local repository to work with gerrit
--------------------------------------------------
-
-Either clone using::
-
-    $ git clone ssh://USER@gerrit.gromacs.org/gromacs.git
-
-(replace **USER** \ with your username)
-
-or change the remote url using:
-
-::
-
-    $ git remote set-url origin ssh://USER@gerrit.gromacs.org/gromacs.git
-
-(change **USER** with the username you've registered)
-
-Or add a new remote url using:
-
-::
-
-    $ git remote add upload ssh://USER@gerrit.gromacs.org/gromacs.git
-
-If you are working with a GROMACS repository other than the source code,
-then you should substitute e.g. regressiontests.git or releng.git
-instead of gromacs.git above.
-
-Be sure to configure your user name and e-mail to match those registered to Gerrit::
-
-       git config [--global] user.name "Your Name"
-       git config [--global] user.email "your.name@domain.org"
-
-It is optional if you want to set those settings for git on a global
-level, or just for the current repository.
-
-If necessary, register the e-mail address you want to use
-with Gerrit.
-
-Install the commit hook
------------------------
-
-Differently from a simple usage of git, with Gerrit a Change-ID is
-needed at the end of each commit message. Gerrit uses Change-IDs to
-understand whether your new commit is patching a previous commit or it
-should be regarded as a separate, different patch, uncorrelated with
-your previously pushed commits.
-
-To allow git to append such Change-IDs automatically after each commit,
-type the following command:
-
-::
-
-    $ scp -p USER@gerrit.gromacs.org:hooks/commit-msg .git/hooks/
+#.  Go to https://gitlab.com/gromacs/gromacs
 
-(change **USER** with the username you've registered in Gerrit)
-
-.. Note::
-
-   This commit hook needs to be added to the repo where the
-   commit will occur, not the repo where the push to upstream will occur
-   (should they be different).
+.. todo:: Link to GitLab docs for setting up an account, setting up git, and cloning repositories.
 
 Uploading a commit for review
 -----------------------------
 
 Make sure your HEAD is up to date (use ``git pull --rebase origin`` if
 someone else has committed since you last pulled), check that your commit
-message follows the :doc:`commitstyle`, make your commit and then use
-
-::
-
-    $ git push origin HEAD:refs/for/BRANCH
-
-Replace ``BRANCH`` with the branch it should be committed to.
-Master has a number of sub branches that can be used to show
-what the patch is relevant to such as OpenCL and tools-cleanup.
-These can be pushed to by specifying them after the branch,
-for example ``BRANCH/domdec-cleanup``.
-
-When updating/replacing an existing change, make sure the commit message
-has the same Change-ID. Please see the section `Ammending a change <gmx-ammend-change>`
-below.
+message follows the :doc:`commitstyle`.
 
 Uploading a Work-In-Progress (WIP) or Private commit for review
 ---------------------------------------------------------------
 
-You can use the WIP or Private workflow on Gerrit to upload changes
-that might not be ready yet for public review and merging.
-Those changes will only be visible to people explicitly added as reviewers,
-and will not automatically trigger Jenkins if the reviewer "Jenkins Buildbot"
-is not added manually to them.
-
-For uploading a new private change, push to refs/for/master%private
-(substituting master with the branch you want to push to). To remove the private
-flag when uploading a new patch set, use refs/for/master%remove-private.
-To mark change as Work-In-Progress, push to refs/for/master%wip,
-to unmark push to refs/for/master%ready.
-You can also mark and unmark changes as Private or WIP in the Gerrit web-interface.
-
-To manually trigger Jenkins on a WIP or Private change, you need to log in
-to Jenkis after adding the "Jenkins Buildbot" reviewer. In Jenkins, navigate to
-http://jenkins.gromacs.org/gerrit_manual_trigger/ and tell it to
-search for the commit for which you want to trigger the build agents.
-For example, https://gerrit.gromacs.org/#/c/1238/ is 1238 (but maybe
-SHA or ChangeID will work, too).
-Any change made to the commit after "Jenkins Buildbot" was added to the
-list of reviewers will also trigger Jenkins.
-
-After uploading a commit
-------------------------
-
-Use
-
-::
-
-    $ git reset --keep HEAD^
-
-to reset your branch to the HEAD before the commit you just uploaded.
-This allows you to keep your repo in sync with what every other repo
-thinks is the HEAD. In particular, if you have another patch to upload
-(or worse, have to pull in other people's patches, and then have a new
-patch), you probably do not want to have the second patch depend on the
-first one. If the first one is rejected, you have made extra work for
-yourself sorting out the mess. Your repo still knows about the commit,
-and you can cherry-pick it to somewhere if you want to use it.
+.. todo:: Note work-in-progress and privacy semantics.
 
 Code Review
 ===========
@@ -199,7 +35,7 @@ Reviewing someone else's uploaded commit
 
 The reviewing workflow is the following:
 
-#. https://gerrit.gromacs.org/#q/status:open shows all open changes
+#. https://gitlab.com/gromacs/gromacs/-/issues shows all open changes
 #. A change needs a +2 and usually +1 review, as well as a +2 verified
    to be allowed to be merged.
 #. Usually a patch goes through several cycles of voting, commenting and
@@ -225,277 +61,24 @@ Guide for reviewing
 -  Check adherence to the :ref:`GROMACS coding
    standards <style-guidelines>`;
 -  We should try to ensure that commits that implement bugfixes (as
-   well as important features and tasks) get a `Redmine`_ entry created
-   and linked. The linking is done **automatically** by
-   `Redmine`_ **if the commit message contains** keyword
-   "#issueID", the valid syntax is explained below.
+   well as important features and tasks) get an `issue tracker`_ entry created
+   and linked. The linking is done **automatically** through
+   `special syntax <https://gitlab.com/help/user/markdown#special-gitlab-references>`__
 -  If the commit is a **bugfix**\ :
 
-   -  if present in Redmine it has to contain a valid reference to the
+   -  if present in the `issue tracker`_, it has to contain a valid reference to the
       issue;
-   -  if it's a **major bug**, there has to be a bug report filed in
-      `Redmine`_ Â (with urgent or
+   -  if it's a **major bug**, there has to be a bug report filed in the
+      `issue tracker`_ Â (with urgent or
       immediate priority) and referenced appropriately.
 
 -  If the commit is a **feature/task** implementation:
 
-   -  if it's present in `Redmine`_ it
+   -  if it's present in the `issue tracker`_ it
       has to contain a valid reference to the issue;
    -  If no current issue is currently present and the change
       would benefit of one for future explanation on why it was
-      added, a new redmine issue should be created.
-
-Use of Verify
--------------
-
-Jenkins has been installed for automated build testing. So it isn't
-required to vote "verify +2" anymore. As the testing is not always
-perfect, and because test coverage can be spotty, developers can still
-manually vote to indicate that a change performs as intended. Please note
-that this should not be abused to bypass Jenkins testing. The vote from
-the test suite should only be discarded if failures are caused by unrelated
-issues.
-
-Further information
--------------------
-
-Currently it is possible to review your own code. It is undesirable to
-review your own code, because that defeats the point. It will be
-deactivated if it is being abused and those responsible may lose
-their voting rights.
-
-For further documentation:
-
--  |Gromacs| `specific manual <https://gerrit.gromacs.org/Documentation/index.html>`__
--  `General tutorials <https://gerrit-documentation.storage.googleapis.com/Documentation/2.15.3/index.html#_tutorials>`__
-
-FAQs
-====
-
-How do I access gerrit behind a proxy?
---------------------------------------
-
-If you are behind a firewall blocking port 22, you can use socat to
-overcome this problem by adding the following block to your
-``~/.ssh/config``
-
-::
-
-    Host gerrit.gromacs.org
-           User USER
-           Hostname gerrit.gromacs.org
-           ProxyCommand socat - PROXY:YOURPROXY:gerrit.gromacs.org,proxyport=PORT
-
-Replace ``YOURPROXY``, ``PORT`` and ``USER``, (but not ``PROXY``!) with your own
-settings.
-
-How do I link fixes with Redmine issues?
-----------------------------------------
-
-The linking of commits that relate to an existing issue is
-done automatically by `Redmine`_ if
-the git commit message contains a reference to the Redmine entry
-through the issueID, the numeric ID of the respective issue (bug,
-feature, task). The general syntax of a git comit reference is [keyword]
-#issueID.
-
-The following two types of refereces are possible:
-
--  For bugfix commits the issueID should be preceeded by
-   the "Fixes" keyword;
--  For commits related to a general issue (e.g. partial implementation of
-   feature or partial fix), the issueID should be preceeded by the "Refs" keyword;
-
-An example commit message header::
-
-    This commit refs #1, #2 and fixes #3
-
-How can I submit conflicting changes?
--------------------------------------
-
-When there are several, mutually conflicting changes in gerrit pending
-for review, the submission of the 2nd and subsequent ones will fail.
-Those need to be resolved locally and updated by
-
-::
-
-    $ git pull --rebase
-
-Then fix the conflicts and use
-
-::
-
-    $ git push
-
-Please add a comment (review without voting) saying that it was rebased
-with/without conflicts, to help the reviewer.
-
-
-.. _gmx-ammend-change:
-
-How do I upload an update to a pending change?
-----------------------------------------------
-
-First, obtain the code you want to update. If you haven't changed your
-local repository, then you already have it. Maybe you can check out the
-branch again, or consult your git reflog. Otherwise, you should go to
-gerrit, select the latest patch set (remembering that others may have
-contributed to your work), and use the "Download" link to give you a
-"Checkout" command that you can run, e.g.
-
-::
-
-    $ git fetch ssh://USER@gerrit.gromacs.org/gromacs refs/changes/?/?/? && git checkout FETCH_HEAD
-
-Make your changes, then add them to the index, and use
-
-::
-
-    $ git commit --amend
-    $ git push origin HEAD:refs/for/BRANCH
-
-When amending the previous commit message, leave the "Change-Id" intact
-so that gerrit can recognize this is an update and not open a new issue.
-
-DO NOT rebase your patch set and update it in one step. If both are done
-in one step, the diff between patch set versions has both kinds of
-changes. This makes it difficult for the reviewer, because it is not
-clear what parts have to be re-reviewed. If you need to update and
-rebase your change please do it in two steps (order doesn't matter).
-gerrit has a feature that allows you to rebase within gerrit, which
-creates the desired independent patch for that rebase (if the rebase is
-clean).
-
-How do I get a copy of my commit for which someone else has uploaded a patch?
------------------------------------------------------------------------------
-
-Gerrit makes this easy. You can download the updated commit in various
-ways, and even copy a magic git command to your clipboard to use in your
-shell.
-
-You can select the kind of git operation you want to do (cherry-pick is
-best if you are currently in the commit that was the parent, checkout is
-best if you just want to get the commit and not worry about the current
-state of your checked out git branch) and how you want to get it. The
-icon on the far right will paste the magic shell command into your
-clipboard, for you to paste into a terminal to use.
-
-How do I submit lots of independent commits (e.g. bug fixes)?
--------------------------------------------------------------
-
-Simply pushing a whole commit tree of unrelated fixes creates
-dependencies between them that make for trouble when one of them needs
-to be changed. Instead, from an up-to-date repo, create and commit the
-first change (or git cherry-pick it from an existing other branch).
-Upload it to gerrit. Then do
-
-::
-
-    $ git reset --keep HEAD^
-
-This will revert to the old HEAD, and allow you to work on a new commit
-that will be independent of the one you've already uploaded. The one
-you've uploaded won't appear in the commit history until it's been
-reviewed and accepted on gerrit and you've pulled from the main repo,
-however the version of it you uploaded still exists in your repo. You
-can see it with git show or git checkout using its hash - which you can
-get from the gerrit server or by digging in the internals of your repo.
-
-How can I avoid needing to remember all these arcane git commands?
-------------------------------------------------------------------
-
-In your ``.gitconfig``, having set the git remote for the gerrit repo to
-upload, use something like the following to make life easier:
-
-::
-
-    [alias]
-            upload-r2018  = push origin HEAD:refs/for/release-2018
-            upload-r2016  = push origin HEAD:refs/for/release-2016
-            upload-master = push origin HEAD:refs/for/master
-            upload-reset  = reset --keep HEAD^
-
-
-How can I get my patch in gerrit to have a different parent?
-------------------------------------------------------------
-
-Sometimes, some other patch under review is a relevant point from which
-to start work. For simple changes without conflicts to the previous
-work, you can use the Gerrit web UI to either rebase or cherry-pick
-the change you are working on.
-
-If this is not possible, you can still use
-the canned gerrit checkouts to (say) checkout out patch 2117 and start work:
-
-::
-
-    git fetch https://gerrit.gromacs.org/gromacs refs/changes/17/2117/2 && git checkout FETCH_HEAD
-
-Other times you might have already uploaded a patch (e.g. patch 1 of
-2145), but now see that some concurrent work makes more sense as a
-parent commit (e.g. patch 2 of 2117), so check it out as above, and then
-use the canned gerrit **cherry-pick**:
-
-::
-
-    git fetch https://gerrit.gromacs.org/gromacs refs/changes/45/2145/1 && git cherry-pick FETCH_HEAD
-
-Resolve any merge commits, check things look OK, and then upload.
-Because the ChangeId of 2145 hasn't changed, and nothing about 2117 has
-changed, the second patch set of 2145 will reflect the state of 2145 now
-having 2117 as a parent.
-
-This can also be useful for constructing a short development branch
-where the commits are somehow dependent, but should be separated for
-review purposes. This technique is useful when constructing a series of
-commits that will contribute to a release.
-
-How can I revert a change back to an old patchset?
---------------------------------------------------
-
-If a change accidentally gets updated or when a patchset is incorrect,
-you might want to revert to an older patchset. This can be done by
-fetching an old patchset, running git commit --amend to update the time
-stamp in the commit and pushing the commit back up to gerrit. Note that
-without the amending you will get an error from the remote telling you
-that there are no new changes.
-
-How do I handle common errors
------------------------------
-
-.. rubric:: error: server certificate verification failed. CAfile...
-
-If you try to cherry-pick a change from the server, you'll probably get
-the error:
-
-::
-
-    $ git fetch https://gerrit.gromacs.org/p/gromacs refs/changes/09/109/1 && git cherry-pick FETCH_HEAD
-    error: server certificate verification failed.
-    CAfile: /etc/ssl/certs/ca-certificates.crt
-    CRLfile: none while accessing https://gerrit.gromacs.org/p/gromacs/info/refs
-
-    fatal: HTTP request failed
-
-As explained
-`here <http://code.google.com/p/chromium-os/issues/detail?id=13402>`__,
-the problem is with git not trusting the certificate and as a workaround
-one can set globally
-
-::
-
-    $ git config --global --add http.sslVerify false
-
-or prepend GIT_SSL_NO_VERIFY=1 to the command
-
-::
-
-    $ GIT_SSL_NO_VERIFY=1  git fetch https://gerrit.gromacs.org/p/gromacs refs/changes/09/109/1 \
-     && git cherry-pick FETCH_HEAD
-
-.. rubric:: Various error messages and their meanings
-
-http://review.coreboot.org/Documentation/error-messages.html
+      added, a new issue should be created.
 
 More git tips
 =============
@@ -619,7 +202,7 @@ If the testing fails, you can
 amend your existing commit with
 ``git commit --amend``. After you are
 satisfied, you can push the
-commit into gerrit for review. If
+commit for review. If
 you stashed away your changes and
 you want the next change to be
 reviewed independently, do
@@ -630,7 +213,7 @@ reviewed independently, do
     git stash pop
 
 (only do this if you pushed the
-previous change to gerrit,
+previous change upstream,
 otherwise it is difficult to get
 the old changes back!) and repeat
 until each independent change is
@@ -799,59 +382,3 @@ both at the same time using
 ::
 
     git rebase -i master
-
-.. rubric:: Interacting with Gerrit
-   :name: interacting-with-gerrit
-   :class: editable
-
-This section is intended for
-using git to interact with
-gerrit; interacting with the web
-UI may be better dealt with on a
-separate page.
-
-.. rubric:: Q: How do I move a change from a branch to another?
-
-A: Moving one or a few changes is
-most easily done using ``git
-cherry-pick``. To move a single
-change, first do
-
-::
-
-    git checkout <target-branch>
-
-Then, open the change/patch set
-in Gerrit that you want to move,
-select "cherry-pick" in the
-Download section for that patch
-set, and copy/paste the given
-command:
-
-::
-
-    git fetch ... refs/changes/... && git cherry-pick FETCH_HEAD
-
-Resolve any conflicts and do
-
-::
-
-    git commit [-a]
-
-You can also cherry-pick multiple
-changes this way to move a small
-topic branch. Before pushing the
-change to Gerrit, remove the
-lines about conflicts from the
-commit message, as they don't
-serve any useful purpose in the
-history. You can type that
-information into the change as a
-Gerrit comment if it helps the
-review process. Note that Gerrit
-creates a new change for the
-target branch, even if Change-Ids
-are same in the commits. You need
-to manually abandon the change in
-the wrong branch.
-
index 4b26db088c8e2aed423138d9c0ab37fd9ac75c61..cb9048d859e44bc5c912ba876001d098b0364597 100644 (file)
@@ -37,7 +37,7 @@ to do these (once):
    (``/path/to/uncrustify`` below).
 
 Alternatively, if you are running Linux, you can try whether the binary from
-http://redmine.gromacs.org/issues/845 works for you.
+https://gitlab.com/gromacs/gromacs/-/issues/845 works for you.
 
 In order to use the binary for ``uncrustify.sh`` and for the pre-commit hook, you
 also need to run this in each of your |Gromacs| repositories::
index 6945b32d06567a85250fa94d557353a5b948d4c8..59f2e74863c8e8151271ea1f31fad630f8f5bd3c 100644 (file)
@@ -23,8 +23,8 @@ Guidelines for git commit messages
 Commit messages should contain a quick explanation in verb form on what has been
 changed or what has been the purpose of the change. If available, the final
 part of the message before the ChangeId should be a short section like
-**Fixes #redmine-id** to link the change to a possibly previously 
-posted issue, or **Refs #redmine-id** if the present patch is somehow
+**Fixes #issue-id** to link the change to a possibly previously
+posted issue, or **Refs #issue-id** if the present patch is somehow
 related to that work without necessarily fixing the whole issue.
 
 Concerning inline code comments
index 0bc378d6542ba65bdfbfa8497ef13b90a03e9968..22db6df9f58f0e51a7aa78316cf2282281891be5 100644 (file)
@@ -40,7 +40,7 @@ please make sure that you have checked all the points on this list:
   widespread adoption of the method.
 
 * *Advance discussion*: Please communicate with the other developers,
-  e.g.  on the `developer mailing list`_ mailing list, or `redmine`_ to let them know of the general
+  e.g.  on the `developer mailing list`_ mailing list, or `issue tracker`_ to let them know of the general
   nature of your plans. This will prevent duplicate or wasted
   effort. It is also a good idea to search those resources as well as
   the literature and WWW for other projects that may be relevant.
@@ -124,13 +124,13 @@ please make sure that you have checked all the points on this list:
 Preparing code for submission
 -----------------------------
 
-|Gromacs| revision control uses a ``git`` repository managed by :ref:`Gerrit <gmx-gerrit>`.
+|Gromacs| uses ``git`` for :doc:`change-management`.
 Instead of accepting "pull requests", |Gromacs| changes are submitted as individual
-commits on the tip of the ``master`` branch hosted at https://gerrit.gromacs.org.
+commits on the tip of the ``master`` branch hosted at `gitlab`_.
 Preparing, submitting, and managing patches for a change requires a little bit
 of set-up. Refer to :doc:`change-management` for information about
 
-* accessing the |Gromacs| Gerrit server
+* accessing the |Gromacs| *git* repository
 * structure of the repository
 * source control without merge commits
 * ``git`` usage that may be less common in other development work flows
index 7b51a21dd0618a437f13896e1b3c48531241dace..19894addcea4ae72e8a7d05bddd955dcc62e6216 100644 (file)
@@ -101,10 +101,6 @@ environment to jobs that run under the ``schedules``
 Nightly scheduled pipelines run against ``master`` and *release* branches in
 the GROMACS repository.
 
-Pending resolution of :issue:`3272`,
-the repository hosted on Gerrit is mirrored to GitLab.
-Mirror updates trigger pipeline builds.
-
 Global templates
 ~~~~~~~~~~~~~~~~
 
index 1422fb5e3936c9d3de95af3edd7caeaa2b91ede3..6d94faa79680856ef5adab96b752e1685df0185a 100644 (file)
@@ -34,7 +34,7 @@ C++ compilers, and because we want to increase readability. However, |Gromacs| i
 advanced projects in constant development, and as our needs evolve we will both
 relax and tighten many of these points. Some of these changes happen naturally as
 part of agreements in code review, while major parts where we don't agree should be
-pushed to a redmine thread. Large changes should be suggested early in the development
+pushed to a `issue tracker`_ thread. Large changes should be suggested early in the development
 cycle for each release so we avoid being hit by last-minute compiler bugs just before
 a release.
 
index 2d9109b99347bebb9e24f7f35d3b06c9154cc41c..93e58492fe599fd6a66100fd257da1a7315b9ede 100644 (file)
@@ -1,11 +1,9 @@
-Guidelines for creating meaningful redmine issue reports
-========================================================
+Guidelines for creating meaningful issue reports
+================================================
 This section gives some started on how to generate useful issues on the
-|Gromacs| `redmine issue tracker`_. The information here comes to a large extent
+|Gromacs| `issue tracker`_. The information here comes to a large extent
 directly from there, to help you in preparing your reports.
 
-.. _redmine issue tracker: https://redmine.gromacs.org
-
 What to report
 ^^^^^^^^^^^^^^
 Please only report issues you have confirmed to be caused by |Gromacs| behaving in an
@@ -36,7 +34,7 @@ does not result in any warnings or errors in itself. If your example generates e
 not be considered as *real*, or at the minimum it will be much harder to analyse to find the actual issue.
 
 
-If your inputs are sensitive, then it is possible to create private Redmine issues so that the
+If your inputs are sensitive, then it is possible to create private `issues`_ so that the
 developer team can have access to solve the problem, while preventing widespread
 visibility on the internet.
 
@@ -61,7 +59,7 @@ General issue workflow
 The general issue workflow is shown in the figure below:
 
 .. image:: redmine-states.png
-   :alt:  Sample procedure pathway for issues reported in redmine.
+   :alt:  Sample procedure pathway for reported issues.
 
 
 .. Text below is stolen from the old Gromacs web page
index 761a455524c3d5f00f19229d6f795f798426001c..70841bb1574c99e5108536f4b49b39e1ead27cdd 100644 (file)
@@ -31,7 +31,7 @@ this page.
   Guidelines for using Doxygen to document the source code are currently in a
   section on the page on general Doxygen usage.
 :doc:`reportstyle`
-  Guidelines for preparing and formatting bug reports on redmine.
+  Guidelines for preparing and formatting bug reports.
 :doc:`commitstyle`
   Guidelines for formatting git commits when sending in proposed fixes for code review.
 
index 0fc35b1fbe1fd855c098543f0694f3d6f0ca2675..d7b96162213f9eec8ed34efbbcfe531365caa1f2 100644 (file)
@@ -39,12 +39,13 @@ git
 
   Other basic tutorial material for ``git`` can be found on the `web <https://git-scm.com/doc/ext>`__.
 
-Gerrit
-  All code changes go through a code review system at
-  http://gerrit.gromacs.org.
+GitLab
+  Bugs and issues, as well as some random features and discussions,
+  are tracked, and all code changes go through a code review system at
+  https://gitlab.com/gromacs/gromacs.
 
 Build testing
-  All changes pushed to Gerrit are automatically compiled and otherwise
+  All changes pushed to GitLab are automatically compiled and otherwise
   checked on various platforms.
   :doc:`infrastructure` documents how builds are automated,
   providing information on how to replicate the builds (e.g., to
@@ -52,10 +53,6 @@ Build testing
   :doc:`releng/index` provides more information on the technical implementation
   of the builds.
 
-Redmine
-  Bugs and issues, as well as some random features and discussions,
-  are tracked at http://redmine.gromacs.org.
-
 .. _Git Tips & Tricks: http://www.gromacs.org/index.php?title=Developer_Zone/Git/Git_Tips_%26_Tricks
 
 Build system
index 964a2c8197a39ea94daf96740f2274caf84756de..c5d844eefc2a5aa2f8601755a552ef7014303cfd 100644 (file)
@@ -50,7 +50,7 @@ src/gromacs/tables/quadraticsplinetable.h: warning: includes "simd.h" unnecessar
 *: warning: includes non-local file as "corewrap.h"
 src/gmxpre.h: warning: includes non-local file as "swindirect.h"
 
-# New external API (see https://redmine.gromacs.org/issues/2586) has some unresolved
+# New external API (see https://gitlab.com/gromacs/gromacs/-/issues/2586) has some unresolved
 # conflicts with previous definitions of public API, installed API, and other things
 # described or implemented in check-source.py, gmxtree.py, gmxtree.rst, and others
 # TODO: resolve definitions, update testing heuristics, and activate policy checks
index 83844e0202ec5955852e5cef02c6071e7872066f..8519d445c34ee2f0d6ac24c6be96cfb1bf386844 100644 (file)
@@ -16,7 +16,7 @@ Proxies and managed resources
 Operations, factories, and data flow: declaration, definition, and initialization
 =================================================================================
 
-..  todo:: Reference https://redmine.gromacs.org/issues/2993
+..  todo:: Reference https://gitlab.com/gromacs/gromacs/-/issues/2993
 
 Expressing inputs and outputs
 -----------------------------
index 14a936a6729723af97089b4fd451602aea1afcb0..adfe44938cfeadb8c179131b0a740815c2964ab1 100644 (file)
@@ -497,7 +497,7 @@ https://hub.docker.com/r/gmxapi/docs for more information.
 .. todo::
 
     Document sample_restraint package. Reference issue
-    `3027 <https://redmine.gromacs.org/issues/3027>`_
+    `3027 <https://gitlab.com/gromacs/gromacs/-/issues/3027>`_
 
 .. _gmxapi install troubleshooting:
 
index c1100b70c7e8bad8ad844ff9ac6e39af14fd3c89..cc9afd0cc5acd1b0f9dc323ec2bb8a3c7a9256d4 100644 (file)
@@ -42,7 +42,7 @@ a *gmxapi* script.
 
     :py:class:`gmxapi.commandline_operation` relies on the environment :envvar:`PATH`
     to locate executables, including the :command:`gmx` wrapper binary.
-    Relates to `#2961 <https://redmine.gromacs.org/issues/2961>`__.
+    Relates to `#2961 <https://gitlab.com/gromacs/gromacs/-/issues/2961>`__.
 
 .. _parallelism:
 
@@ -351,7 +351,7 @@ More
 Refer to the :doc:`pythonreference` for complete and granular documentation.
 
 For more information on writing or using pluggable simulation extension code,
-refer to https://redmine.gromacs.org/issues/3133.
+refer to https://gitlab.com/gromacs/gromacs/-/issues/3133.
 (For gmxapi 0.0.7 and GROMACS 2019, see https://github.com/kassonlab/sample_restraint)
 
 .. todo:: :issue:`3133`: Replace these links as resources for pluggable extension code become available.
index 0c502d389aac32de01ef2754d323554ffe09b0be..de3aa4d110027505c0799894200a09d80452bb56 100644 (file)
@@ -13,4 +13,4 @@ After installing GROMACS and the gmxapi Python package, use ``pydoc gmxapi``
 from the command line or ``import gmxapi; help(gmxapi)`` within Python for
 package and module documentation.
 
-..  todo:: Example scripts. See issue `3014 <https://redmine.gromacs.org/issues/3014>`_
+..  todo:: Example scripts. See issue `3014 <https://gitlab.com/gromacs/gromacs/-/issues/3014>`_
index b583b4df968472d953edc298c1a701b271d31fa6..1fc4bcc6e126d92086585ef35f95670c46f27c9c 100644 (file)
@@ -38,7 +38,7 @@ which in some cases might mean the information is not entirely correct.
 Comments on form and content are welcome, please send them to one of
 the mailing lists (see our `webpage`_ or this section on
 how to :ref:`contribute <gmx-contribute>`), or open an issue
-on our `redmine`_. Corrections can also be made in the |Gromacs| git
+on our `issue tracker`_. Corrections can also be made in the |Gromacs| git
 source repository and uploaded to the |Gromacs| `gerrit`_.
 
 We release an updated version of the manual whenever
index 64e252520968ddb67b7d2e1ba48a4a5ed4885351..d79603c6708459dc16da65e7cecbc1d851ca7399 100644 (file)
@@ -160,7 +160,7 @@ These document fixes for issues that were identified as having been
 introduced into the release-2016 branch since it diverged from
 release-5-1. These will not appear in the final release notes, because
 no formal release is thought to have had the problem. Of course, the
-Redmine issues remain available should further discussion arise.
+tracked `issues`_ remain available should further discussion arise.
 
 Fixed bug in v-rescale thermostat & replica exchange
 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
index fb2383bdc3e6397e37d898eeae05790d5aca61e7..ab3a576ffff4465928f4310e2fc990e2c7887862 100644 (file)
@@ -47,7 +47,7 @@ the reference to the three term dihedral to an older paper.
 Updated many aspects of the documentation
 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 Imported and updated more material from the wiki. Incorporated
-suggestions arising from many Redmine issues. Updated user guide,
+suggestions arising from many tracked issues. Updated user guide,
 developer guide, install guide, and reference manual.
 
 Updated mdrun signal help text
index 0f867ce1c061ca3a00ef45876e5ae26780416084..aeb6a5515b01f765221e9adcb304932ef323ba3a 100644 (file)
@@ -10,7 +10,7 @@ in the :ref:`release-notes`.
 .. Note to developers!
    Please use """"""" to underline the individual entries for fixed issues in the subfolders,
    otherwise the formatting on the webpage is messed up.
-   Also, please use the syntax :issue:`number` to reference issues on redmine, without the
+   Also, please use the syntax :issue:`number` to reference issues on GitLab, without the
    a space between the colon and number!
 
 Fixes where mdrun could behave incorrectly
index 80f501cb4da12cb1fc7f5be07f77511217b231d7..8338de59b997794f0721944c3922d28c1d01816e 100644 (file)
@@ -10,7 +10,7 @@ in the :ref:`release-notes`.
 .. Note to developers!
    Please use """"""" to underline the individual entries for fixed issues in the subfolders,
    otherwise the formatting on the webpage is messed up.
-   Also, please use the syntax :issue:`number` to reference issues on redmine, without the
+   Also, please use the syntax :issue:`number` to reference issues on GitLab, without the
    a space between the colon and number!
 
 Fixes where mdrun could behave incorrectly
index 195be46ebcd45f3c144c797215cec4d649b08028..aa7922b03d027ee9dcd3b12a843f722200774639 100644 (file)
@@ -10,7 +10,7 @@ in the :ref:`release-notes`.
 .. Note to developers!
    Please use """"""" to underline the individual entries for fixed issues in the subfolders,
    otherwise the formatting on the webpage is messed up.
-   Also, please use the syntax :issue:`number` to reference issues on redmine, without the
+   Also, please use the syntax :issue:`number` to reference issues on GitLab, without the
    a space between the colon and number!
 
 Fixes where mdrun could behave incorrectly
index f526dc3ee1ecd0aad6c83978865e9c0eb196fa4b..7fd579048d736ae51cc7d293a8830618d45ea39e 100644 (file)
@@ -10,7 +10,7 @@ in the :ref:`release-notes`.
 .. Note to developers!
    Please use """"""" to underline the individual entries for fixed issues in the subfolders,
    otherwise the formatting on the webpage is messed up.
-   Also, please use the syntax :issue:`number` to reference issues on redmine, without the
+   Also, please use the syntax :issue:`number` to reference issues on GitLab, without the
    a space between the colon and number!
 
 Fixes where mdrun could behave incorrectly
index bf676ce57fabaa607f3c24289694f4cc0f4d05a6..14e2d7eaade73bd84e7d98d6bced9b7c87d061c2 100644 (file)
@@ -10,7 +10,7 @@ in the :ref:`release-notes`.
 .. Note to developers!
    Please use """"""" to underline the individual entries for fixed issues in the subfolders,
    otherwise the formatting on the webpage is messed up.
-   Also, please use the syntax :issue:`number` to reference issues on redmine, without the
+   Also, please use the syntax :issue:`number` to reference issues on GitLab, without the
    a space between the colon and number!
 
 Fixes where mdrun could behave incorrectly
index 534d10a0b2c2d385d0ecd466c18cf0aa8be10677..a29b34aba8e2d0247dff6c6210c92d5acf429ea7 100644 (file)
@@ -10,7 +10,7 @@ in the :ref:`release-notes`.
 .. Note to developers!
    Please use """"""" to underline the individual entries for fixed issues in the subfolders,
    otherwise the formatting on the webpage is messed up.
-   Also, please use the syntax :issue:`number` to reference issues on redmine, without the
+   Also, please use the syntax :issue:`number` to reference issues on GitLab, without the
    a space between the colon and number!
 
 Fixes where mdrun could behave incorrectly
index c793676497b689af2c13067bfc04eec6137781c8..d10999d4e9838a856eec1ce0e53ccd3422bc882d 100644 (file)
@@ -10,7 +10,7 @@ in the :ref:`release-notes`.
 .. Note to developers!
    Please use """"""" to underline the individual entries for fixed issues in the subfolders,
    otherwise the formatting on the webpage is messed up.
-   Also, please use the syntax :issue:`number` to reference issues on redmine, without the
+   Also, please use the syntax :issue:`number` to reference issues on GitLab, without the
    a space between the colon and number!
 
 Fixes where mdrun could behave incorrectly
index c9ccef9586dc0f4c8d71008fc4de4a69dd5c3803..b4895cd207a1999ace7aa57cd287b93138f69d61 100644 (file)
@@ -4,7 +4,7 @@ Bugs fixed
 .. Note to developers!
    Please use """"""" to underline the individual entries for fixed issues in the subfolders,
    otherwise the formatting on the webpage is messed up.
-   Also, please use the syntax :issue:`number` to reference issues on redmine, without the
+   Also, please use the syntax :issue:`number` to reference issues on GitLab, without the
    a space between the colon and number!
 
 gmx mdrun -append now requires that a checkpoint is found
index d0e8b3ac726f90507366e892679366329c15a2a3..7ffeaea3abd1e4a0c9ca158eda2f31e6715caed7 100644 (file)
@@ -3,7 +3,7 @@
 .. Note to developers!
    Please use """"""" to underline the individual entries for fixed issues in the subfolders,
    otherwise the formatting on the webpage is messed up.
-   Also, please use the syntax :issue:`number` to reference issues on redmine, without the
+   Also, please use the syntax :issue:`number` to reference issues on GitLab, without the
    a space between the colon and number!
 
 Changes anticipated to |Gromacs| 2020 functionality
index 67f24732857b54140142b0a2ade0aecb6cb919ef..81257d8fc4ce75bbfb1e7299d3e42b2ac8e5aa83 100644 (file)
@@ -4,7 +4,7 @@ New and improved features
 .. Note to developers!
    Please use """"""" to underline the individual entries for fixed issues in the subfolders,
    otherwise the formatting on the webpage is messed up.
-   Also, please use the syntax :issue:`number` to reference issues on redmine, without the
+   Also, please use the syntax :issue:`number` to reference issues on GitLab, without the
    a space between the colon and number!
 
 Density-guided simulations
index 316064f872b8ab870459f95df457a620fecc858b..757e9314d9269a56ba3d2f4d5ba17ee0efd910ac 100644 (file)
@@ -26,5 +26,5 @@ simulations and hardware. The new features are:
 .. Note to developers!
    Please use """"""" to underline the individual entries for fixed issues in the subfolders,
    otherwise the formatting on the webpage is messed up.
-   Also, please use the syntax :issue:`number` to reference issues on redmine, without the
+   Also, please use the syntax :issue:`number` to reference issues on GitLab, without the
    a space between the colon and number!
index ace0f701ed0969d932b89ac0e01a191631565152..3768cd75858a1512922d524173a8c97d11be25cf 100644 (file)
@@ -4,7 +4,7 @@ Miscellaneous
 .. Note to developers!
    Please use """"""" to underline the individual entries for fixed issues in the subfolders,
    otherwise the formatting on the webpage is messed up.
-   Also, please use the syntax :issue:`number` to reference issues on redmine, without the
+   Also, please use the syntax :issue:`number` to reference issues on GitLab, without the
    a space between the colon and number!
 
 grompp now warns if macros in mdp "define" field are unused in topology
index 784d4b83a1dcef7b335f1fe68b7f3980dcffd348..77c9e48b4e488a64335c47212ca51001fd0b740a 100644 (file)
@@ -4,7 +4,7 @@ Performance improvements
 .. Note to developers!
    Please use """"""" to underline the individual entries for fixed issues in the subfolders,
    otherwise the formatting on the webpage is messed up.
-   Also, please use the syntax :issue:`number` to reference issues on redmine, without the
+   Also, please use the syntax :issue:`number` to reference issues on GitLab, without the
    a space between the colon and number!
 
 Up to a factor 2.5 speed-up of the non-bonded free-energy kernel
index 4186794e8f08888e329ccba8a78265652658c8ed..36577cbd830c01a85ba757bf5c6acc965dcb79f5 100644 (file)
@@ -4,7 +4,7 @@ Portability
 .. Note to developers!
    Please use """"""" to underline the individual entries for fixed issues in the subfolders,
    otherwise the formatting on the webpage is messed up.
-   Also, please use the syntax :issue:`number` to reference issues on redmine, without the
+   Also, please use the syntax :issue:`number` to reference issues on GitLab, without the
    a space between the colon and number!
 
 Added support for Hygon Dhyana CPU architecture
index a3326ad559312197af73e3d61a7ec189f20f1e47..eb955bacb215b9931eb9b58dec60a830710ce398 100644 (file)
@@ -4,7 +4,7 @@ Removed functionality
 .. Note to developers!
    Please use """"""" to underline the individual entries for fixed issues in the subfolders,
    otherwise the formatting on the webpage is messed up.
-   Also, please use the syntax :issue:`number` to reference issues on redmine, without the
+   Also, please use the syntax :issue:`number` to reference issues on GitLab, without the
    a space between the colon and number!
 
 Group cut-off scheme
index c28942396d8345c579ff978f6ae44a1aa8681c59..6290478b280b83cb94176b9fa0ba9d37b7574e80 100644 (file)
@@ -4,7 +4,7 @@ Improvements to |Gromacs| tools
 .. Note to developers!
    Please use """"""" to underline the individual entries for fixed issues in the subfolders,
    otherwise the formatting on the webpage is messed up.
-   Also, please use the syntax :issue:`number` to reference issues on redmine, without the
+   Also, please use the syntax :issue:`number` to reference issues on GitLab, without the
    a space between the colon and number!
 
 Fixed bug in gmx order -calcdist
index 1db0c1eb0842eeaa7740e7a29f2e2d7a8d786b52..32793b8aaffed66dfd7129fcb5f05f04709d8062 100644 (file)
@@ -4,6 +4,6 @@ Bugs fixed
 .. Note to developers!
    Please use """"""" to underline the individual entries for fixed issues in the subfolders,
    otherwise the formatting on the webpage is messed up.
-   Also, please use the syntax :issue:`number` to reference issues on redmine, without the
+   Also, please use the syntax :issue:`number` to reference issues on GitLab, without the
    a space between the colon and number!
 
index bf6860025c7d511b2425f4bc832f9684ff1f85c1..bad48892c0ec6dd235a7ff77e345efc4ef847358 100644 (file)
@@ -3,7 +3,7 @@
 .. Note to developers!
    Please use """"""" to underline the individual entries for fixed issues in the subfolders,
    otherwise the formatting on the webpage is messed up.
-   Also, please use the syntax :issue:`number` to reference issues on redmine, without the
+   Also, please use the syntax :issue:`number` to reference issues on GitLab, without the
    a space between the colon and number!
 
 Changes anticipated to |Gromacs| 2021 functionality
index 4fab02b1170b767c0798640ff34d007706cba2d0..5626dc8d5462550503337c0106ea3f60b9df0848 100644 (file)
@@ -4,6 +4,6 @@ New and improved features
 .. Note to developers!
    Please use """"""" to underline the individual entries for fixed issues in the subfolders,
    otherwise the formatting on the webpage is messed up.
-   Also, please use the syntax :issue:`number` to reference issues on redmine, without the
+   Also, please use the syntax :issue:`number` to reference issues on GitLab, without the
    a space between the colon and number!
 
index 3bcb16d34a31d928a3178e1c76c8357a3a34af9c..45231d973b3970538565d54190e550d6c0434164 100644 (file)
@@ -18,5 +18,5 @@ simulations and hardware. The new features are:
 .. Note to developers!
    Please use """"""" to underline the individual entries for fixed issues in the subfolders,
    otherwise the formatting on the webpage is messed up.
-   Also, please use the syntax :issue:`number` to reference issues on redmine, without the
+   Also, please use the syntax :issue:`number` to reference issues on GitLab, without the
    a space between the colon and number!
index 96513fa4c8c6c4fe81b1c3fbd950b830dfe55d57..1a242e34466312319a3223974f3e5250c526dd6b 100644 (file)
@@ -4,6 +4,6 @@ Miscellaneous
 .. Note to developers!
    Please use """"""" to underline the individual entries for fixed issues in the subfolders,
    otherwise the formatting on the webpage is messed up.
-   Also, please use the syntax :issue:`number` to reference issues on redmine, without the
+   Also, please use the syntax :issue:`number` to reference issues on GitLab, without the
    a space between the colon and number!
 
index f1053389eca953c97c3efdc63fad598d6ac91d69..0c895e763705df81a1e4c6295c126aac25c8819f 100644 (file)
@@ -4,7 +4,7 @@ Performance improvements
 .. Note to developers!
    Please use """"""" to underline the individual entries for fixed issues in the subfolders,
    otherwise the formatting on the webpage is messed up.
-   Also, please use the syntax :issue:`number` to reference issues on redmine, without the
+   Also, please use the syntax :issue:`number` to reference issues on GitLab, without the
    a space between the colon and number!
 
 Extend supported use-cases for GPU version of update and constraints
index 1daad92054f53ca7fbf835366c8326e6e86d8c3d..9264580d11521e92b05cd581027f3f8928737463 100644 (file)
@@ -10,6 +10,6 @@ Where Python is required,
 .. Note to developers!
    Please use """"""" to underline the individual entries for fixed issues in the subfolders,
    otherwise the formatting on the webpage is messed up.
-   Also, please use the syntax :issue:`number` to reference issues on redmine, without the
+   Also, please use the syntax :issue:`number` to reference issues on GitLab, without the
    a space between the colon and number!
 
index e6a64590bfb8537f619d41025724455f6b7af7e7..4b1b189f6c7c6b28fb1cbec50d1b5cbb9c49f9e1 100644 (file)
@@ -4,6 +4,6 @@ Removed functionality
 .. Note to developers!
    Please use """"""" to underline the individual entries for fixed issues in the subfolders,
    otherwise the formatting on the webpage is messed up.
-   Also, please use the syntax :issue:`number` to reference issues on redmine, without the
+   Also, please use the syntax :issue:`number` to reference issues on GitLab, without the
    a space between the colon and number!
 
index 3451957b9ce87118c30a3dfae2082af3563b9c61..32a358848e5e17f67e76396b2007484d2183874c 100644 (file)
@@ -4,6 +4,6 @@ Improvements to |Gromacs| tools
 .. Note to developers!
    Please use """"""" to underline the individual entries for fixed issues in the subfolders,
    otherwise the formatting on the webpage is messed up.
-   Also, please use the syntax :issue:`number` to reference issues on redmine, without the
+   Also, please use the syntax :issue:`number` to reference issues on GitLab, without the
    a space between the colon and number!
 
index e14445edff3449e15af46a14855d5d46832f3ecc..e1796a0c9642fe50213b81add38d13c6a915747c 100644 (file)
@@ -18,7 +18,7 @@ the 2021 release series, as appropriate. Around the time the 2022
 release is made, the 2020 series will no longer be maintained.
 
 Where issue numbers are reported in these release notes, more details
-can be found at https://redmine.gromacs.org at that issue number.
+can be found at https://gitlab.com/gromacs/gromacs/-/issues at that issue number.
 
 |Gromacs| 2021 series
 ---------------------
index cc5ae564c7f27f0514c36c97e2085d5e795cc2ba..33ae308c6300de92a5a58c08c11f5e77f67090cf 100644 (file)
@@ -11,7 +11,7 @@ changes to the functionality supported, whereas patch releases contain
 only fixes for issues identified in the corresponding major releases.
 
 Where issue numbers are reported in these release notes, more details
-can be found at https://redmine.gromacs.org at that issue number.
+can be found at https://gitlab.com/gromacs/gromacs/-/issues at that issue number.
 
 |Gromacs| 5.1 series
 -----------------------------------
index 2f0d6362646ea94ca92eea815c9f53e00c2e08ce..faa48c6a165ee33aa48809accd37b07ad768b597 100644 (file)
@@ -1,7 +1,7 @@
 # Python package sources
 
 This directory exists as a staging area supporting GROMACS enhancement
-[#2045](https://redmine.gromacs.org/issues/2045),
+[#2045](https://gitlab.com/gromacs/gromacs/-/issues/2045),
 which attempts to update the gmxapi efforts from GROMACS 2019,
 merge external repositories from
 https://github.com/kassonlab/gmxapi
@@ -42,7 +42,7 @@ Use `pytest` to run unit tests and integration tests.
     pytest test
 
 For additional discussion on packaging and distribution, see
-https://redmine.gromacs.org/issues/2896
+https://gitlab.com/gromacs/gromacs/-/issues/2896
 
 ## Sample MD extension code
 
@@ -107,7 +107,7 @@ Additional information in `python_packaging/docker/README.md`.
 
 Hint: the fork point from `master` and the current git ref can be set as environment variables:
 
-    FORKPOINT=$(git show -s --pretty=format:"%h" `git merge-base gerrit_master HEAD`)
+    FORKPOINT=$(git show -s --pretty=format:"%h" `git merge-base master HEAD`)
     REF=`git show -s --pretty=format:"%h"`
 
 ## External project code
@@ -124,7 +124,7 @@ Scikit-build is installed with Python packaging tools automatically with
 `pip install -r requirements.txt`, as above.
 
 Note: scikit-build is only required for convenient management of the Python
-build environment and packaging. See https://redmine.gromacs.org/issues/2896
+build environment and packaging. See https://gitlab.com/gromacs/gromacs/-/issues/2896
 
 # pybind11
 
index e22ba4dbcefdbbb0bcd158b67870975a017b1d46..b149784a69fc24409e7c86da278c7b1e37cfd8fd 100644 (file)
@@ -7,9 +7,7 @@ by future Jenkins infrastructure.
 Assume you have already checked out the commit you want to build for.
 Assume the following definitions.
 
-    git fetch https://github.com/gromacs/gromacs.git master
-    git branch gerrit_master FETCH_HEAD
-    FORKPOINT=$(git show -s --pretty=format:"%h" `git merge-base gerrit_master HEAD`)
+    FORKPOINT=$(git show -s --pretty=format:"%h" `git merge-base master HEAD`)
     TAG="fr1" # for functional requirement 1
 
 ## Building
index 442f9687fa6f66195f35e0f8d855517abb6c75c8..42b0d7f0f84ad9cef64ebf0c9e318649db40f3e4 100644 (file)
@@ -12,7 +12,7 @@
 # Build from the GROMACS image at the current fork point. Tag with the feature
 # name or the current revision.
 #
-#    FORKPOINT=$(git show -s --pretty=format:"%h" `git merge-base gerrit_master HEAD`)
+#    FORKPOINT=$(git show -s --pretty=format:"%h" `git merge-base master HEAD`)
 #    REF=`git show -s --pretty=format:"%h"`
 #    # or
 #    REF="fr1"
index b6d6fd9699c67d9d3c53bda4361a615f4fdb6587..97d23e860c7b2c187cc1224ba4d8599ed4e98441 100644 (file)
@@ -21,7 +21,7 @@ endif()
 # the paackage that should be installed with GROMACS, but the pybind sources
 # would only be available to this project with some additional management by
 # the parent project CMake configuration.
-# Also reference https://redmine.gromacs.org/issues/2896
+# Also reference https://gitlab.com/gromacs/gromacs/-/issues/2896
 if(GMXAPI_EXTENSION_MASTER_PROJECT)
     # TODO: (Issue #3027) Handle locally available sources.
     set(GMXAPI_EXTENSION_USE_BUNDLED_PYBIND OFF CACHE BOOL
index aa1ee524b5cef3af1de692a1b93b2a21c99d5050..e347ba3f2277706af7874aa42544a3df1fd07584 100644 (file)
@@ -48,15 +48,15 @@ package.
     the Pybind project (ref <https://github.com/pybind/pybind11> ). It
     is used to wrap the C++ restraint code and give it a Python
     interface.</strike> Note: pybind is currently retrieved while configuring
-    with CMake. Ref redmine issues [3027](https://redmine.gromacs.org/issues/3027)
-    and [3033](https://redmine.gromacs.org/issues/3033)
+    with CMake. Ref issues [3027](https://gitlab.com/gromacs/gromacs/-/issues/3027)
+    and [3033](https://gitlab.com/gromacs/gromacs/-/issues/3033)
 -   `tests/` contains C++ and Python tests for the provided code. Update
     `CMakeLists.txt` to add your own, based on these examples. C++ unit
     tests use [googletest](https://github.com/google/googletest). Python
     tests use the [pytest](https://docs.pytest.org/en/latest/). Refer to
     those respective projects for more about how they make test-writing
     easier. Note: googletest is currently downloaded while configuring with
-    CMake. Ref [3033](https://redmine.gromacs.org/issues/3033)
+    CMake. Ref [3033](https://gitlab.com/gromacs/gromacs/-/issues/3033)
 -   `examples` contains a sample SLURM job script and
     `restrained-ensemble.py` gmxapi script that have been used to do
     restrained ensemble simulations. `example.py` and `example.ipynb`
index 24446d74132c155ed71a92d2862d2b874952fbce..3cc6a2dbad0e3835225fe998aca8c9001fbb56fd 100644 (file)
@@ -53,7 +53,7 @@ if (GMXAPI_EXTENSION_MASTER_PROJECT)
     # We also build a test file in the spc_water_box pytest test fixture, but we can
     # presumably extract both of those from the GROMACS installation, or at least
     # through the gmxapi Python package resources.
-    # Ref: https://redmine.gromacs.org/issues/2961
+    # Ref: https://gitlab.com/gromacs/gromacs/-/issues/2961
     file(DOWNLOAD
          https://github.com/kassonlab/sample_restraint/raw/master/tests/data/topol.tpr
          ${CMAKE_CURRENT_BINARY_DIR}/topol.tpr
index 18dc260df19f9c29d061c5dcc1e1ccbf7c9ea777..5b7fe99405ec0c8e972609bb65d1c274d5fd8fb0 100644 (file)
@@ -1,7 +1,7 @@
 #
 # This file is part of the GROMACS molecular simulation package.
 #
-# Copyright (c) 2019, by the GROMACS development team, led by
+# Copyright (c) 2019,2020, by the GROMACS development team, led by
 # Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
 # and including many others, as listed in the AUTHORS file in the
 # top-level source directory and at http://www.gromacs.org.
@@ -37,7 +37,7 @@
 # simplest use case is to allow the `setup.py` file to invoke skbuild to
 # configure and run CMake. CMake could be invoked directly by the user or a
 # parent package, but the Python distribution would not be packaged automatically.
-# Reference https://redmine.gromacs.org/issues/2896 for additional discussion.
+# Reference https://gitlab.com/gromacs/gromacs/-/issues/2896 for additional discussion.
 cmake_minimum_required(VERSION 3.9.6)
 
 # This needs to be set before project() in order to pick up toolchain files
@@ -112,7 +112,7 @@ option(GMXAPI_USE_BUNDLED_PYBIND
 if(GMXAPI_USE_BUNDLED_PYBIND)
     add_subdirectory(external/pybind)
 else()
-    # Reference https://redmine.gromacs.org/issues/2896
+    # Reference https://gitlab.com/gromacs/gromacs/-/issues/2896
     find_package(pybind11 2.2 REQUIRED)
 endif()
 
@@ -164,7 +164,7 @@ else()
     target_link_libraries(_gmxapi PRIVATE Gromacs::gmxapi)
 
     # TODO: Determine packaging and installation cases and implementation.
-    # Reference https://redmine.gromacs.org/issues/2896 for additional discussion.
+    # Reference https://gitlab.com/gromacs/gromacs/-/issues/2896 for additional discussion.
     # Currently, CMake should be run by scikit-build through setup.py for proper Python packaging.
     # We don't want to install by default in the outer scope of the GROMACS
     # CMake procedure because we could end up trying to install to a system directory
@@ -176,7 +176,7 @@ else()
     # source distribution archive to be installed in the GROMACS installation
     # destination. We can use the build directory as the working directory for
     # easier clean-up, as well.
-    # TODO: (ref issue #2896) Build and install 'sdist' with GROMACS.
+    # TODO: (ref Issue #2896) Build and install 'sdist' with GROMACS.
 
     # However, we can still produce an importable package for documentation builds and
     # basic testing in ${CMAKE_CURRENT_BINARY_DIR}/gmxapi_staging
index c6237056baa24166eee572744ed5b0c22f48c946..f7a2d1a430bb49d3aa5b35e6df019e468d0067f4 100644 (file)
@@ -529,7 +529,7 @@ protected:
                     call.args_convert.push_back(arg_rec ? arg_rec->convert : true);
                 }
                 if (bad_arg)
-                    continue; // Maybe it was meant for another overload (issue #688)
+                    continue; // Maybe it was meant for another overload (Issue #688)
 
                 // We'll need to copy this if we steal some kwargs for defaults
                 dict kwargs = reinterpret_borrow<dict>(kwargs_in);
@@ -1798,7 +1798,7 @@ public:
 NAMESPACE_BEGIN(detail)
 // Returns a reference to a function-local static exception object used in the simple
 // register_exception approach below.  (It would be simpler to have the static local variable
-// directly in register_exception, but that makes clang <3.5 segfault - issue #1349).
+// directly in register_exception, but that makes clang <3.5 segfault - Issue #1349).
 template <typename CppException>
 exception<CppException> &get_exception_object() { static exception<CppException> ex; return ex; }
 NAMESPACE_END(detail)
index b991398ea7dac4ae286367ea77fdbe46fb922c67..f618f052b7892a6de044ab9025401ac85069d658 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2019, by the GROMACS development team, led by
+ * Copyright (c) 2019,2020, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -65,7 +65,7 @@ namespace py = pybind11;
  * Note that the current library infrastructure does not provide a way for the
  * simulation machinery to express human-readable parameter names with rich
  * descriptions, so a few of the most necessary mdrun command line parameters
- * are hard coded here. Ref. https://redmine.gromacs.org/issues/2877
+ * are hard coded here. Ref. https://gitlab.com/gromacs/gromacs/-/issues/2877
  *
  * For reference and default values, see
  * http://manual.gromacs.org/current/onlinehelp/gmx-mdrun.html#options
index 85387acd875ecfb853313fde4d246d727cb3b32c..9a80297e459928f0db126b11b671282e37c6fd65 100644 (file)
@@ -84,7 +84,7 @@ void detail::export_tprfile(pybind11::module& module)
                              // Less trivial types (strings, maps, arrays) warrant additional
                              // design discussion before being exposed through an interface
                              // like this one.
-                             // Also reference https://redmine.gromacs.org/issues/2993
+                             // Also reference https://gitlab.com/gromacs/gromacs/-/issues/2993
 
                              // We can use templates and/or tag dispatch in a more complete
                              // future implementation.
index 552ea5af96dae24c1e9d79d8549117372db80eb8..3d2465d0272dcfd6afb95d65ed7873509157e53e 100644 (file)
@@ -97,7 +97,7 @@ _named_features_0_1 = []
 # Bugs and bug fixes may be indicated with names consisting of tracked issue URLs.
 #
 # Features consisting of 'fr' and a numeric suffix are the functional requirements
-# described in roadmap.rst, as described at https://redmine.gromacs.org/issues/2893
+# described in roadmap.rst, as described at https://gitlab.com/gromacs/gromacs/-/issues/2893
 #
 # fr1: wrap importable Python code.
 # fr2: output proxy establishes execution dependency (superseded by fr3)
index 0d5f7c8463f296c3d104951037f517cd1cbb6ed2..de7a33f8f782d4adee9005264757038ed67e11cd 100644 (file)
@@ -1,7 +1,7 @@
 #
 # This file is part of the GROMACS molecular simulation package.
 #
-# Copyright (c) 2019, by the GROMACS development team, led by
+# Copyright (c) 2019,2020, by the GROMACS development team, led by
 # Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
 # and including many others, as listed in the AUTHORS file in the
 # top-level source directory and at http://www.gromacs.org.
@@ -39,7 +39,7 @@ import pytest
 import gmxapi as gmx
 from gmxapi.version import has_feature
 
-# Ref https://redmine.gromacs.org/issues/3192
+# Ref https://gitlab.com/gromacs/gromacs/-/issues/3192
 @pytest.mark.skipif(not has_feature('fr8'),
                    reason="Feature level not met.")
 def test_fr8(spc_water_box):
index 007b57acda9154e630a58e5e43178ddf7fee7b40..484858175f16538f9f9c2a0c51d5837d069d0626 100644 (file)
@@ -1,7 +1,7 @@
 ; original reference: [M. W. Mahoney and W. L. Jorgensen, J. Chem. Phys. 112 , 2000]
 ;
 ; Note that there are various issues with tip5p and the different forcefields.
-; Discussion is here: http://redmine.gromacs.org/issues/1348
+; Discussion is here: https://gitlab.com/gromacs/gromacs/-/issues/1348
 
 [ moleculetype ]
 ; molname      nrexcl
index 7e4956a7e9a47dd4fafbf390fb65446eade24058..f2199278ecffd9621614f71a4814f3a89e40b82d 100644 (file)
@@ -1,6 +1,6 @@
 tip3p    TIP3P     TIP 3-point, recommended
 tip4p    TIP4P     TIP 4-point
 tip4pew  TIP4P-Ew  TIP 4-point optimized with Ewald
-tip5p    TIP5P     TIP 5-point (see http://redmine.gromacs.org/issues/1348 for issues)
+tip5p    TIP5P     TIP 5-point (see https://gitlab.com/gromacs/gromacs/-/issues/1348 for issues)
 spc      SPC       simple point charge
 spce     SPC/E     extended simple point charge
index 007b57acda9154e630a58e5e43178ddf7fee7b40..484858175f16538f9f9c2a0c51d5837d069d0626 100644 (file)
@@ -1,7 +1,7 @@
 ; original reference: [M. W. Mahoney and W. L. Jorgensen, J. Chem. Phys. 112 , 2000]
 ;
 ; Note that there are various issues with tip5p and the different forcefields.
-; Discussion is here: http://redmine.gromacs.org/issues/1348
+; Discussion is here: https://gitlab.com/gromacs/gromacs/-/issues/1348
 
 [ moleculetype ]
 ; molname      nrexcl
index 7e4956a7e9a47dd4fafbf390fb65446eade24058..f2199278ecffd9621614f71a4814f3a89e40b82d 100644 (file)
@@ -1,6 +1,6 @@
 tip3p    TIP3P     TIP 3-point, recommended
 tip4p    TIP4P     TIP 4-point
 tip4pew  TIP4P-Ew  TIP 4-point optimized with Ewald
-tip5p    TIP5P     TIP 5-point (see http://redmine.gromacs.org/issues/1348 for issues)
+tip5p    TIP5P     TIP 5-point (see https://gitlab.com/gromacs/gromacs/-/issues/1348 for issues)
 spc      SPC       simple point charge
 spce     SPC/E     extended simple point charge
index 007b57acda9154e630a58e5e43178ddf7fee7b40..484858175f16538f9f9c2a0c51d5837d069d0626 100644 (file)
@@ -1,7 +1,7 @@
 ; original reference: [M. W. Mahoney and W. L. Jorgensen, J. Chem. Phys. 112 , 2000]
 ;
 ; Note that there are various issues with tip5p and the different forcefields.
-; Discussion is here: http://redmine.gromacs.org/issues/1348
+; Discussion is here: https://gitlab.com/gromacs/gromacs/-/issues/1348
 
 [ moleculetype ]
 ; molname      nrexcl
index 7e4956a7e9a47dd4fafbf390fb65446eade24058..f2199278ecffd9621614f71a4814f3a89e40b82d 100644 (file)
@@ -1,6 +1,6 @@
 tip3p    TIP3P     TIP 3-point, recommended
 tip4p    TIP4P     TIP 4-point
 tip4pew  TIP4P-Ew  TIP 4-point optimized with Ewald
-tip5p    TIP5P     TIP 5-point (see http://redmine.gromacs.org/issues/1348 for issues)
+tip5p    TIP5P     TIP 5-point (see https://gitlab.com/gromacs/gromacs/-/issues/1348 for issues)
 spc      SPC       simple point charge
 spce     SPC/E     extended simple point charge
index 007b57acda9154e630a58e5e43178ddf7fee7b40..484858175f16538f9f9c2a0c51d5837d069d0626 100644 (file)
@@ -1,7 +1,7 @@
 ; original reference: [M. W. Mahoney and W. L. Jorgensen, J. Chem. Phys. 112 , 2000]
 ;
 ; Note that there are various issues with tip5p and the different forcefields.
-; Discussion is here: http://redmine.gromacs.org/issues/1348
+; Discussion is here: https://gitlab.com/gromacs/gromacs/-/issues/1348
 
 [ moleculetype ]
 ; molname      nrexcl
index 7e4956a7e9a47dd4fafbf390fb65446eade24058..f2199278ecffd9621614f71a4814f3a89e40b82d 100644 (file)
@@ -1,6 +1,6 @@
 tip3p    TIP3P     TIP 3-point, recommended
 tip4p    TIP4P     TIP 4-point
 tip4pew  TIP4P-Ew  TIP 4-point optimized with Ewald
-tip5p    TIP5P     TIP 5-point (see http://redmine.gromacs.org/issues/1348 for issues)
+tip5p    TIP5P     TIP 5-point (see https://gitlab.com/gromacs/gromacs/-/issues/1348 for issues)
 spc      SPC       simple point charge
 spce     SPC/E     extended simple point charge
index 007b57acda9154e630a58e5e43178ddf7fee7b40..484858175f16538f9f9c2a0c51d5837d069d0626 100644 (file)
@@ -1,7 +1,7 @@
 ; original reference: [M. W. Mahoney and W. L. Jorgensen, J. Chem. Phys. 112 , 2000]
 ;
 ; Note that there are various issues with tip5p and the different forcefields.
-; Discussion is here: http://redmine.gromacs.org/issues/1348
+; Discussion is here: https://gitlab.com/gromacs/gromacs/-/issues/1348
 
 [ moleculetype ]
 ; molname      nrexcl
index 7e4956a7e9a47dd4fafbf390fb65446eade24058..f2199278ecffd9621614f71a4814f3a89e40b82d 100644 (file)
@@ -1,6 +1,6 @@
 tip3p    TIP3P     TIP 3-point, recommended
 tip4p    TIP4P     TIP 4-point
 tip4pew  TIP4P-Ew  TIP 4-point optimized with Ewald
-tip5p    TIP5P     TIP 5-point (see http://redmine.gromacs.org/issues/1348 for issues)
+tip5p    TIP5P     TIP 5-point (see https://gitlab.com/gromacs/gromacs/-/issues/1348 for issues)
 spc      SPC       simple point charge
 spce     SPC/E     extended simple point charge
index 007b57acda9154e630a58e5e43178ddf7fee7b40..484858175f16538f9f9c2a0c51d5837d069d0626 100644 (file)
@@ -1,7 +1,7 @@
 ; original reference: [M. W. Mahoney and W. L. Jorgensen, J. Chem. Phys. 112 , 2000]
 ;
 ; Note that there are various issues with tip5p and the different forcefields.
-; Discussion is here: http://redmine.gromacs.org/issues/1348
+; Discussion is here: https://gitlab.com/gromacs/gromacs/-/issues/1348
 
 [ moleculetype ]
 ; molname      nrexcl
index fa5b9442f647acf64c00e4bdcfdbe5a8062f0920..fa85cbaa8bea82fd64ae900b99675ddb57bc4e78 100644 (file)
@@ -1,6 +1,6 @@
 tip3p    TIP3P     TIP 3-point, recommended
 tip4p    TIP4P     TIP 4-point
 tip4pew  TIP4P-Ew  TIP 4-point optimized with Ewald, recommended 
-tip5p    TIP5P     TIP 5-point (see http://redmine.gromacs.org/issues/1348 for issues)
+tip5p    TIP5P     TIP 5-point (see https://gitlab.com/gromacs/gromacs/-/issues/1348 for issues)
 spc      SPC       simple point charge
 spce     SPC/E     extended simple point charge
index 007b57acda9154e630a58e5e43178ddf7fee7b40..484858175f16538f9f9c2a0c51d5837d069d0626 100644 (file)
@@ -1,7 +1,7 @@
 ; original reference: [M. W. Mahoney and W. L. Jorgensen, J. Chem. Phys. 112 , 2000]
 ;
 ; Note that there are various issues with tip5p and the different forcefields.
-; Discussion is here: http://redmine.gromacs.org/issues/1348
+; Discussion is here: https://gitlab.com/gromacs/gromacs/-/issues/1348
 
 [ moleculetype ]
 ; molname      nrexcl
index 7e4956a7e9a47dd4fafbf390fb65446eade24058..f2199278ecffd9621614f71a4814f3a89e40b82d 100644 (file)
@@ -1,6 +1,6 @@
 tip3p    TIP3P     TIP 3-point, recommended
 tip4p    TIP4P     TIP 4-point
 tip4pew  TIP4P-Ew  TIP 4-point optimized with Ewald
-tip5p    TIP5P     TIP 5-point (see http://redmine.gromacs.org/issues/1348 for issues)
+tip5p    TIP5P     TIP 5-point (see https://gitlab.com/gromacs/gromacs/-/issues/1348 for issues)
 spc      SPC       simple point charge
 spce     SPC/E     extended simple point charge
index d13477c90f5eeac1c0efa5061a58f832d2827c48..478a7e9ae1574620452ab02b2ebfa89a7d2b889b 100644 (file)
@@ -1,7 +1,7 @@
 ; original reference: [M. W. Mahoney and W. L. Jorgensen, J. Chem. Phys. 112 , 2000]
 ;
 ; Note that there are various issues with tip5p and the different forcefields.
-; Discussion is here: http://redmine.gromacs.org/issues/1348
+; Discussion is here: https://gitlab.com/gromacs/gromacs/-/issues/1348
 
 [ moleculetype ]
 ; molname      nrexcl
index f05e8ecf8c913428d5972fd09e99fa1a94db8085..6a58a6dff12968d28de62f52edf208441c46fa3a 100644 (file)
@@ -1,6 +1,6 @@
 tip3p   TIP3P   TIP 3-point, recommended
 tip4p   TIP4P   TIP 4-point
 tips3p  TIPS3P  CHARMM TIP 3-point with LJ on H's
-tip5p   TIP5P   TIP 5-point (see http://redmine.gromacs.org/issues/1348 for issues)
+tip5p   TIP5P   TIP 5-point (see https://gitlab.com/gromacs/gromacs/-/issues/1348 for issues)
 spc     SPC     simple point charge
 spce    SPC/E   extended simple point charge
index 22418b5f6239700d09341a9e36c86493c1569aad..e59bf5691a0a21bcbce5b359f9a876a6541c5aa8 100644 (file)
@@ -1,7 +1,7 @@
 ; original reference: [M. W. Mahoney and W. L. Jorgensen, J. Chem. Phys. 112 , 2000]
 ;
 ; Note that there are various issues with tip5p and the different forcefields.
-; Discussion is here: http://redmine.gromacs.org/issues/1348
+; Discussion is here: https://gitlab.com/gromacs/gromacs/-/issues/1348
 
 [ moleculetype ]
 ; molname       nrexcl
index a4764133340099a992a301ca7e9fbffa07761f44..3972fa2a4bd3c5b6f2c54c66274b9029ea66bb13 100644 (file)
@@ -1,7 +1,7 @@
 tip4p   TIP4P  TIP 4-point, recommended
 tip4pew TIP4PEW TIP 4-point with Ewald
 tip3p   TIP3P  TIP 3-point
-tip5p   TIP5P  TIP 5-point (see http://redmine.gromacs.org/issues/1348 for issues)
+tip5p   TIP5P  TIP 5-point (see https://gitlab.com/gromacs/gromacs/-/issues/1348 for issues)
 tip5pe  TIP5P  TIP 5-point improved for Ewald sums
 spc     SPC    simple point charge
 spce    SPC/E  extended simple point charge
index 8b824e0461868b030976a714da3678a80181cbfb..453c145b720f0f429f09013b816c10059d79915e 100644 (file)
@@ -43,7 +43,7 @@
 # to establish compatibility guarantees consistent with semantic versioning.
 # (https://semver.org). When the API is deemed suitably stable, gmxapi 1.0 should
 # be tagged. Official GROMACS releases should be mappable to a distinct gmxapi
-# release string. For roadmap details, see https://redmine.gromacs.org/issues/2585
+# release string. For roadmap details, see https://gitlab.com/gromacs/gromacs/-/issues/2585
 set(GMXAPI_MAJOR 0)
 set(GMXAPI_MINOR 1)
 set(GMXAPI_PATCH 0)
index ad3de9be6b07f817c92c624a147c31351cb608a3..4d642591b25176e3ddc5b7d51499904013eb9050 100644 (file)
@@ -132,7 +132,7 @@ std::shared_ptr<Session> ContextImpl::launch(const Workflow& work)
          * process starts and instead manage files (paths) in an absolute and
          * immutable way, with abstraction provided through the Context chain-of-responsibility.
          * TODO: API abstractions for initializing simulations that may be new or partially
-         * complete. Reference gmxapi milestone 13 at https://redmine.gromacs.org/issues/2585
+         * complete. Reference gmxapi milestone 13 at https://gitlab.com/gromacs/gromacs/-/issues/2585
          */
 
         // Create a mock argv. Note that argv[0] is expected to hold the program name.
index 4e4bc2752d7d8bc7876a5f657ddb3599332fbb35..5331146922220f457997d42e6f329f6257f31a04 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2018,2019, by the GROMACS development team, led by
+ * Copyright (c) 2018,2019,2020, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -509,7 +509,7 @@ private:
  * e.g. MPI, Python, numpy, GROMACS, JSON, etc.
  * \todo Actually check the size of the types.
  *
- * \see https://redmine.gromacs.org/issues/2993 for discussion.
+ * \see https://gitlab.com/gromacs/gromacs/-/issues/2993 for discussion.
  */
 enum class GmxapiType
 {
index 000d3430c1c8d7d000d963c52f0390221aa87d3b..f9918294493b2e729a108b8cd3d7c6848e876ccb 100644 (file)
@@ -61,7 +61,7 @@ if(NOT GMX_USE_OPENCL)
     # GPU resources may not be properly reinitialized between simulations in
     # the same process.
     # TODO: include this with the other test sources once the issue is resolved
-    # Ref https://redmine.gromacs.org/issues/2689
+    # Ref https://gitlab.com/gromacs/gromacs/-/issues/2689
     target_sources(gmxapi-test PRIVATE runner.cpp stopsignaler.cpp)
 endif()
 
@@ -93,7 +93,7 @@ if(NOT GMX_USE_OPENCL)
     # GPU resources may not be properly reinitialized between simulations in
     # the same process.
     # TODO: include this with the other test sources once the issue is resolved
-    # Ref https://redmine.gromacs.org/issues/2689
+    # Ref https://gitlab.com/gromacs/gromacs/-/issues/2689
     target_sources(gmxapi-mpi-test PRIVATE runner.cpp stopsignaler.cpp)
 endif()
 
index d37e6b6f7bcac7c91cfa181376ca4dff3f5f4f82..e35e3c0ea48698bc20a3ff32188dd473081ebd28 100644 (file)
@@ -68,7 +68,7 @@ NodeSpecification::paramsType MDNodeSpecification::params() const noexcept
 NodeKey Workflow::addNode(std::unique_ptr<NodeSpecification> spec)
 {
     // TODO capture provided NodeSpecification.
-    // Relates to gmxapi milestone 7, described at https://redmine.gromacs.org/issues/2585
+    // Relates to gmxapi milestone 7, described at https://gitlab.com/gromacs/gromacs/-/issues/2585
     throw gmxapi::NotImplementedError("Member function not yet implemented or used.");
     (void)spec;
     return {};
index 04876ca36056cc9505fbdf6cfa5abe42d9122a98..70ac5ac20a619eb8c8645930afaa909fe20dc2c0 100644 (file)
@@ -61,7 +61,7 @@ function (gmx_add_libgromacs_sources)
 endfunction ()
 
 # TODO Reconsider this, as the CUDA driver API is probably a simpler
-# approach, at least for the build system. See Redmine #2530
+# approach, at least for the build system. See Issue #2530
 function (gmx_compile_cpp_as_cuda)
     _gmx_add_files_to_property(GMX_LIBGROMACS_GPU_IMPL_SOURCES ${ARGN})
 endfunction ()
index 6c241f3fd52bf69d9cdd9260326089d8415d4302..0eebc6c0e4d3868e605a010b95e7792a4fcbdfd4 100644 (file)
@@ -269,7 +269,7 @@ void GpuHaloExchange::Impl::communicateHaloForces(bool accumulateForces)
         // ensure non-local stream waits for local stream, due to dependence on
         // the previous H2D copy of CPU forces (if accumulateForces is true)
         // or the above clearing.
-        // TODO remove this dependency on localStream - edmine issue #3093
+        // TODO remove this dependency on localStream - edmine Issue #3093
         GpuEventSynchronizer eventLocal;
         eventLocal.markEvent(localStream_);
         eventLocal.enqueueWaitEvent(nonLocalStream_);
index 59aa7c604d5eb8e26d801326dde106bc55eda910..11fe0873893f49c4aced6c073d81827cdbbfa297 100644 (file)
@@ -134,7 +134,7 @@ bool gmx_pme_check_restrictions(int  pme_order,
  * \todo We should evolve something like a \c GpuManager that holds \c
  * DeviceInformation* and \c PmeGpuProgram* and perhaps other
  * related things whose lifetime can/should exceed that of a task (or
- * perhaps task manager). See Redmine #2522.
+ * perhaps task manager). See Issue #2522.
  */
 gmx_pme_t* gmx_pme_init(const t_commrec*     cr,
                         const NumPmeDomains& numPmeDomains,
index f3f521d08841faeca4ff39a94123c57c3b78833b..5bfe1c3ddef33bc72622e297d4505cbeb56a94b3 100644 (file)
@@ -42,7 +42,7 @@
  *
  * \todo The values are currently common to both CUDA and OpenCL
  * implementations, but should be reconsidered when we tune the OpenCL
- * implementation. See Redmine #2528.
+ * implementation. See Issue #2528.
  *
  * \author Aleksei Iupinov <a.yupinov@gmail.com>
  * \ingroup module_ewald
@@ -111,13 +111,13 @@ constexpr int c_pmeGpuOrder = 4;
 /*! \brief The number of GPU threads used for computing spread/gather
  * contributions of a single atom, which relates to the PME order.
  *
- * TODO: this assumption leads to minimum execution width of 16. See Redmine #2516
+ * TODO: this assumption leads to minimum execution width of 16. See Issue #2516
  */
 enum class ThreadsPerAtom : int
 {
     /*! \brief Use a number of threads equal to the PME order (ie. 4)
      *
-     * Only CUDA implements this. See Redmine #2516 */
+     * Only CUDA implements this. See Issue #2516 */
     Order,
     //! Use a number of threads equal to the square of the PME order (ie. 16)
     OrderSquared,
@@ -128,7 +128,7 @@ enum class ThreadsPerAtom : int
 /*
  * The execution widths for PME GPU kernels, used both on host and device for correct scheduling.
  * TODO: those were tuned for CUDA with assumption of warp size 32; specialize those for OpenCL
- * (Redmine #2528).
+ * (Issue #2528).
  * As noted below, these are very approximate maximum sizes; in run time we might have to use
  * smaller block/workgroup sizes, depending on device capabilities.
  */
index f1b9559d80642ac01264a8a8f1f45ce968d5c2fb..0a7cc1a5c5d99eafe27bca4de67ecedf3e42cf4e 100644 (file)
@@ -69,7 +69,7 @@ struct DeviceInformation;
  * This also doesn't manage cuFFT/clFFT kernels, which depend on the PME grid dimensions.
  *
  * TODO: pass cl_context to the constructor and not create it inside.
- * See also Redmine #2522.
+ * See also Issue #2522.
  */
 struct PmeGpuProgramImpl
 {
index c03802eef921fb68a661d1d4eca12a8e5de49b87..c6115e8e07ef1ca6b37ae1231e788ff1ef63ed4d 100644 (file)
@@ -908,6 +908,7 @@ static char** read_topol(const char*                           infile,
                 "algorithms "
                 "can be found at https://doi.org/10.26434/chemrxiv.11474583.v1 .");
     }
+    // TODO: Update URL for Issue #2884 in conjunction with updating grompp.warn in regressiontests.
 
     cpp_done(handle);
 
index b07b71565c64e529bc86e1efcb310457c883cceb..25847bd95744a11fba7fdcc198daf715c64da326 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2018,2019, by the GROMACS development team, led by
+ * Copyright (c) 2018,2019,2020, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -73,13 +73,13 @@ namespace gmx
  * \todo Consider making a composite object that also handles
  * on-demand compilation, managing lifetime of PME FFT kernel programs
  * to avoid exhausting resources and/or recompiling kernels previously
- * used.  See Redmine #2535.
+ * used.  See Issue #2535.
  *
  * \todo Consider implementing an appropriate flavor of the nifty
  * counter idiom so that both static initialization and
  * deinitialization can work in a fast, leak-free, and thread-safe way
  * without imposing constraints on the calling code.
- * See Redmine #2535. */
+ * See Issue #2535. */
 class ClfftInitializer
 {
 public:
index db6d0db8e3c7aa8d4f0d80c3d44183f6eff3ee4d..4cd381865e83ccdb7aa4b355b3280a5b98c7af8a 100644 (file)
@@ -59,7 +59,7 @@ namespace ocl
  *  This is platform implementation dependent and seems to only work on the Nvidia and AMD
  * platforms! Nvidia reports 32, AMD for GPU 64. Intel seems to report 16, but that is not correct,
  *  as it execution width can be between 8-32 and it's picked per-kernel at compile-time.
- *  Therefore, for Intel it should actually be queried separately for each kernel (Redmine #2520).
+ *  Therefore, for Intel it should actually be queried separately for each kernel (Issue #2520).
  *
  *  \param  context   Current OpenCL context
  *  \param  deviceId OpenCL device with the context
index 61f6ee32f0e62b6c3a90b6898752e89e374a1394..443008c374e9d76f67a9fd75c14b42a96b453a12 100644 (file)
@@ -866,7 +866,7 @@ real thole_pol(int             nbonds,
     return V;
 }
 
-// Avoid gcc 386 -O3 code generation bug in this function (see Redmine
+// Avoid gcc 386 -O3 code generation bug in this function (see Issue
 // #3205 for more information)
 #if defined(__GNUC__) && defined(__i386__) && defined(__OPTIMIZE__)
 #    pragma GCC push_options
index 6f85bd88c3fc045379c20001cce7055654232c42..e0c2fadac8b37adae2ef3a9d7b256aa7395297be 100644 (file)
@@ -36,7 +36,7 @@
 file(GLOB MATH_SOURCES *.cpp)
 set(LIBGROMACS_SOURCES ${LIBGROMACS_SOURCES} ${MATH_SOURCES} PARENT_SCOPE)
 
-# TODO: (https://redmine.gromacs.org/issues/988) Find a new convention for defining public API.
+# TODO: (https://gitlab.com/gromacs/gromacs/-/issues/988) Find a new convention for defining public API.
 install(FILES
         vectypes.h
         DESTINATION include/gromacs/math)
index e358de8cf893dcaa2f71c923085c008b86da8e02..1d6bf1ca7158e88633b58aac5cb549d5304d9b5d 100644 (file)
@@ -96,7 +96,7 @@ constexpr static int c_maxThreadsPerBlock = c_threadsPerBlock;
  *        3. Use analytical solution for matrix A inversion.
  *        4. Introduce mapping of thread id to both single constraint and single atom, thus designating
  *           Nth threads to deal with Nat <= Nth coupled atoms and Nc <= Nth coupled constraints.
- *       See Redmine issue #2885 for details (https://redmine.gromacs.org/issues/2885)
+ *       See Issue #2885 for details (https://gitlab.com/gromacs/gromacs/-/issues/2885)
  * \todo The use of __restrict__  for gm_xp and gm_v causes failure, probably because of the atomic
          operations. Investigate this issue further.
  *
index f7f39bbee79329875fdac34f78629b438f99841f..1900f4938c14cde1a393a31f2c34abe0468db67c 100644 (file)
@@ -872,7 +872,7 @@ void gmx::LegacySimulator::do_md()
                     GMX_RELEASE_ASSERT(fr->deviceStreamManager != nullptr,
                                        "GPU device manager has to be initialized to use GPU "
                                        "version of halo exchange.");
-                    // TODO remove need to pass local stream into GPU halo exchange - Redmine #3093
+                    // TODO remove need to pass local stream into GPU halo exchange - Issue #3093
                     constructGpuHaloExchange(mdlog, *cr, *fr->deviceStreamManager);
                 }
             }
@@ -1370,7 +1370,7 @@ void gmx::LegacySimulator::do_md()
             /* this factor or 2 correction is necessary
                because half of the constraint force is removed
                in the vv step, so we have to double it.  See
-               the Redmine issue #1255.  It is not yet clear
+               the Issue #1255.  It is not yet clear
                if the factor of 2 is exact, or just a very
                good approximation, and this will be
                investigated.  The next step is to see if this
index 43ac7d6164a7ddf3aef5cb1d03d089103fc4c851..8605f612edd9c48cbefdca2b21beb5cc8de4a6d0 100644 (file)
@@ -320,7 +320,7 @@ Mdrunner Mdrunner::cloneOnSpawnedThread() const
 
     // Copy members of master runner.
     // \todo Replace with builder when Simulation context and/or runner phases are better defined.
-    // Ref https://redmine.gromacs.org/issues/2587 and https://redmine.gromacs.org/issues/2375
+    // Ref https://gitlab.com/gromacs/gromacs/-/issues/2587 and https://gitlab.com/gromacs/gromacs/-/issues/2375
     newRunner.hw_opt    = hw_opt;
     newRunner.filenames = filenames;
 
index 2e4ca42e3145db57dc089babf2f1b8be17d7a92c..6833d8d231c1c84a11bc4f9d3cbf57bbd2bf06f6 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2018,2019, by the GROMACS development team, led by
+ * Copyright (c) 2018,2019,2020, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -73,8 +73,8 @@ class ArrayRef;
  * other resources to create or configure the context. The simulation may in
  * turn consume or borrow some resources from the context. This is a new
  * framework that will evolve in the contexts of
- * https://redmine.gromacs.org/issues/2375
- * https://redmine.gromacs.org/issues/2587
+ * https://gitlab.com/gromacs/gromacs/-/issues/2375
+ * https://gitlab.com/gromacs/gromacs/-/issues/2587
  *
  * The public interface of SimulationContext is not yet well-specified.
  * Client code can create an instance with gmx::createSimulationContext()
@@ -96,7 +96,7 @@ class ArrayRef;
  * Non-const accessors to shared resources need to be associated with update
  * signals that the simulation components (modules and runner) can subscribe to.
  *
- * Also reference https://redmine.gromacs.org/issues/2587
+ * Also reference https://gitlab.com/gromacs/gromacs/-/issues/2587
  */
 class SimulationContext final
 {
index a05b34d05292842b301c25907d9fcf764d6c5f60..0f00d52528004975d30bc02172d06186a158cf7c 100644 (file)
@@ -150,7 +150,7 @@ inline bool thisRankHasDuty(const t_commrec* cr, int duty)
  * This is true if havePPDomainDecomposition is true, but the converse does not
  * apply (see docs of havePpDomainDecomposition()).
  *
- * \todo As part of Redmine #2395, replace calls to this with
+ * \todo As part of Issue #2395, replace calls to this with
  * havePPDomainDecomposition or a call of some other/new function, as
  * appropriate to each case. Then eliminate this macro. */
 #define DOMAINDECOMP(cr) (((cr)->dd != nullptr) && PAR(cr))
index fcd03cd8d0868215746a5436932aebff6ab4df18..23145242adbda427650e25ebc119b4e05659cb28 100644 (file)
@@ -171,7 +171,7 @@ void ConstraintsElement<variable>::apply(Step step, bool calculateVirial, bool w
      * good approximation, statistically insignificant in any real free energy
      * calculation. Any possible error is not a simulation propagation error,
      * but a potential reporting error in the data that goes to dh/dlambda.
-     * Cf. redmine issue #1255
+     * Cf. Issue #1255
      */
     const real c_dvdlConstraintCorrectionFactor = EI_VV(inputrec_->eI) ? 2.0 : 1.0;
     energyElement_->enerdata()->term[F_DVDL_CONSTR] += c_dvdlConstraintCorrectionFactor * dvdlambda;
index e8888f65d60be87a96cfd88ee7fe8bf954307186..bd45ec5d5c4b8c61e4b40c498a21541ecd1fde0e 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2019, by the GROMACS development team, led by
+ * Copyright (c) 2019,2020, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -40,8 +40,8 @@
  *
  * \todo CPU, GPU and SIMD routines essentially do the same operations on
  *       different data-types. Currently this leads to code duplication,
- *       which has to be resolved. For details, see Redmine task #2863
- *       https://redmine.gromacs.org/issues/2863
+ *       which has to be resolved. For details, see Issue #2863
+ *       https://gitlab.com/gromacs/gromacs/-/issues/2863
  *
  * \author Mark Abraham <mark.j.abraham@gmail.com>
  * \author Berk Hess <hess@kth.se>
@@ -143,8 +143,8 @@ static inline void setPbcAiuc(int numPbcDim, const matrix box, PbcAiuc* pbcAiuc)
  * \todo This routine operates on rvec types and uses PbcAiuc to define
  *       periodic box, but essentially does the same thing as SIMD and GPU
  *       version. These will have to be unified in future to avoid code
- *       duplication. See Redmine task #2863:
- *       https://redmine.gromacs.org/issues/2863
+ *       duplication. See Issue #2863:
+ *       https://gitlab.com/gromacs/gromacs/-/issues/2863
  *
  * \param[in]  pbcAiuc  PBC object.
  * \param[in]  r1       Coordinates of the first point.
index a2308cff7d0d3e0e8b0037b0c748fd2254d07579..96661613f6765a10dfcb4f5c1541598ce21f50ee 100644 (file)
@@ -40,8 +40,8 @@
  *
  * \todo CPU, GPU and SIMD routines essentially do the same operations on
  *       different data-types. Currently this leads to code duplication,
- *       which has to be resolved. For details, see Redmine task #2863
- *       https://redmine.gromacs.org/issues/2863
+ *       which has to be resolved. For details, see Issue #2863
+ *       https://gitlab.com/gromacs/gromacs/-/issues/2863
  *
  * \author Mark Abraham <mark.j.abraham@gmail.com>
  * \author Berk Hess <hess@kth.se>
@@ -72,8 +72,8 @@
  *       the same thing as the version below, as well as SIMD and CPU
  *       versions. This routine is used in gpubonded module.
  *       To avoid code duplication, these implementations should be
- *       unified. See Redmine task #2863:
- *       https://redmine.gromacs.org/issues/2863
+ *       unified. See Issue #2863:
+ *       https://gitlab.com/gromacs/gromacs/-/issues/2863
  *
  * \param[in]  pbcAiuc  PBC object.
  * \param[in]  r1       Coordinates of the first point.
@@ -127,8 +127,8 @@ static __forceinline__ __device__ int
  *       version above, as well as SIMD and CPU versions. This routine is
  *       used in GPU-based constraints.
  *       To avoid code duplication, these implementations should be
- *       unified. See Redmine task #2863:
- *       https://redmine.gromacs.org/issues/2863
+ *       unified. See Issue #2863:
+ *       https://gitlab.com/gromacs/gromacs/-/issues/2863
  *
  * \param[in]  pbcAiuc  PBC object.
  * \param[in]  r1       Coordinates of the first point.
index 47385350fc34a05e478ea657e42a44225d5062f0..99bfd43eea74984d1d0cbdbbf774e0505559fbb7 100644 (file)
@@ -2,7 +2,7 @@
  * This file is part of the GROMACS molecular simulation package.
  *
  * Copyright (c) 2010-2018, The GROMACS development team.
- * Copyright (c) 2019, by the GROMACS development team, led by
+ * Copyright (c) 2019,2020, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -94,7 +94,7 @@
  *
  * The header path.h declares helpers for manipulating paths as strings and for
  * managing directories and files.
- * The fate of this header depends on what is decided in Redmine issue #950.
+ * The fate of this header depends on what is decided in Issue #950.
  *
  * <H3>Logging</H3>
  *
index 151cfa112c2e76aa84474d819c32999f8df6e6cc..fef7f2cb9091af653cd24ef1dd42663f6cc0a61f 100644 (file)
@@ -39,7 +39,7 @@ if (GMX_USE_CUDA)
 endif()
 set(LIBGROMACS_SOURCES ${LIBGROMACS_SOURCES} ${UTILITY_SOURCES} PARENT_SCOPE)
 
-# TODO: (https://redmine.gromacs.org/issues/988) Find a new convention for defining public API.
+# TODO: (https://gitlab.com/gromacs/gromacs/-/issues/988) Find a new convention for defining public API.
 install(FILES
         basedefinitions.h
         current_function.h
index 203d5ac971be0c3c273d3632b0cdc6cecb67840a..dea093d1cad608b63920cd8ec1eae5efd8b7630c 100644 (file)
@@ -3,7 +3,7 @@
  *
  * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
  * Copyright (c) 2001-2004, The GROMACS development team.
- * Copyright (c) 2013,2014,2015,2016,2019, by the GROMACS development team, led by
+ * Copyright (c) 2013,2014,2015,2016,2019,2020, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -53,7 +53,7 @@
  * Native Windows uses backslash path separators (but accepts also slashes).
  * Cygwin and most other systems use slash.
  *
- * \todo Get rid of this (Redmine #950). It is not necessary for
+ * \todo Get rid of this (Issue #950). It is not necessary for
  * constructing paths on the systems that it currently supports, and
  * is not reliable in parsing input paths either, since Windows needs
  * to accept both instead of only DIR_SEPARATOR. At the very least, we
index 9ddd438cf3561b1e9f92acad92368d593b9376fd..ae729fc9bb3bd6e0b234521c737a7a32ef7651c9 100644 (file)
@@ -115,7 +115,7 @@ SimulationRunner::SimulationRunner(TestFileManager* fileManager) :
 // things that way, this function should be renamed. For now,
 // we use the Verlet scheme and hard-code a tolerance.
 // TODO There is possible outstanding unexplained behaviour of mdp
-// input parsing e.g. Redmine 2074, so this particular set of mdp
+// input parsing e.g. Issue #2074, so this particular set of mdp
 // contents is also tested with GetIrTest in gmxpreprocess-test.
 void SimulationRunner::useEmptyMdpFile()
 {
index 5a05cd04f27abc7e63ab602494b7fa21567875ef..15fc819e7d47bd4722373cd2f795792df8b1a673 100644 (file)
@@ -74,7 +74,7 @@ namespace
  * needed/useful.
  *
  * We should also not compare pressure, because with constraints the
- * non-search steps need a much larger tolerance, and per Redmine 1868
+ * non-search steps need a much larger tolerance, and per Issue #1868
  * we should stop computing pressure in reruns anyway.
  *
  * Similarly, per 1868, in the present implementation the kinetic
index beb6d33bd80a95b989b7fe4ec9fb94246c0ba430..105baba9107d215a03b8eb6ff0c356c91254f1a8 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2016,2017,2018,2019, by the GROMACS development team, led by
+ * Copyright (c) 2016,2017,2018,2019,2020, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -228,7 +228,7 @@ TEST_F(MdrunTerminationTest, CheckpointRestartWithNoAppendWorksAndCannotLaterApp
         fourthPart.append("mdrun");
         fourthPart.addOption("-cpi", runner_.cptFileName_);
         fourthPart.addOption("-cpo", runner_.cptFileName_);
-        // TODO this is necessary, but ought not be. Is this the issue in Redmine #2804?
+        // TODO this is necessary, but ought not be. Is this the issue in Issue #2804?
         fourthPart.append("-noappend");
         runner_.edrFileName_ = fileManager_.getTemporaryFilePath(".part0004.edr");
         runner_.logFileName_ = fileManager_.getTemporaryFilePath(".part0004.log");
@@ -247,7 +247,7 @@ TEST_F(MdrunTerminationTest, CheckpointRestartWithNoAppendWorksAndCannotLaterApp
         fifthPart.append("mdrun");
         fifthPart.addOption("-cpi", runner_.cptFileName_);
         fifthPart.addOption("-cpo", runner_.cptFileName_);
-        // TODO this is necessary, but ought not be. Is this the issue in Redmine #2804?
+        // TODO this is necessary, but ought not be. Is this the issue in Issue #2804?
         fifthPart.append("-noappend");
         runner_.edrFileName_ = fileManager_.getTemporaryFilePath(".part0005.edr");
         runner_.logFileName_ = fileManager_.getTemporaryFilePath(".part0005.log");
index 28b0a3f77d1f5a07a0dd82f1ec431e023f7513c8..e16a99e8a155e797cd473e4af211cea805a474f5 100644 (file)
@@ -3,7 +3,7 @@
 ; original reference: [M. W. Mahoney and W. L. Jorgensen, J. Chem. Phys. 112 , 2000]
 ;
 ; Note that there are various issues with tip5p and the different forcefields.
-; Discussion is here: http://redmine.gromacs.org/issues/1348
+; Discussion is here: https://gitlab.com/gromacs/gromacs/-/issues/1348
 
 [ moleculetype ]
 ; molname       nrexcl
index 3336622882c601c24177c589e609a664ffb06774..051d6d9686582db13cace85523c1f28aab9eb801 100644 (file)
@@ -40,10 +40,10 @@ option(REGRESSIONTEST_DOWNLOAD
 
 if(REGRESSIONTEST_DOWNLOAD)
     if (NOT SOURCE_IS_SOURCE_DISTRIBUTION)
-        set(REGRESSIONTEST_URL http://gerrit.gromacs.org/snapshot/${REGRESSIONTEST_BRANCH})
+        set(REGRESSIONTEST_URL https://gitlab.com/gromacs/gromacs-regressiontests/-/archive/${REGRESSIONTEST_BRANCH}/gromacs-regressiontests-${REGRESSIONTEST_BRANCH}.tar.gz)
         # REGRESSIONTEST_PATH for dev trees is set later based on the dirname found in the tar
     else()
-        set(REGRESSIONTEST_URL http://gerrit.gromacs.org/download/regressiontests-${REGRESSIONTEST_VERSION}.tar.gz)
+        set(REGRESSIONTEST_URL http://ftp.gromacs.org/regressiontests/regressiontests-${REGRESSIONTEST_VERSION}.tar.gz)
         set(REGRESSIONTEST_PATH
             "${CMAKE_CURRENT_BINARY_DIR}/regressiontests-${REGRESSIONTEST_VERSION}"
             CACHE PATH "Path to auto-downloaded regressiontests" FORCE)