Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/develop' into query_system_load
Browse files Browse the repository at this point in the history
  • Loading branch information
KineticTheory committed Jun 17, 2021
2 parents c48cb8a + 10e526f commit a02acba
Show file tree
Hide file tree
Showing 226 changed files with 8,176 additions and 7,683 deletions.
2 changes: 1 addition & 1 deletion .clang-format
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ ForEachMacros:
- BOOST_FOREACH
IncludeBlocks: Preserve
IncludeCategories:
- Regex: '^"(c4|cdi|cdi_analytic|cdi_CPEloss|cdi_eospac|cdi_ipcress|cdi_ndi|compton_interface|compton_tools|device|diagnostics|ds\+\+|experimental|fit|linear|memory|mesh|mesh_element|meshReaders|min|norms|ode|parser|quadrature|rng|roots|RTT_Format_Reader|special_functions|timestep|units|viz)/'
- Regex: '^"(c4|cdi|cdi_analytic|cdi_CPEloss|cdi_eospac|cdi_ipcress|cdi_ndi|compton_interface|compton_tools|device|diagnostics|ds\+\+|experimental|fit|linear|memory|mesh|mesh_element|meshReaders|min|norms|ode|parser|quadrature|rng|roots|RTT_Format_Reader|special_functions|units|viz)/'
Priority: 2
- Regex: '^(<|"(gtest|gmock|isl|json)/)'
Priority: 3
Expand Down
243 changes: 243 additions & 0 deletions .cmake-format.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,243 @@
# ----------------------------------
# Options affecting listfile parsing
#
# https://cmake-format.readthedocs.io/en/latest/configuration.html
# ----------------------------------
with section("parse"): # noqa: F821

# Specify structure for custom cmake functions
additional_commands = {

"add_component_library": {
"pargs": 1,
"flags": ["NOEXPORT"],
"kwargs": {"TARGET": '*', "LIBRARY_NAME": '*', "SOURCES": '*', "HEADERS": '*',
"INCLUDE_DIRS": '*', "TARGET_DEPS": '*', "LINK_LANGUAGE": '*',
"LIBRARY_TYPE": '*'}},

"add_component_executable": {
"kwargs": {"TARGET": '*', "LIBRARY_NAME": '*', "SOURCES": '*', "HEADERS": '*',
"INCLUDE_DIRS": '*', "TARGET_DEPS": '*', "EXE_NAME": '*', "FOLDER": '*'}},

"add_scalar_tests": {
"kwargs": {"SOURCES": '*', "DEPS": '*', "TEST_ARGS": '*', "PASS_REGEX": '*', "LABELS":
'*'}},

"add_parallel_tests": {
"flags": ["MPI_PLUS_OMP"],
"kwargs": {"SOURCES": '*', "DEPS": '*', "TEST_ARGS": '*', "PASS_REGEX": '*',
"FAIL_REGEX": '*', "LABEL": '*', "PE_LIST": '*'}},

"add_app_unit_test": {
"kwargs": {"DRIVER": '*', "APPS": '*', "TEST_ARGS": '*', "LABELS": '*', "APP": '*',
"PE_LIST": '*', "STDINFILE": '*', "GOLDFILE": '*'}},

"cmake_add_fortran_subdirectory": {
"pargs": 1,
"flags": ["VERBOSE", "NO_EXTERNAL_INSTALL"],
"kwargs": {"PROJECT": '*', "ARCHIVE_DIR": '*', "RUNTIME_DIR": '*', "LIBRARIES": '*',
"TARGET_NAMES": '*', "DEPENDS": '*', "CMAKE_COMMAND_LINE": '*'}},

}

# Specify variable tags.
vartags = []

# Specify property tags.
proptags = []

# -----------------------------
# Options affecting formatting.
# -----------------------------
with section("format"): # noqa: F821

# How wide to allow formatted cmake files
line_width = 100

# How many spaces to tab for indent
tab_size = 2

# If an argument group contains more than this many sub-groups (parg or kwarg groups) then force
# it to a vertical layout.
max_subgroups_hwrap = 2

# If a positional argument group contains more than this many arguments, then force it to a
# vertical layout.
max_pargs_hwrap = 6

# If a cmdline positional group consumes more than this many lines without nesting, then
# invalidate the layout (and nest)
max_rows_cmdline = 2

# If true, separate flow control names from their parentheses with a space
separate_ctrl_name_with_space = False

# If true, separate function names from parentheses with a space
separate_fn_name_with_space = False

# If a statement is wrapped to more than one line, than dangle the closing parenthesis on its
# own line.
dangle_parens = False

# If the trailing parenthesis must be 'dangled' on its on line, then align it to this reference:
# `prefix`: the start of the statement, `prefix-indent`: the start of the statement, plus one
# indentation level, `child`: align to the column of the arguments
dangle_align = 'prefix'

# If the statement spelling length (including space and parenthesis) is smaller than this
# amount, then force reject nested layouts.
min_prefix_chars = 4

# If the statement spelling length (including space and parenthesis) is larger than the tab
# width by more than this amount, then force reject un-nested layouts.
max_prefix_chars = 10

# If a candidate layout is wrapped horizontally but it exceeds this many lines, then reject the
# layout.
max_lines_hwrap = 2

# What style line endings to use in the output.
line_ending = 'unix'

# Format command names consistently as 'lower' or 'upper' case
command_case = 'canonical'

# Format keywords consistently as 'lower' or 'upper' case
keyword_case = 'unchanged'

# A list of command names which should always be wrapped
always_wrap = []

# If true, the argument lists which are known to be sortable will be sorted lexicographicall
enable_sort = True

# If true, the parsers may infer whether or not an argument list is sortable (without
# annotation).
autosort = True

# By default, if cmake-format cannot successfully fit everything into the desired linewidth it
# will apply the last, most agressive attempt that it made. If this flag is True, however,
# cmake-format will print error, exit with non-zero status code, and write-out nothing
require_valid_layout = False

# A dictionary mapping layout nodes to a list of wrap decisions. See the documentation for more
# information.
layout_passes = {}

# ------------------------------------------------
# Options affecting comment reflow and formatting.
# ------------------------------------------------
with section("markup"): # noqa: F821

# What character to use for bulleted lists
bullet_char = '*'

# What character to use as punctuation after numerals in an enumerated list
enum_char = '.'

# If comment markup is enabled, don't reflow the first comment block in each listfile. Use this
# to preserve formatting of your copyright/license statements.
first_comment_is_literal = True

# If comment markup is enabled, don't reflow any comment block which matches this (regex)
# pattern. Default is `None` (disabled).
literal_comment_pattern = None

# Regular expression to match preformat fences in comments default=
# ``r'^\s*([`~]{3}[`~]*)(.*)$'``
fence_pattern = '^\\s*([`~]{3}[`~]*)(.*)$'

# Regular expression to match rulers in comments default= ``r'^\s*[^\w\s]{3}.*[^\w\s]{3}$'``
ruler_pattern = '^\\s*[^\\w\\s]{3}.*[^\\w\\s]{3}$'

# If a comment line matches starts with this pattern then it is explicitly a trailing comment
# for the preceeding argument. Default is '#<'
explicit_trailing_pattern = '#<'

# If a comment line starts with at least this many consecutive hash characters, then don't
# lstrip() them off. This allows for lazy hash rulers where the first hash char is not separated
# by space
hashruler_min_length = 10

# If true, then insert a space between the first hash char and remaining hash chars in a hash
# ruler, and normalize its length to fill the column
canonicalize_hashrulers = True

# enable comment markup parsing and reflow
enable_markup = True

# ----------------------------
# Options affecting the linter
# ----------------------------
with section("lint"): # noqa: F821

# a list of lint codes to disable
disabled_codes = ["C0103"]

# regular expression pattern describing valid function names
function_pattern = '[0-9a-z_]+'

# regular expression pattern describing valid macro names
macro_pattern = '[0-9A-Z_]+'

# regular expression pattern describing valid names for variables with global (cache) scope
global_var_pattern = '[A-Z][0-9A-Z_]+'

# regular expression pattern describing valid names for variables with global scope (but
# internal semantic)
internal_var_pattern = '_[A-Z][0-9A-Z_]+'

# regular expression pattern describing valid names for variables with local scope
local_var_pattern = '[a-z][a-z0-9_]+'

# regular expression pattern describing valid names for privatedirectory variables
private_var_pattern = '_[0-9a-z_]+'

# regular expression pattern describing valid names for public directory variables
public_var_pattern = '[A-Z][0-9A-Z_]+'

# regular expression pattern describing valid names for function/macro arguments and loop
# variables.
argument_var_pattern = '[a-z][a-z0-9_]+'

# regular expression pattern describing valid names for keywords used in functions or macros
keyword_pattern = '[A-Z][0-9A-Z_]+'

# In the heuristic for C0201, how many conditionals to match within a loop in before considering
# the loop a parser.
max_conditionals_custom_parser = 2

# Require at least this many newlines between statements
min_statement_spacing = 1

# Require no more than this many newlines between statements
max_statement_spacing = 2
max_returns = 6
max_branches = 12
max_arguments = 5
max_localvars = 15
max_statements = 50

# -------------------------------
# Options affecting file encoding
# -------------------------------
with section("encode"): # noqa: F821

# If true, emit the unicode byte-order mark (BOM) at the start of the file
emit_byteorder_mark = False

# Specify the encoding of the input file. Defaults to utf-8
input_encoding = 'utf-8'

# Specify the encoding of the output file. Defaults to utf-8. Note that cmake only claims to
# support utf-8 so be careful when using anything else
output_encoding = 'utf-8'

# -------------------------------------
# Miscellaneous configurations options.
# -------------------------------------
with section("misc"): # noqa: F821

# A dictionary containing any per-command configuration overrides. Currently only `command_case`
# is supported.
per_command = {}
12 changes: 12 additions & 0 deletions .fprettify.rc
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
indent = 2
line-length = 100
whitespace = 2
whitespace-comma = true
whitespace-assignment = true
whitespace-relational = true
whitespace-logical = false
whitespace-plusminus = true
whitespace-multdiv = true
whitespace-print = true
whitespace-type = true
whitespace-intrinsics = true
6 changes: 3 additions & 3 deletions .github/PULL_REQUEST_TEMPLATE
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
* Checks
* [ ] Travis/Appveyor CI checks pass
* [ ] Code coverage does not decrease
* [ ] [Valgrind test passes](https://rtt.lanl.gov/CDash/index.php?project=Draco)
* [ ] [Toss3 checks pass](https://rtt.lanl.gov/CDash/index.php?project=Draco)
* [ ] [Trinitite checks pass](https://rtt.lanl.gov/CDash/index.php?project=Draco)
* [ ] [Valgrind test passes](https://rtt.lanl.gov/cdash3/index.php?project=Draco)
* [ ] [Toss3 checks pass](https://rtt.lanl.gov/cdash3/index.php?project=Draco)
* [ ] [Trinitite checks pass](https://rtt.lanl.gov/cdash3/index.php?project=Draco)
* [ ] Code reviewed/approved, sufficient DbC checks, testing, documentation
55 changes: 55 additions & 0 deletions .github/workflows/ci-autodoc.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
name: CI autodoc

#
# Documentation:
# - https://help.github.com/en/articles/workflow-syntax-for-github-actions
# - https://github.com/lanl/Draco/new/develop?filename=.github%2Fworkflows%2Fmain.yml&workflow_template=blank
#

#############################
# Start the job on all push #
#############################
on:
# Triggers the workflow on push or pull request events but only for the develop branch
push:
branches: [ develop ]
pull_request:
branches: [ develop ]

# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

env:
PYTHONPATH: /home/runner/work/Draco/Draco/config

###############
# Set the Job #
###############
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v2
with:
# Full git history is needed to get a proper list of changed files within `super-linter`
fetch-depth: 0
# submodules: true

- name: Fetch Docker image for CI
uses: docker://kinetictheory/draco-ci-2020nov:autodoc

- name: Autodoc
env:
DOCKER_TAG: autodoc
AUTODOC: ON
COMPILER: GCC
DRACO_C4: MPI
WERROR: ON
run: |
echo "docker run -v ${GITHUB_WORKSPACE}:/home/travis/Draco -e COMPILER=${COMPILER} -e VENDOR_DIR=/vendors -e BUILD_DIR=/home/travis/Draco/build -e SOURCE_DIR=/home/travis/Draco -e STYLE=${STYLE} -e COVERAGE=${COVERAGE} -e WERROR=${WERROR} -e DRACO_C4=${DRACO_C4} -e AUTODOC=${AUTODOC} -e CLANGTIDY=${CLANGTIDY} -e CI=${CI} kinetictheory/draco-ci-2020nov:${DOCKER_TAG} /bin/bash -l -c /home/travis/Draco/tools/travis-run-tests.sh"
docker run -v ${GITHUB_WORKSPACE}:/home/travis/Draco -e COMPILER=${COMPILER} -e VENDOR_DIR=/vendors -e BUILD_DIR=/home/travis/Draco/build -e SOURCE_DIR=/home/travis/Draco -e STYLE=${STYLE} -e COVERAGE=${COVERAGE} -e WERROR=${WERROR} -e DRACO_C4=${DRACO_C4} -e AUTODOC=${AUTODOC} -e CLANGTIDY=${CLANGTIDY} -e CI=${CI} kinetictheory/draco-ci-2020nov:${DOCKER_TAG} /bin/bash -l -c '/home/travis/Draco/tools/travis-run-tests.sh'
# cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}}
# cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}}
# ctest -C ${{env.BUILD_TYPE}}
55 changes: 55 additions & 0 deletions .github/workflows/ci-clang-tidy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
name: CI clang-tidy

#
# Documentation:
# - https://help.github.com/en/articles/workflow-syntax-for-github-actions
# - https://github.com/lanl/Draco/new/develop?filename=.github%2Fworkflows%2Fmain.yml&workflow_template=blank
#

#############################
# Start the job on all push #
#############################
on:
# Triggers the workflow on push or pull request events but only for the develop branch
push:
branches: [ develop ]
pull_request:
branches: [ develop ]

# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

env:
PYTHONPATH: /home/runner/work/Draco/Draco/config

###############
# Set the Job #
###############
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v2
with:
# Full git history is needed to get a proper list of changed files within `super-linter`
fetch-depth: 0
# submodules: true

- name: Fetch Docker image for CI
uses: docker://kinetictheory/draco-ci-2020nov:spack-llvm

- name: clang-tidy
env:
DOCKER_TAG: spack-llvm
CLANGTIDY: ON
COMPILER: LLVM
DRACO_C4: MPI
WERROR: ON
run: |
echo "docker run -v ${GITHUB_WORKSPACE}:/home/travis/Draco -e COMPILER=${COMPILER} -e VENDOR_DIR=/vendors -e BUILD_DIR=/home/travis/Draco/build -e SOURCE_DIR=/home/travis/Draco -e STYLE=${STYLE} -e COVERAGE=${COVERAGE} -e WERROR=${WERROR} -e DRACO_C4=${DRACO_C4} -e AUTODOC=${AUTODOC} -e CLANGTIDY=${CLANGTIDY} -e CI=${CI} kinetictheory/draco-ci-2020nov:${DOCKER_TAG} /bin/bash -l -c /home/travis/Draco/tools/travis-run-tests.sh"
docker run -v ${GITHUB_WORKSPACE}:/home/travis/Draco -e COMPILER=${COMPILER} -e VENDOR_DIR=/vendors -e BUILD_DIR=/home/travis/Draco/build -e SOURCE_DIR=/home/travis/Draco -e STYLE=${STYLE} -e COVERAGE=${COVERAGE} -e WERROR=${WERROR} -e DRACO_C4=${DRACO_C4} -e AUTODOC=${AUTODOC} -e CLANGTIDY=${CLANGTIDY} -e CI=${CI} kinetictheory/draco-ci-2020nov:${DOCKER_TAG} /bin/bash -l -c '/home/travis/Draco/tools/travis-run-tests.sh'
# cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}}
# cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}}
# ctest -C ${{env.BUILD_TYPE}}
Loading

0 comments on commit a02acba

Please sign in to comment.