From e4c9cecb58192c12e330e41213947d8dbf6a0268 Mon Sep 17 00:00:00 2001 From: "M. Eric Irrgang" Date: Fri, 3 Apr 2020 10:07:34 +0000 Subject: [PATCH] Prune change-management.rst and update links. 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. --- CMakeLists.txt | 4 +- admin/builds/clang-analyzer.py | 59 - admin/builds/clang-format-update.py | 56 - admin/builds/clang-format.py | 80 - admin/builds/coverage.py | 65 - admin/builds/documentation.py | 160 -- admin/builds/get-version-info.py | 41 - admin/builds/gpubufferops-matrix.txt | 38 - admin/builds/gpucomm-matrix.txt | 46 - admin/builds/gpuupdate-matrix.txt | 24 - admin/builds/gromacs.py | 300 ---- admin/builds/nightly-matrix.txt | 38 - admin/builds/post-submit-matrix.txt | 79 - admin/builds/pre-submit-matrix.txt | 88 - admin/builds/regressiontests-update.py | 63 - admin/builds/release-matrix.txt | 49 - admin/builds/source-package.py | 65 - admin/builds/uncrustify.py | 80 - admin/builds/update-regtest-hash.py | 57 - admin/clang-format.sh | 4 +- admin/copyright.sh | 4 +- admin/git-pre-commit | 7 +- admin/uncrustify.cfg | 1586 ----------------- admin/uncrustify.sh | 244 --- cmake/gmxGenerateVersionInfo.cmake | 6 +- cmake/gmxManageLinearAlgebraLibraries.cmake | 4 +- cmake/gmxManageNvccConfig.cmake | 2 +- cmake/gmxManageSimd.cmake | 2 +- cmake/gmxVersionInfo.cmake | 2 +- docs/conf.cmakein.py | 5 +- docs/dev-manual/change-management.rst | 509 +----- docs/dev-manual/code-formatting.rst | 2 +- docs/dev-manual/commitstyle.rst | 4 +- docs/dev-manual/contribute.rst | 8 +- docs/dev-manual/gitlab.rst | 4 - docs/dev-manual/language-features.rst | 2 +- docs/dev-manual/reportstyle.rst | 12 +- docs/dev-manual/style.rst | 2 +- docs/dev-manual/tools.rst | 13 +- docs/doxygen/suppressions.txt | 2 +- docs/gmxapi/reference/datamodel.rst | 2 +- docs/gmxapi/userguide/install.rst | 2 +- docs/gmxapi/userguide/usage.rst | 4 +- docs/gmxapi/userguide/userguide.rst | 2 +- docs/reference-manual/preface.rst | 2 +- docs/release-notes/2016/major/bugs-fixed.rst | 2 +- .../2018/major/miscellaneous.rst | 2 +- docs/release-notes/2019/2019.2.rst | 2 +- docs/release-notes/2019/2019.3.rst | 2 +- docs/release-notes/2019/2019.4.rst | 2 +- docs/release-notes/2019/2019.5.rst | 2 +- docs/release-notes/2019/2019.6.rst | 2 +- docs/release-notes/2020/2020.1.rst | 2 +- docs/release-notes/2020/2020.2.rst | 2 +- docs/release-notes/2020/major/bugs-fixed.rst | 2 +- .../2020/major/deprecated-functionality.rst | 2 +- docs/release-notes/2020/major/features.rst | 2 +- docs/release-notes/2020/major/highlights.rst | 2 +- .../2020/major/miscellaneous.rst | 2 +- docs/release-notes/2020/major/performance.rst | 2 +- docs/release-notes/2020/major/portability.rst | 2 +- .../2020/major/removed-functionality.rst | 2 +- docs/release-notes/2020/major/tools.rst | 2 +- docs/release-notes/2021/major/bugs-fixed.rst | 2 +- .../2021/major/deprecated-functionality.rst | 2 +- docs/release-notes/2021/major/features.rst | 2 +- docs/release-notes/2021/major/highlights.rst | 2 +- .../2021/major/miscellaneous.rst | 2 +- docs/release-notes/2021/major/performance.rst | 2 +- docs/release-notes/2021/major/portability.rst | 2 +- .../2021/major/removed-functionality.rst | 2 +- docs/release-notes/2021/major/tools.rst | 2 +- docs/release-notes/index.rst | 2 +- docs/release-notes/older/index.rst | 2 +- python_packaging/README.md | 8 +- python_packaging/docker/README.md | 4 +- python_packaging/docker/ci.dockerfile | 2 +- .../sample_restraint/CMakeLists.txt | 2 +- python_packaging/sample_restraint/README.md | 6 +- .../sample_restraint/tests/CMakeLists.txt | 2 +- python_packaging/src/CMakeLists.txt | 10 +- .../pybind/include/pybind11/pybind11.h | 4 +- .../src/gmxapi/export_context.cpp | 4 +- .../src/gmxapi/export_tprfile.cpp | 2 +- python_packaging/src/gmxapi/version.py | 2 +- python_packaging/test/test_fr08.py | 4 +- share/top/amber03.ff/tip5p.itp | 2 +- share/top/amber03.ff/watermodels.dat | 2 +- share/top/amber94.ff/tip5p.itp | 2 +- share/top/amber94.ff/watermodels.dat | 2 +- share/top/amber96.ff/tip5p.itp | 2 +- share/top/amber96.ff/watermodels.dat | 2 +- share/top/amber99.ff/tip5p.itp | 2 +- share/top/amber99.ff/watermodels.dat | 2 +- share/top/amber99sb-ildn.ff/tip5p.itp | 2 +- share/top/amber99sb-ildn.ff/watermodels.dat | 2 +- share/top/amber99sb.ff/tip5p.itp | 2 +- share/top/amber99sb.ff/watermodels.dat | 2 +- share/top/amberGS.ff/tip5p.itp | 2 +- share/top/amberGS.ff/watermodels.dat | 2 +- share/top/charmm27.ff/tip5p.itp | 2 +- share/top/charmm27.ff/watermodels.dat | 2 +- share/top/oplsaa.ff/tip5p.itp | 2 +- share/top/oplsaa.ff/watermodels.dat | 2 +- src/api/CMakeLists.txt | 2 +- src/api/cpp/context.cpp | 2 +- src/api/cpp/include/gmxapi/gmxapi.h | 4 +- src/api/cpp/tests/CMakeLists.txt | 4 +- src/api/cpp/workflow.cpp | 2 +- src/gromacs/CMakeLists.txt | 2 +- src/gromacs/domdec/gpuhaloexchange_impl.cu | 2 +- src/gromacs/ewald/pme.h | 2 +- src/gromacs/ewald/pme_gpu_constants.h | 8 +- src/gromacs/ewald/pme_gpu_program_impl.h | 2 +- src/gromacs/gmxpreprocess/topio.cpp | 1 + src/gromacs/gpu_utils/clfftinitializer.h | 6 +- src/gromacs/gpu_utils/ocl_compiler.h | 2 +- src/gromacs/listed_forces/bonded.cpp | 2 +- src/gromacs/math/CMakeLists.txt | 2 +- src/gromacs/mdlib/lincs_gpu.cu | 2 +- src/gromacs/mdrun/md.cpp | 4 +- src/gromacs/mdrun/runner.cpp | 2 +- src/gromacs/mdrun/simulationcontext.h | 8 +- src/gromacs/mdtypes/commrec.h | 2 +- .../modularsimulator/constraintelement.cpp | 2 +- src/gromacs/pbcutil/pbc_aiuc.h | 10 +- src/gromacs/pbcutil/pbc_aiuc_cuda.cuh | 12 +- src/gromacs/utility.h | 4 +- src/gromacs/utility/CMakeLists.txt | 2 +- src/gromacs/utility/dir_separator.h | 4 +- src/programs/mdrun/tests/moduletest.cpp | 2 +- src/programs/mdrun/tests/rerun.cpp | 2 +- src/programs/mdrun/tests/termination.cpp | 6 +- .../simulationdatabase/one-tip5p.top | 2 +- tests/CMakeLists.txt | 4 +- 135 files changed, 192 insertions(+), 3891 deletions(-) delete mode 100644 admin/builds/clang-analyzer.py delete mode 100644 admin/builds/clang-format-update.py delete mode 100644 admin/builds/clang-format.py delete mode 100644 admin/builds/coverage.py delete mode 100644 admin/builds/documentation.py delete mode 100644 admin/builds/get-version-info.py delete mode 100644 admin/builds/gpubufferops-matrix.txt delete mode 100644 admin/builds/gpucomm-matrix.txt delete mode 100644 admin/builds/gpuupdate-matrix.txt delete mode 100644 admin/builds/gromacs.py delete mode 100644 admin/builds/nightly-matrix.txt delete mode 100644 admin/builds/post-submit-matrix.txt delete mode 100644 admin/builds/pre-submit-matrix.txt delete mode 100644 admin/builds/regressiontests-update.py delete mode 100644 admin/builds/release-matrix.txt delete mode 100644 admin/builds/source-package.py delete mode 100644 admin/builds/uncrustify.py delete mode 100644 admin/builds/update-regtest-hash.py delete mode 100644 admin/uncrustify.cfg delete mode 100755 admin/uncrustify.sh diff --git a/CMakeLists.txt b/CMakeLists.txt index 22302be17f..4c834b0b19 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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 index 1b1129ef95..0000000000 --- a/admin/builds/clang-analyzer.py +++ /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 index 237b95e664..0000000000 --- a/admin/builds/clang-format-update.py +++ /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 index 6582cd957f..0000000000 --- a/admin/builds/clang-format.py +++ /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 index 9c3b29dc7a..0000000000 --- a/admin/builds/coverage.py +++ /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 index 386f26eeaa..0000000000 --- a/admin/builds/documentation.py +++ /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 index 29af7691b3..0000000000 --- a/admin/builds/get-version-info.py +++ /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 index bab7e2af20..0000000000 --- a/admin/builds/gpubufferops-matrix.txt +++ /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 index 644334dba5..0000000000 --- a/admin/builds/gpucomm-matrix.txt +++ /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 index f31acc2e34..0000000000 --- a/admin/builds/gpuupdate-matrix.txt +++ /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 index 7dce328844..0000000000 --- a/admin/builds/gromacs.py +++ /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 index 5d4b2a5e46..0000000000 --- a/admin/builds/nightly-matrix.txt +++ /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 index afb7ee946d..0000000000 --- a/admin/builds/post-submit-matrix.txt +++ /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 index 0cfc48e277..0000000000 --- a/admin/builds/pre-submit-matrix.txt +++ /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 index f1dcdaf688..0000000000 --- a/admin/builds/regressiontests-update.py +++ /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 index 2aaf4dd1f8..0000000000 --- a/admin/builds/release-matrix.txt +++ /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 index f3d52e0c09..0000000000 --- a/admin/builds/source-package.py +++ /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 index 2054ef1a99..0000000000 --- a/admin/builds/uncrustify.py +++ /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 index ee73d0e2da..0000000000 --- a/admin/builds/update-regtest-hash.py +++ /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:] diff --git a/admin/clang-format.sh b/admin/clang-format.sh index e4ab728c0e..36fc12d9e3 100755 --- a/admin/clang-format.sh +++ b/admin/clang-format.sh @@ -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= diff --git a/admin/copyright.sh b/admin/copyright.sh index d66e8b1146..e6e2e967b3 100755 --- a/admin/copyright.sh +++ b/admin/copyright.sh @@ -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= diff --git a/admin/git-pre-commit b/admin/git-pre-commit index c52d559148..fc6423fd5e 100755 --- a/admin/git-pre-commit +++ b/admin/git-pre-commit @@ -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. @@ -45,10 +45,9 @@ # 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 index 24e80a0d70..0000000000 --- a/admin/uncrustify.cfg +++ /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>=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();' -sp_angle_paren = ignore # ignore/add/remove/force - -# Add or remove space between '<>' and a word as in 'List 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 >' (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 ( ; ; ). -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 index 5e98a11e90..0000000000 --- a/admin/uncrustify.sh +++ /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=] []" - echo ": (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 diff --git a/cmake/gmxGenerateVersionInfo.cmake b/cmake/gmxGenerateVersionInfo.cmake index 9c64eb580c..a2a3291bc3 100644 --- a/cmake/gmxGenerateVersionInfo.cmake +++ b/cmake/gmxGenerateVersionInfo.cmake @@ -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 diff --git a/cmake/gmxManageLinearAlgebraLibraries.cmake b/cmake/gmxManageLinearAlgebraLibraries.cmake index aeb7937c74..bb5a5e6165 100644 --- a/cmake/gmxManageLinearAlgebraLibraries.cmake +++ b/cmake/gmxManageLinearAlgebraLibraries.cmake @@ -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. diff --git a/cmake/gmxManageNvccConfig.cmake b/cmake/gmxManageNvccConfig.cmake index 3b5da4e575..2a8bc143e8 100644 --- a/cmake/gmxManageNvccConfig.cmake +++ b/cmake/gmxManageNvccConfig.cmake @@ -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) diff --git a/cmake/gmxManageSimd.cmake b/cmake/gmxManageSimd.cmake index 5041c1f638..6f0c6343eb 100644 --- a/cmake/gmxManageSimd.cmake +++ b/cmake/gmxManageSimd.cmake @@ -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() diff --git a/cmake/gmxVersionInfo.cmake b/cmake/gmxVersionInfo.cmake index d6c69f81d9..7a2b56344e 100644 --- a/cmake/gmxVersionInfo.cmake +++ b/cmake/gmxVersionInfo.cmake @@ -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 diff --git a/docs/conf.cmakein.py b/docs/conf.cmakein.py index 30f10ecdce..ca737a50d1 100644 --- a/docs/conf.cmakein.py +++ b/docs/conf.cmakein.py @@ -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 diff --git a/docs/dev-manual/change-management.rst b/docs/dev-manual/change-management.rst index 9e281654f5..1dd6e26a5e 100644 --- a/docs/dev-manual/change-management.rst +++ b/docs/dev-manual/change-management.rst @@ -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 `_ 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 ` -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 `; - 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 `__ - 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 `__ -- `General 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 `__, -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 - -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. - diff --git a/docs/dev-manual/code-formatting.rst b/docs/dev-manual/code-formatting.rst index 4b26db088c..cb9048d859 100644 --- a/docs/dev-manual/code-formatting.rst +++ b/docs/dev-manual/code-formatting.rst @@ -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:: diff --git a/docs/dev-manual/commitstyle.rst b/docs/dev-manual/commitstyle.rst index 6945b32d06..59f2e74863 100644 --- a/docs/dev-manual/commitstyle.rst +++ b/docs/dev-manual/commitstyle.rst @@ -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 diff --git a/docs/dev-manual/contribute.rst b/docs/dev-manual/contribute.rst index 0bc378d654..22db6df9f5 100644 --- a/docs/dev-manual/contribute.rst +++ b/docs/dev-manual/contribute.rst @@ -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 `. +|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 diff --git a/docs/dev-manual/gitlab.rst b/docs/dev-manual/gitlab.rst index 7b51a21dd0..19894addce 100644 --- a/docs/dev-manual/gitlab.rst +++ b/docs/dev-manual/gitlab.rst @@ -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 ~~~~~~~~~~~~~~~~ diff --git a/docs/dev-manual/language-features.rst b/docs/dev-manual/language-features.rst index 1422fb5e39..6d94faa796 100644 --- a/docs/dev-manual/language-features.rst +++ b/docs/dev-manual/language-features.rst @@ -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. diff --git a/docs/dev-manual/reportstyle.rst b/docs/dev-manual/reportstyle.rst index 2d9109b993..93e58492fe 100644 --- a/docs/dev-manual/reportstyle.rst +++ b/docs/dev-manual/reportstyle.rst @@ -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 diff --git a/docs/dev-manual/style.rst b/docs/dev-manual/style.rst index 761a455524..70841bb157 100644 --- a/docs/dev-manual/style.rst +++ b/docs/dev-manual/style.rst @@ -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. diff --git a/docs/dev-manual/tools.rst b/docs/dev-manual/tools.rst index 0fc35b1fbe..d7b9616221 100644 --- a/docs/dev-manual/tools.rst +++ b/docs/dev-manual/tools.rst @@ -39,12 +39,13 @@ git Other basic tutorial material for ``git`` can be found on the `web `__. -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 diff --git a/docs/doxygen/suppressions.txt b/docs/doxygen/suppressions.txt index 964a2c8197..c5d844eefc 100644 --- a/docs/doxygen/suppressions.txt +++ b/docs/doxygen/suppressions.txt @@ -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 diff --git a/docs/gmxapi/reference/datamodel.rst b/docs/gmxapi/reference/datamodel.rst index 83844e0202..8519d445c3 100644 --- a/docs/gmxapi/reference/datamodel.rst +++ b/docs/gmxapi/reference/datamodel.rst @@ -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 ----------------------------- diff --git a/docs/gmxapi/userguide/install.rst b/docs/gmxapi/userguide/install.rst index 14a936a672..adfe44938c 100644 --- a/docs/gmxapi/userguide/install.rst +++ b/docs/gmxapi/userguide/install.rst @@ -497,7 +497,7 @@ https://hub.docker.com/r/gmxapi/docs for more information. .. todo:: Document sample_restraint package. Reference issue - `3027 `_ + `3027 `_ .. _gmxapi install troubleshooting: diff --git a/docs/gmxapi/userguide/usage.rst b/docs/gmxapi/userguide/usage.rst index c1100b70c7..cc9afd0cc5 100644 --- a/docs/gmxapi/userguide/usage.rst +++ b/docs/gmxapi/userguide/usage.rst @@ -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 `__. + Relates to `#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. diff --git a/docs/gmxapi/userguide/userguide.rst b/docs/gmxapi/userguide/userguide.rst index 0c502d389a..de3aa4d110 100644 --- a/docs/gmxapi/userguide/userguide.rst +++ b/docs/gmxapi/userguide/userguide.rst @@ -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 `_ +.. todo:: Example scripts. See issue `3014 `_ diff --git a/docs/reference-manual/preface.rst b/docs/reference-manual/preface.rst index b583b4df96..1fc4bcc6e1 100644 --- a/docs/reference-manual/preface.rst +++ b/docs/reference-manual/preface.rst @@ -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 `), 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 diff --git a/docs/release-notes/2016/major/bugs-fixed.rst b/docs/release-notes/2016/major/bugs-fixed.rst index 64e2525209..d79603c670 100644 --- a/docs/release-notes/2016/major/bugs-fixed.rst +++ b/docs/release-notes/2016/major/bugs-fixed.rst @@ -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 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" diff --git a/docs/release-notes/2018/major/miscellaneous.rst b/docs/release-notes/2018/major/miscellaneous.rst index fb2383bdc3..ab3a576fff 100644 --- a/docs/release-notes/2018/major/miscellaneous.rst +++ b/docs/release-notes/2018/major/miscellaneous.rst @@ -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 diff --git a/docs/release-notes/2019/2019.2.rst b/docs/release-notes/2019/2019.2.rst index 0f867ce1c0..aeb6a5515b 100644 --- a/docs/release-notes/2019/2019.2.rst +++ b/docs/release-notes/2019/2019.2.rst @@ -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 diff --git a/docs/release-notes/2019/2019.3.rst b/docs/release-notes/2019/2019.3.rst index 80f501cb4d..8338de59b9 100644 --- a/docs/release-notes/2019/2019.3.rst +++ b/docs/release-notes/2019/2019.3.rst @@ -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 diff --git a/docs/release-notes/2019/2019.4.rst b/docs/release-notes/2019/2019.4.rst index 195be46ebc..aa7922b03d 100644 --- a/docs/release-notes/2019/2019.4.rst +++ b/docs/release-notes/2019/2019.4.rst @@ -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 diff --git a/docs/release-notes/2019/2019.5.rst b/docs/release-notes/2019/2019.5.rst index f526dc3ee1..7fd579048d 100644 --- a/docs/release-notes/2019/2019.5.rst +++ b/docs/release-notes/2019/2019.5.rst @@ -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 diff --git a/docs/release-notes/2019/2019.6.rst b/docs/release-notes/2019/2019.6.rst index bf676ce57f..14e2d7eaad 100644 --- a/docs/release-notes/2019/2019.6.rst +++ b/docs/release-notes/2019/2019.6.rst @@ -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 diff --git a/docs/release-notes/2020/2020.1.rst b/docs/release-notes/2020/2020.1.rst index 534d10a0b2..a29b34aba8 100644 --- a/docs/release-notes/2020/2020.1.rst +++ b/docs/release-notes/2020/2020.1.rst @@ -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 diff --git a/docs/release-notes/2020/2020.2.rst b/docs/release-notes/2020/2020.2.rst index c793676497..d10999d4e9 100644 --- a/docs/release-notes/2020/2020.2.rst +++ b/docs/release-notes/2020/2020.2.rst @@ -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 diff --git a/docs/release-notes/2020/major/bugs-fixed.rst b/docs/release-notes/2020/major/bugs-fixed.rst index c9ccef9586..b4895cd207 100644 --- a/docs/release-notes/2020/major/bugs-fixed.rst +++ b/docs/release-notes/2020/major/bugs-fixed.rst @@ -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 diff --git a/docs/release-notes/2020/major/deprecated-functionality.rst b/docs/release-notes/2020/major/deprecated-functionality.rst index d0e8b3ac72..7ffeaea3ab 100644 --- a/docs/release-notes/2020/major/deprecated-functionality.rst +++ b/docs/release-notes/2020/major/deprecated-functionality.rst @@ -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 diff --git a/docs/release-notes/2020/major/features.rst b/docs/release-notes/2020/major/features.rst index 67f2473285..81257d8fc4 100644 --- a/docs/release-notes/2020/major/features.rst +++ b/docs/release-notes/2020/major/features.rst @@ -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 diff --git a/docs/release-notes/2020/major/highlights.rst b/docs/release-notes/2020/major/highlights.rst index 316064f872..757e9314d9 100644 --- a/docs/release-notes/2020/major/highlights.rst +++ b/docs/release-notes/2020/major/highlights.rst @@ -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! diff --git a/docs/release-notes/2020/major/miscellaneous.rst b/docs/release-notes/2020/major/miscellaneous.rst index ace0f701ed..3768cd7585 100644 --- a/docs/release-notes/2020/major/miscellaneous.rst +++ b/docs/release-notes/2020/major/miscellaneous.rst @@ -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 diff --git a/docs/release-notes/2020/major/performance.rst b/docs/release-notes/2020/major/performance.rst index 784d4b83a1..77c9e48b4e 100644 --- a/docs/release-notes/2020/major/performance.rst +++ b/docs/release-notes/2020/major/performance.rst @@ -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 diff --git a/docs/release-notes/2020/major/portability.rst b/docs/release-notes/2020/major/portability.rst index 4186794e8f..36577cbd83 100644 --- a/docs/release-notes/2020/major/portability.rst +++ b/docs/release-notes/2020/major/portability.rst @@ -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 diff --git a/docs/release-notes/2020/major/removed-functionality.rst b/docs/release-notes/2020/major/removed-functionality.rst index a3326ad559..eb955bacb2 100644 --- a/docs/release-notes/2020/major/removed-functionality.rst +++ b/docs/release-notes/2020/major/removed-functionality.rst @@ -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 diff --git a/docs/release-notes/2020/major/tools.rst b/docs/release-notes/2020/major/tools.rst index c28942396d..6290478b28 100644 --- a/docs/release-notes/2020/major/tools.rst +++ b/docs/release-notes/2020/major/tools.rst @@ -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 diff --git a/docs/release-notes/2021/major/bugs-fixed.rst b/docs/release-notes/2021/major/bugs-fixed.rst index 1db0c1eb08..32793b8aaf 100644 --- a/docs/release-notes/2021/major/bugs-fixed.rst +++ b/docs/release-notes/2021/major/bugs-fixed.rst @@ -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! diff --git a/docs/release-notes/2021/major/deprecated-functionality.rst b/docs/release-notes/2021/major/deprecated-functionality.rst index bf6860025c..bad48892c0 100644 --- a/docs/release-notes/2021/major/deprecated-functionality.rst +++ b/docs/release-notes/2021/major/deprecated-functionality.rst @@ -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 diff --git a/docs/release-notes/2021/major/features.rst b/docs/release-notes/2021/major/features.rst index 4fab02b117..5626dc8d54 100644 --- a/docs/release-notes/2021/major/features.rst +++ b/docs/release-notes/2021/major/features.rst @@ -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! diff --git a/docs/release-notes/2021/major/highlights.rst b/docs/release-notes/2021/major/highlights.rst index 3bcb16d34a..45231d973b 100644 --- a/docs/release-notes/2021/major/highlights.rst +++ b/docs/release-notes/2021/major/highlights.rst @@ -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! diff --git a/docs/release-notes/2021/major/miscellaneous.rst b/docs/release-notes/2021/major/miscellaneous.rst index 96513fa4c8..1a242e3446 100644 --- a/docs/release-notes/2021/major/miscellaneous.rst +++ b/docs/release-notes/2021/major/miscellaneous.rst @@ -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! diff --git a/docs/release-notes/2021/major/performance.rst b/docs/release-notes/2021/major/performance.rst index f1053389ec..0c895e7637 100644 --- a/docs/release-notes/2021/major/performance.rst +++ b/docs/release-notes/2021/major/performance.rst @@ -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 diff --git a/docs/release-notes/2021/major/portability.rst b/docs/release-notes/2021/major/portability.rst index 1daad92054..9264580d11 100644 --- a/docs/release-notes/2021/major/portability.rst +++ b/docs/release-notes/2021/major/portability.rst @@ -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! diff --git a/docs/release-notes/2021/major/removed-functionality.rst b/docs/release-notes/2021/major/removed-functionality.rst index e6a64590bf..4b1b189f6c 100644 --- a/docs/release-notes/2021/major/removed-functionality.rst +++ b/docs/release-notes/2021/major/removed-functionality.rst @@ -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! diff --git a/docs/release-notes/2021/major/tools.rst b/docs/release-notes/2021/major/tools.rst index 3451957b9c..32a358848e 100644 --- a/docs/release-notes/2021/major/tools.rst +++ b/docs/release-notes/2021/major/tools.rst @@ -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! diff --git a/docs/release-notes/index.rst b/docs/release-notes/index.rst index e14445edff..e1796a0c96 100644 --- a/docs/release-notes/index.rst +++ b/docs/release-notes/index.rst @@ -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 --------------------- diff --git a/docs/release-notes/older/index.rst b/docs/release-notes/older/index.rst index cc5ae564c7..33ae308c63 100644 --- a/docs/release-notes/older/index.rst +++ b/docs/release-notes/older/index.rst @@ -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 ----------------------------------- diff --git a/python_packaging/README.md b/python_packaging/README.md index 2f0d636264..faa48c6a16 100644 --- a/python_packaging/README.md +++ b/python_packaging/README.md @@ -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 diff --git a/python_packaging/docker/README.md b/python_packaging/docker/README.md index e22ba4dbce..b149784a69 100644 --- a/python_packaging/docker/README.md +++ b/python_packaging/docker/README.md @@ -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 diff --git a/python_packaging/docker/ci.dockerfile b/python_packaging/docker/ci.dockerfile index 442f9687fa..42b0d7f0f8 100644 --- a/python_packaging/docker/ci.dockerfile +++ b/python_packaging/docker/ci.dockerfile @@ -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" diff --git a/python_packaging/sample_restraint/CMakeLists.txt b/python_packaging/sample_restraint/CMakeLists.txt index b6d6fd9699..97d23e860c 100644 --- a/python_packaging/sample_restraint/CMakeLists.txt +++ b/python_packaging/sample_restraint/CMakeLists.txt @@ -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 diff --git a/python_packaging/sample_restraint/README.md b/python_packaging/sample_restraint/README.md index aa1ee524b5..e347ba3f22 100644 --- a/python_packaging/sample_restraint/README.md +++ b/python_packaging/sample_restraint/README.md @@ -48,15 +48,15 @@ package. the Pybind project (ref ). It is used to wrap the C++ restraint code and give it a Python interface. 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` diff --git a/python_packaging/sample_restraint/tests/CMakeLists.txt b/python_packaging/sample_restraint/tests/CMakeLists.txt index 24446d7413..3cc6a2dbad 100644 --- a/python_packaging/sample_restraint/tests/CMakeLists.txt +++ b/python_packaging/sample_restraint/tests/CMakeLists.txt @@ -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 diff --git a/python_packaging/src/CMakeLists.txt b/python_packaging/src/CMakeLists.txt index 18dc260df1..5b7fe99405 100644 --- a/python_packaging/src/CMakeLists.txt +++ b/python_packaging/src/CMakeLists.txt @@ -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 diff --git a/python_packaging/src/external/pybind/include/pybind11/pybind11.h b/python_packaging/src/external/pybind/include/pybind11/pybind11.h index c6237056ba..f7a2d1a430 100644 --- a/python_packaging/src/external/pybind/include/pybind11/pybind11.h +++ b/python_packaging/src/external/pybind/include/pybind11/pybind11.h @@ -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(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 exception &get_exception_object() { static exception ex; return ex; } NAMESPACE_END(detail) diff --git a/python_packaging/src/gmxapi/export_context.cpp b/python_packaging/src/gmxapi/export_context.cpp index b991398ea7..f618f052b7 100644 --- a/python_packaging/src/gmxapi/export_context.cpp +++ b/python_packaging/src/gmxapi/export_context.cpp @@ -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 diff --git a/python_packaging/src/gmxapi/export_tprfile.cpp b/python_packaging/src/gmxapi/export_tprfile.cpp index 85387acd87..9a80297e45 100644 --- a/python_packaging/src/gmxapi/export_tprfile.cpp +++ b/python_packaging/src/gmxapi/export_tprfile.cpp @@ -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. diff --git a/python_packaging/src/gmxapi/version.py b/python_packaging/src/gmxapi/version.py index 552ea5af96..3d2465d027 100644 --- a/python_packaging/src/gmxapi/version.py +++ b/python_packaging/src/gmxapi/version.py @@ -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) diff --git a/python_packaging/test/test_fr08.py b/python_packaging/test/test_fr08.py index 0d5f7c8463..de7a33f8f7 100644 --- a/python_packaging/test/test_fr08.py +++ b/python_packaging/test/test_fr08.py @@ -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): diff --git a/share/top/amber03.ff/tip5p.itp b/share/top/amber03.ff/tip5p.itp index 007b57acda..484858175f 100644 --- a/share/top/amber03.ff/tip5p.itp +++ b/share/top/amber03.ff/tip5p.itp @@ -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 diff --git a/share/top/amber03.ff/watermodels.dat b/share/top/amber03.ff/watermodels.dat index 7e4956a7e9..f2199278ec 100644 --- a/share/top/amber03.ff/watermodels.dat +++ b/share/top/amber03.ff/watermodels.dat @@ -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 diff --git a/share/top/amber94.ff/tip5p.itp b/share/top/amber94.ff/tip5p.itp index 007b57acda..484858175f 100644 --- a/share/top/amber94.ff/tip5p.itp +++ b/share/top/amber94.ff/tip5p.itp @@ -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 diff --git a/share/top/amber94.ff/watermodels.dat b/share/top/amber94.ff/watermodels.dat index 7e4956a7e9..f2199278ec 100644 --- a/share/top/amber94.ff/watermodels.dat +++ b/share/top/amber94.ff/watermodels.dat @@ -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 diff --git a/share/top/amber96.ff/tip5p.itp b/share/top/amber96.ff/tip5p.itp index 007b57acda..484858175f 100644 --- a/share/top/amber96.ff/tip5p.itp +++ b/share/top/amber96.ff/tip5p.itp @@ -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 diff --git a/share/top/amber96.ff/watermodels.dat b/share/top/amber96.ff/watermodels.dat index 7e4956a7e9..f2199278ec 100644 --- a/share/top/amber96.ff/watermodels.dat +++ b/share/top/amber96.ff/watermodels.dat @@ -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 diff --git a/share/top/amber99.ff/tip5p.itp b/share/top/amber99.ff/tip5p.itp index 007b57acda..484858175f 100644 --- a/share/top/amber99.ff/tip5p.itp +++ b/share/top/amber99.ff/tip5p.itp @@ -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 diff --git a/share/top/amber99.ff/watermodels.dat b/share/top/amber99.ff/watermodels.dat index 7e4956a7e9..f2199278ec 100644 --- a/share/top/amber99.ff/watermodels.dat +++ b/share/top/amber99.ff/watermodels.dat @@ -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 diff --git a/share/top/amber99sb-ildn.ff/tip5p.itp b/share/top/amber99sb-ildn.ff/tip5p.itp index 007b57acda..484858175f 100644 --- a/share/top/amber99sb-ildn.ff/tip5p.itp +++ b/share/top/amber99sb-ildn.ff/tip5p.itp @@ -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 diff --git a/share/top/amber99sb-ildn.ff/watermodels.dat b/share/top/amber99sb-ildn.ff/watermodels.dat index 7e4956a7e9..f2199278ec 100644 --- a/share/top/amber99sb-ildn.ff/watermodels.dat +++ b/share/top/amber99sb-ildn.ff/watermodels.dat @@ -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 diff --git a/share/top/amber99sb.ff/tip5p.itp b/share/top/amber99sb.ff/tip5p.itp index 007b57acda..484858175f 100644 --- a/share/top/amber99sb.ff/tip5p.itp +++ b/share/top/amber99sb.ff/tip5p.itp @@ -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 diff --git a/share/top/amber99sb.ff/watermodels.dat b/share/top/amber99sb.ff/watermodels.dat index fa5b9442f6..fa85cbaa8b 100644 --- a/share/top/amber99sb.ff/watermodels.dat +++ b/share/top/amber99sb.ff/watermodels.dat @@ -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 diff --git a/share/top/amberGS.ff/tip5p.itp b/share/top/amberGS.ff/tip5p.itp index 007b57acda..484858175f 100644 --- a/share/top/amberGS.ff/tip5p.itp +++ b/share/top/amberGS.ff/tip5p.itp @@ -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 diff --git a/share/top/amberGS.ff/watermodels.dat b/share/top/amberGS.ff/watermodels.dat index 7e4956a7e9..f2199278ec 100644 --- a/share/top/amberGS.ff/watermodels.dat +++ b/share/top/amberGS.ff/watermodels.dat @@ -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 diff --git a/share/top/charmm27.ff/tip5p.itp b/share/top/charmm27.ff/tip5p.itp index d13477c90f..478a7e9ae1 100644 --- a/share/top/charmm27.ff/tip5p.itp +++ b/share/top/charmm27.ff/tip5p.itp @@ -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 diff --git a/share/top/charmm27.ff/watermodels.dat b/share/top/charmm27.ff/watermodels.dat index f05e8ecf8c..6a58a6dff1 100644 --- a/share/top/charmm27.ff/watermodels.dat +++ b/share/top/charmm27.ff/watermodels.dat @@ -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 diff --git a/share/top/oplsaa.ff/tip5p.itp b/share/top/oplsaa.ff/tip5p.itp index 22418b5f62..e59bf5691a 100644 --- a/share/top/oplsaa.ff/tip5p.itp +++ b/share/top/oplsaa.ff/tip5p.itp @@ -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 diff --git a/share/top/oplsaa.ff/watermodels.dat b/share/top/oplsaa.ff/watermodels.dat index a476413334..3972fa2a4b 100644 --- a/share/top/oplsaa.ff/watermodels.dat +++ b/share/top/oplsaa.ff/watermodels.dat @@ -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 diff --git a/src/api/CMakeLists.txt b/src/api/CMakeLists.txt index 8b824e0461..453c145b72 100644 --- a/src/api/CMakeLists.txt +++ b/src/api/CMakeLists.txt @@ -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) diff --git a/src/api/cpp/context.cpp b/src/api/cpp/context.cpp index ad3de9be6b..4d642591b2 100644 --- a/src/api/cpp/context.cpp +++ b/src/api/cpp/context.cpp @@ -132,7 +132,7 @@ std::shared_ptr 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. diff --git a/src/api/cpp/include/gmxapi/gmxapi.h b/src/api/cpp/include/gmxapi/gmxapi.h index 4e4bc2752d..5331146922 100644 --- a/src/api/cpp/include/gmxapi/gmxapi.h +++ b/src/api/cpp/include/gmxapi/gmxapi.h @@ -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 { diff --git a/src/api/cpp/tests/CMakeLists.txt b/src/api/cpp/tests/CMakeLists.txt index 000d3430c1..f991829449 100644 --- a/src/api/cpp/tests/CMakeLists.txt +++ b/src/api/cpp/tests/CMakeLists.txt @@ -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() diff --git a/src/api/cpp/workflow.cpp b/src/api/cpp/workflow.cpp index d37e6b6f7b..e35e3c0ea4 100644 --- a/src/api/cpp/workflow.cpp +++ b/src/api/cpp/workflow.cpp @@ -68,7 +68,7 @@ NodeSpecification::paramsType MDNodeSpecification::params() const noexcept NodeKey Workflow::addNode(std::unique_ptr 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 {}; diff --git a/src/gromacs/CMakeLists.txt b/src/gromacs/CMakeLists.txt index 04876ca360..70ac5ac20a 100644 --- a/src/gromacs/CMakeLists.txt +++ b/src/gromacs/CMakeLists.txt @@ -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 () diff --git a/src/gromacs/domdec/gpuhaloexchange_impl.cu b/src/gromacs/domdec/gpuhaloexchange_impl.cu index 6c241f3fd5..0eebc6c0e4 100644 --- a/src/gromacs/domdec/gpuhaloexchange_impl.cu +++ b/src/gromacs/domdec/gpuhaloexchange_impl.cu @@ -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_); diff --git a/src/gromacs/ewald/pme.h b/src/gromacs/ewald/pme.h index 59aa7c604d..11fe087389 100644 --- a/src/gromacs/ewald/pme.h +++ b/src/gromacs/ewald/pme.h @@ -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, diff --git a/src/gromacs/ewald/pme_gpu_constants.h b/src/gromacs/ewald/pme_gpu_constants.h index f3f521d088..5bfe1c3dde 100644 --- a/src/gromacs/ewald/pme_gpu_constants.h +++ b/src/gromacs/ewald/pme_gpu_constants.h @@ -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 * \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. */ diff --git a/src/gromacs/ewald/pme_gpu_program_impl.h b/src/gromacs/ewald/pme_gpu_program_impl.h index f1b9559d80..0a7cc1a5c5 100644 --- a/src/gromacs/ewald/pme_gpu_program_impl.h +++ b/src/gromacs/ewald/pme_gpu_program_impl.h @@ -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 { diff --git a/src/gromacs/gmxpreprocess/topio.cpp b/src/gromacs/gmxpreprocess/topio.cpp index c03802eef9..c6115e8e07 100644 --- a/src/gromacs/gmxpreprocess/topio.cpp +++ b/src/gromacs/gmxpreprocess/topio.cpp @@ -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); diff --git a/src/gromacs/gpu_utils/clfftinitializer.h b/src/gromacs/gpu_utils/clfftinitializer.h index b07b71565c..25847bd957 100644 --- a/src/gromacs/gpu_utils/clfftinitializer.h +++ b/src/gromacs/gpu_utils/clfftinitializer.h @@ -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: diff --git a/src/gromacs/gpu_utils/ocl_compiler.h b/src/gromacs/gpu_utils/ocl_compiler.h index db6d0db8e3..4cd381865e 100644 --- a/src/gromacs/gpu_utils/ocl_compiler.h +++ b/src/gromacs/gpu_utils/ocl_compiler.h @@ -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 diff --git a/src/gromacs/listed_forces/bonded.cpp b/src/gromacs/listed_forces/bonded.cpp index 61f6ee32f0..443008c374 100644 --- a/src/gromacs/listed_forces/bonded.cpp +++ b/src/gromacs/listed_forces/bonded.cpp @@ -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 diff --git a/src/gromacs/math/CMakeLists.txt b/src/gromacs/math/CMakeLists.txt index 6f85bd88c3..e0c2fadac8 100644 --- a/src/gromacs/math/CMakeLists.txt +++ b/src/gromacs/math/CMakeLists.txt @@ -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) diff --git a/src/gromacs/mdlib/lincs_gpu.cu b/src/gromacs/mdlib/lincs_gpu.cu index e358de8cf8..1d6bf1ca71 100644 --- a/src/gromacs/mdlib/lincs_gpu.cu +++ b/src/gromacs/mdlib/lincs_gpu.cu @@ -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. * diff --git a/src/gromacs/mdrun/md.cpp b/src/gromacs/mdrun/md.cpp index f7f39bbee7..1900f4938c 100644 --- a/src/gromacs/mdrun/md.cpp +++ b/src/gromacs/mdrun/md.cpp @@ -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 diff --git a/src/gromacs/mdrun/runner.cpp b/src/gromacs/mdrun/runner.cpp index 43ac7d6164..8605f612ed 100644 --- a/src/gromacs/mdrun/runner.cpp +++ b/src/gromacs/mdrun/runner.cpp @@ -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; diff --git a/src/gromacs/mdrun/simulationcontext.h b/src/gromacs/mdrun/simulationcontext.h index 2e4ca42e31..6833d8d231 100644 --- a/src/gromacs/mdrun/simulationcontext.h +++ b/src/gromacs/mdrun/simulationcontext.h @@ -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 { diff --git a/src/gromacs/mdtypes/commrec.h b/src/gromacs/mdtypes/commrec.h index a05b34d052..0f00d52528 100644 --- a/src/gromacs/mdtypes/commrec.h +++ b/src/gromacs/mdtypes/commrec.h @@ -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)) diff --git a/src/gromacs/modularsimulator/constraintelement.cpp b/src/gromacs/modularsimulator/constraintelement.cpp index fcd03cd8d0..23145242ad 100644 --- a/src/gromacs/modularsimulator/constraintelement.cpp +++ b/src/gromacs/modularsimulator/constraintelement.cpp @@ -171,7 +171,7 @@ void ConstraintsElement::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; diff --git a/src/gromacs/pbcutil/pbc_aiuc.h b/src/gromacs/pbcutil/pbc_aiuc.h index e8888f65d6..bd45ec5d5c 100644 --- a/src/gromacs/pbcutil/pbc_aiuc.h +++ b/src/gromacs/pbcutil/pbc_aiuc.h @@ -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 * \author Berk Hess @@ -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. diff --git a/src/gromacs/pbcutil/pbc_aiuc_cuda.cuh b/src/gromacs/pbcutil/pbc_aiuc_cuda.cuh index a2308cff7d..96661613f6 100644 --- a/src/gromacs/pbcutil/pbc_aiuc_cuda.cuh +++ b/src/gromacs/pbcutil/pbc_aiuc_cuda.cuh @@ -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 * \author Berk Hess @@ -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. diff --git a/src/gromacs/utility.h b/src/gromacs/utility.h index 47385350fc..99bfd43eea 100644 --- a/src/gromacs/utility.h +++ b/src/gromacs/utility.h @@ -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. * *

Logging

* diff --git a/src/gromacs/utility/CMakeLists.txt b/src/gromacs/utility/CMakeLists.txt index 151cfa112c..fef7f2cb90 100644 --- a/src/gromacs/utility/CMakeLists.txt +++ b/src/gromacs/utility/CMakeLists.txt @@ -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 diff --git a/src/gromacs/utility/dir_separator.h b/src/gromacs/utility/dir_separator.h index 203d5ac971..dea093d1ca 100644 --- a/src/gromacs/utility/dir_separator.h +++ b/src/gromacs/utility/dir_separator.h @@ -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 diff --git a/src/programs/mdrun/tests/moduletest.cpp b/src/programs/mdrun/tests/moduletest.cpp index 9ddd438cf3..ae729fc9bb 100644 --- a/src/programs/mdrun/tests/moduletest.cpp +++ b/src/programs/mdrun/tests/moduletest.cpp @@ -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() { diff --git a/src/programs/mdrun/tests/rerun.cpp b/src/programs/mdrun/tests/rerun.cpp index 5a05cd04f2..15fc819e7d 100644 --- a/src/programs/mdrun/tests/rerun.cpp +++ b/src/programs/mdrun/tests/rerun.cpp @@ -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 diff --git a/src/programs/mdrun/tests/termination.cpp b/src/programs/mdrun/tests/termination.cpp index beb6d33bd8..105baba910 100644 --- a/src/programs/mdrun/tests/termination.cpp +++ b/src/programs/mdrun/tests/termination.cpp @@ -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"); diff --git a/src/testutils/simulationdatabase/one-tip5p.top b/src/testutils/simulationdatabase/one-tip5p.top index 28b0a3f77d..e16a99e8a1 100644 --- a/src/testutils/simulationdatabase/one-tip5p.top +++ b/src/testutils/simulationdatabase/one-tip5p.top @@ -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 diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 3336622882..051d6d9686 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -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) -- 2.22.0