Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Linux Build/Install/Test CI, Docs, and Coding Standard Script #8

Merged
merged 158 commits into from
Jul 20, 2021
Merged
Show file tree
Hide file tree
Changes from 156 commits
Commits
Show all changes
158 commits
Select commit Hold shift + click to select a range
7d462da
Added coding standard script
kencasimiro Jul 1, 2021
42027c6
Create clang-format-fix.yml
kencasimiro Jul 1, 2021
8d5ea36
Committing clang-format changes
github-actions[bot] Jul 1, 2021
3173d0e
Create clang-format-check.yml
kencasimiro Jul 1, 2021
a6ad7a0
Create linux
kencasimiro Jul 1, 2021
37bc210
Rename linux to linux.yml
kencasimiro Jul 1, 2021
80e17b1
Update linux.yml
kencasimiro Jul 1, 2021
4f496cc
Update linux.yml
kencasimiro Jul 1, 2021
3f1123e
Update linux.yml
kencasimiro Jul 1, 2021
76b20ef
Update linux.yml
kencasimiro Jul 1, 2021
47948b5
Update linux.yml
kencasimiro Jul 1, 2021
47dfe41
Update linux.yml
kencasimiro Jul 1, 2021
0a3e84e
Update linux.yml
kencasimiro Jul 1, 2021
a3bdb50
Update linux.yml
kencasimiro Jul 1, 2021
a67a349
Update linux.yml
kencasimiro Jul 1, 2021
4eb72d4
Update linux.yml
kencasimiro Jul 1, 2021
a616201
Update linux.yml
kencasimiro Jul 1, 2021
9d17b80
Update linux.yml
kencasimiro Jul 1, 2021
708a2b2
Update linux.yml
kencasimiro Jul 1, 2021
b737c99
Update linux.yml
kencasimiro Jul 1, 2021
1ad079d
Update linux.yml
kencasimiro Jul 1, 2021
de55de0
Update linux.yml
kencasimiro Jul 1, 2021
0eb8950
Update linux.yml
kencasimiro Jul 1, 2021
7983bd4
Update linux.yml
kencasimiro Jul 1, 2021
e9e1e94
Update linux.yml
kencasimiro Jul 1, 2021
dcb5ce3
Update linux.yml
kencasimiro Jul 1, 2021
8a31da7
Update linux.yml
kencasimiro Jul 1, 2021
401e5f1
Update linux.yml
kencasimiro Jul 1, 2021
b46b627
Update linux.yml
kencasimiro Jul 2, 2021
430519b
Update linux.yml
kencasimiro Jul 2, 2021
a9931d0
Update linux.yml
kencasimiro Jul 2, 2021
2144b7f
Update linux.yml
kencasimiro Jul 2, 2021
6bcc73c
Update linux.yml
kencasimiro Jul 2, 2021
4d6312d
Update linux.yml
kencasimiro Jul 2, 2021
1bfee13
Update linux.yml
kencasimiro Jul 2, 2021
242993b
Update linux.yml
kencasimiro Jul 2, 2021
05b1271
Update linux.yml
kencasimiro Jul 2, 2021
49d33c0
Update linux.yml
kencasimiro Jul 2, 2021
5c639bb
Update linux.yml
kencasimiro Jul 2, 2021
cea615e
Update linux.yml
kencasimiro Jul 2, 2021
94f6f51
Update linux.yml
kencasimiro Jul 2, 2021
4fa6a00
Update linux.yml
kencasimiro Jul 2, 2021
f0cb2dc
Update linux.yml
kencasimiro Jul 2, 2021
24db6ea
Update linux.yml
kencasimiro Jul 2, 2021
2f7daf3
Sphinx quick-start
kencasimiro Jul 6, 2021
d9036ab
Merge branch 'develop' of https://github.com/kencasimiro/vol-async in…
kencasimiro Jul 6, 2021
02e1077
Added theme for sphinx
kencasimiro Jul 6, 2021
f37674e
Create outline for doc
kencasimiro Jul 6, 2021
4bd89a8
Finalize subcategories
kencasimiro Jul 6, 2021
a8b4712
Finished Background subcategory
kencasimiro Jul 6, 2021
5743782
Finished Introduction Section
kencasimiro Jul 6, 2021
6ceb357
Added other categories
kencasimiro Jul 6, 2021
b3462c8
Update linux.yml
kencasimiro Jul 6, 2021
7206c65
Update linux.yml
kencasimiro Jul 6, 2021
e37337f
Update linux.yml
kencasimiro Jul 6, 2021
c1038a4
Update linux.yml
kencasimiro Jul 6, 2021
35e3703
Update linux.yml
kencasimiro Jul 6, 2021
8000d8c
Update linux.yml
kencasimiro Jul 6, 2021
a07b5cf
Update linux.yml
kencasimiro Jul 6, 2021
d4d6112
Update linux.yml
kencasimiro Jul 6, 2021
3480289
Update linux.yml
kencasimiro Jul 6, 2021
7a110e3
Update linux.yml
kencasimiro Jul 6, 2021
0477dab
Update linux.yml
kencasimiro Jul 6, 2021
a467ae7
Update linux.yml
kencasimiro Jul 6, 2021
39d106e
Update linux.yml
kencasimiro Jul 6, 2021
b83df83
Update linux.yml
kencasimiro Jul 6, 2021
f87e168
Update linux.yml
kencasimiro Jul 7, 2021
42e220d
Update linux.yml
kencasimiro Jul 7, 2021
464d484
Update linux.yml
kencasimiro Jul 7, 2021
cc35a8d
Update linux.yml
kencasimiro Jul 7, 2021
a9fa6fe
Update linux.yml
kencasimiro Jul 7, 2021
7f79374
Update linux.yml
kencasimiro Jul 7, 2021
c1bad01
Update linux.yml
kencasimiro Jul 7, 2021
b3c31fe
Update linux.yml
kencasimiro Jul 7, 2021
1444354
Update linux.yml
kencasimiro Jul 7, 2021
05c8c3f
Update linux.yml
kencasimiro Jul 7, 2021
7a453ca
Update linux.yml
kencasimiro Jul 7, 2021
2b23d6d
Update linux.yml
kencasimiro Jul 7, 2021
f332d2d
Update linux.yml
kencasimiro Jul 7, 2021
83f818e
Update linux.yml
kencasimiro Jul 7, 2021
d76daec
Update linux.yml
kencasimiro Jul 7, 2021
ee93f8d
Completed copyright section
kencasimiro Jul 8, 2021
d759f53
Completed license section
kencasimiro Jul 8, 2021
18c2bc5
Merge branch 'develop' of https://github.com/kencasimiro/vol-async in…
kencasimiro Jul 8, 2021
fe4282d
Fixed code blocks and subcategories
kencasimiro Jul 8, 2021
ddca71a
Update linux.yml
kencasimiro Jul 8, 2021
f731e26
Updating fork
kencasimiro Jul 9, 2021
2477380
Merge pull request #2 from hpc-io/develop
kencasimiro Jul 9, 2021
79aef53
Committing clang-format changes
github-actions[bot] Jul 9, 2021
e03cd4a
Update linux.yml
kencasimiro Jul 12, 2021
02d8d1e
Merge branch 'develop' of https://github.com/hpc-io/vol-async into de…
kencasimiro Jul 15, 2021
cb2e28e
Update fork
kencasimiro Jul 15, 2021
2afc2ca
Updating fork
kencasimiro Jul 15, 2021
bae9886
Committing clang-format changes
github-actions[bot] Jul 15, 2021
65a0610
Update linux.yml
kencasimiro Jul 15, 2021
39ea98a
Update linux.yml
kencasimiro Jul 15, 2021
f7dfbc3
Update linux.yml
kencasimiro Jul 15, 2021
3ffa31c
Update linux.yml
kencasimiro Jul 15, 2021
e24c339
Update linux.yml
kencasimiro Jul 15, 2021
e3c8296
Update linux.yml
kencasimiro Jul 15, 2021
0171b19
Update linux.yml
kencasimiro Jul 15, 2021
436f3ff
Update linux.yml
kencasimiro Jul 15, 2021
aacb55d
Update linux.yml
kencasimiro Jul 15, 2021
4c2a450
Update linux.yml
kencasimiro Jul 15, 2021
da1a9fc
Update linux.yml
kencasimiro Jul 15, 2021
90068a8
Update linux.yml
kencasimiro Jul 15, 2021
a7f785a
Update linux.yml
kencasimiro Jul 15, 2021
27ed377
Update linux.yml
kencasimiro Jul 15, 2021
420eb13
Update linux.yml
kencasimiro Jul 15, 2021
c433630
Update linux.yml
kencasimiro Jul 15, 2021
21c4be7
Update linux.yml
kencasimiro Jul 15, 2021
eb69c31
Update linux.yml
kencasimiro Jul 15, 2021
a61d981
Update linux.yml
kencasimiro Jul 15, 2021
cc66c29
Update linux.yml
kencasimiro Jul 15, 2021
fd3f2d9
Update linux.yml
kencasimiro Jul 15, 2021
e277c05
Update linux.yml
kencasimiro Jul 15, 2021
9398b7f
Update linux.yml
kencasimiro Jul 15, 2021
4372249
Update linux.yml
kencasimiro Jul 15, 2021
3ff60e1
Update linux.yml
kencasimiro Jul 15, 2021
e3e27ac
Update linux.yml
kencasimiro Jul 15, 2021
d9519a5
Update linux.yml
kencasimiro Jul 15, 2021
c607c9c
Update linux.yml
kencasimiro Jul 15, 2021
cf831e9
Update linux.yml
kencasimiro Jul 15, 2021
a8cf8e2
Update linux.yml
kencasimiro Jul 15, 2021
da1397d
Update linux.yml
kencasimiro Jul 15, 2021
83067e0
Update linux.yml
kencasimiro Jul 15, 2021
8f458a4
Update linux.yml
kencasimiro Jul 15, 2021
16830a5
Update async_test_serial_event_set_error_stack.c
kencasimiro Jul 15, 2021
922bfe5
Updating fork
kencasimiro Jul 15, 2021
b81a580
Committing clang-format changes
github-actions[bot] Jul 15, 2021
618b290
Update linux.yml
kencasimiro Jul 15, 2021
64d2b66
Update linux.yml
kencasimiro Jul 15, 2021
6f4022f
Update linux.yml
kencasimiro Jul 16, 2021
53f788b
Update linux.yml
kencasimiro Jul 16, 2021
0c5b29d
Update linux.yml
kencasimiro Jul 16, 2021
f8b5676
Update linux.yml
kencasimiro Jul 16, 2021
12039a7
Update linux.yml
kencasimiro Jul 16, 2021
7e22188
Update linux.yml
kencasimiro Jul 16, 2021
491c710
Merge branch 'hpc-io:develop' into develop
kencasimiro Jul 19, 2021
ab4237f
Update linux.yml
kencasimiro Jul 19, 2021
78f3ff1
Update linux.yml
kencasimiro Jul 19, 2021
b955621
Merge branch 'hpc-io:develop' into develop
kencasimiro Jul 19, 2021
f750779
Update linux.yml
kencasimiro Jul 19, 2021
f66c0f5
Update linux.yml
kencasimiro Jul 19, 2021
c9a3a9f
Update linux.yml
kencasimiro Jul 19, 2021
87e97aa
Update linux.yml
kencasimiro Jul 19, 2021
c855902
Update linux.yml
kencasimiro Jul 19, 2021
6ef4760
Update linux.yml
kencasimiro Jul 19, 2021
df01139
Update fork
kencasimiro Jul 19, 2021
1afcfb8
Merge branch 'develop' of https://github.com/kencasimiro/vol-async in…
kencasimiro Jul 19, 2021
c08873f
Update linux.yml
kencasimiro Jul 19, 2021
4c748f5
Committing clang-format changes
github-actions[bot] Jul 19, 2021
e010ed1
Update fork
kencasimiro Jul 19, 2021
53ac459
Update
kencasimiro Jul 19, 2021
6c9393f
Committing clang-format changes
github-actions[bot] Jul 19, 2021
260353a
Update linux.yml
kencasimiro Jul 20, 2021
c779bef
Update .clang-format
kencasimiro Jul 20, 2021
f83982d
Merge branch 'hpc-io:develop' into develop
kencasimiro Jul 20, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
58 changes: 58 additions & 0 deletions .clang-format
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
---
Language: Cpp
BasedOnStyle: LLVM
AlignConsecutiveAssignments: true
#llvm11: AlignConsecutiveBitFields: false
AlignConsecutiveDeclarations: true
AlignConsecutiveMacros: true
#llvm10-11: AlignOperands: true - Align
#llvm11: AllowShortEnumsOnASingleLine: true
AllowShortFunctionsOnASingleLine: None
AlwaysBreakAfterReturnType: AllDefinitions
BraceWrapping:
AfterFunction: true
#llvm10-11: AfterControlStatement: false - Never
BeforeCatch: true
BeforeElse: true
#llvm11: BeforeLambdaBody: false
#llvm11: BeforeWhile: false
BreakBeforeBraces: Stroustrup
BreakAfterJavaFieldAnnotations: true
BreakStringLiterals: true
ColumnLimit: 110 # Update $max_trace_macro_line_len in bin/trace also
IncludeCategories:
- Regex: '^"(llvm|llvm-c|clang|clang-c)/'
Priority: 3
SortPriority: 0
- Regex: '^(<|"(gtest|gmock|isl|json)/)'
Priority: 4
SortPriority: 0
- Regex: '.*'
Priority: 0
SortPriority: 0
- Regex: '^PDC*.*'
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is not needed.

Priority: 1
SortPriority: 0
- Regex: 'private.*'
Priority: 2
SortPriority: 0
IncludeIsMainRegex: '(public)?$'
IndentCaseLabels: true
#llvm11: IndentCaseBlocks: false
IndentGotoLabels: false
#llvm11: IndentExternBlock: AfterExternBlock
IndentWidth: 4
#llvm11: InsertTrailingCommas: None
# MacroBlockBegin: "^BEGIN_FUNC"
# MacroBlockEnd: "^END_FUNC"
ObjCBlockIndentWidth: 4
#llvm11: ObjCBreakBeforeNestedBlockParam: true
ReflowComments: true
SortIncludes: false
StatementMacros:
#llvm10: TypenameMacros:
#llvm10: - STACK_OF
#llvm10: - LIST
#llvm11: WhitespaceSensitiveMacros:
#llvm11: - STRINGIZE
#llvm11: - PP_STRINGIZE
18 changes: 18 additions & 0 deletions .github/workflows/clang-format-check.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
name: clang-format Check
on:
pull_request:
jobs:
formatting-check:
name: Formatting Check
runs-on: ubuntu-latest
if: "!contains(github.event.head_commit.message, 'skip-ci')"
steps:
- uses: actions/checkout@v2
- name: Run clang-format style check for C programs.
uses: DoozyX/clang-format-lint-action@v0.11
with:
source: '.'
extensions: 'c,h,cpp,hpp'
clangFormatVersion: 10
style: file
# exclude: './config'
25 changes: 25 additions & 0 deletions .github/workflows/clang-format-fix.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: clang-format Check
on:
workflow_dispatch:
push:
jobs:
formatting-check:
name: Formatting Check
runs-on: ubuntu-latest
if: "!contains(github.event.head_commit.message, 'skip-ci')"
steps:
- uses: actions/checkout@v2
- name: Run clang-format style check for C programs.
uses: DoozyX/clang-format-lint-action@v0.11
with:
source: '.'
extensions: 'c,h,cpp,hpp'
clangFormatVersion: 10
inplace: True
style: file
# exclude: './config '
- uses: EndBug/add-and-commit@v7
with:
author_name: github-actions
author_email: github-actions[bot]@users.noreply.github.com
message: 'Committing clang-format changes'
86 changes: 86 additions & 0 deletions .github/workflows/linux.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
name: linux

on:
pull_request:
branches: [ develop ]

# Allows to run this workflow manually from the Actions tab
workflow_dispatch:
jobs:
vol-async:
runs-on: ubuntu-latest
timeout-minutes: 60

steps:
- uses: actions/checkout@v2
- name: Checkout submodule argobots
run: git submodule update --init --recursive


- name: Dependencies
run: |
sudo apt-get update
sudo apt-get install libtool
# hdf5
git clone https://github.com/HDFGroup/hdf5.git
# mpi
sudo apt-get install libopenmpi-dev
# zlib
sudo apt-get install zlib1g-dev
# python3
sudo apt-get install python3

- name: Installation
run: |
mydir="$PWD"
export HDF5_DIR=$mydir/hdf5/install
export ABT_DIR=$mydir/argobots
export VOL_DIR=$mydir

mkdir $HDF5_DIR
# Compile HDF5
cd hdf5
export HDF5_LIBTOOL=/usr/bin/libtoolize
./autogen.sh
./configure --prefix=$HDF5_DIR --enable-parallel --enable-threadsafe --enable-unsupported
make && make install

# Compile Argobots
cd $ABT_DIR
./autogen.sh
./configure --prefix=$ABT_DIR
make && make install

# Compile Asynchronous VOL connector
cd $VOL_DIR/src
tail -n 48 Makefile.summit > Makefile
make

- name: Compile and Test Vol-Async
run: |
# Compile vol-async tests
mydir="$PWD"
cd $mydir
cd test

# Set Environmental Variables
export H5_DIR=$mydir/hdf5
export VOL_DIR=$mydir/
export ABT_DIR=$mydir/argobots
export ASYNC_DIR=$mydir/src
export HDF5_DIR=$mydir/hdf5/install
export LD_LIBRARY_PATH=$VOL_DIR/src:$H5_DIR/install/lib:$ABT_DIR/lib:$LD_LIBRARY_PATH
export HDF5_PLUGIN_PATH="$VOL_DIR/src"
export HDF5_VOL_CONNECTOR="async under_vol=0;under_info={}"

# Makefile
tail -n 47 Makefile.summit > Makefile
export LD_PRELOAD=$mydir/argobots/lib/libabt.so
make

# Run serial and parallel tests
make check

# Run serial tests only
make check_serial

Binary file added docs/.DS_Store
Binary file not shown.
20 changes: 20 additions & 0 deletions docs/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Minimal makefile for Sphinx documentation
#

# You can set these variables from the command line, and also
# from the environment for the first two.
SPHINXOPTS ?=
SPHINXBUILD ?= sphinx-build
SOURCEDIR = source
BUILDDIR = build

# Put it first so that "make" without argument is like "make help".
help:
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)

.PHONY: help Makefile

# Catch-all target: route all unknown targets to Sphinx using the new
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
%: Makefile
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
35 changes: 35 additions & 0 deletions docs/make.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
@ECHO OFF

pushd %~dp0

REM Command file for Sphinx documentation

if "%SPHINXBUILD%" == "" (
set SPHINXBUILD=sphinx-build
)
set SOURCEDIR=source
set BUILDDIR=build

if "%1" == "" goto help

%SPHINXBUILD% >NUL 2>NUL
if errorlevel 9009 (
echo.
echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
echo.installed, then set the SPHINXBUILD environment variable to point
echo.to the full path of the 'sphinx-build' executable. Alternatively you
echo.may add the Sphinx directory to PATH.
echo.
echo.If you don't have Sphinx installed, grab it from
echo.http://sphinx-doc.org/
exit /b 1
)

%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
goto end

:help
%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%

:end
popd
56 changes: 56 additions & 0 deletions docs/source/conf.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
# Configuration file for the Sphinx documentation builder.
#
# This file only contains a selection of the most common options. For a full
# list see the documentation:
# https://www.sphinx-doc.org/en/master/usage/configuration.html

# -- Path setup --------------------------------------------------------------

# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
#
# import os
# import sys
# sys.path.insert(0, os.path.abspath('.'))


# -- Project information -----------------------------------------------------

project = 'HDF5 Asynchronous I/O VOL Connector'
copyright = '2021, Houjun Tang, Quincey Koziol, Suren Byna, John Mainzer, Tonglin Li'
author = 'Houjun Tang, Quincey Koziol, Suren Byna, John Mainzer, Tonglin Li'

# The full version, including alpha/beta/rc tags
release = '0.1'


# -- General configuration ---------------------------------------------------

# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = []

pygments_style = 'sphinx'

# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']

# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
# This pattern also affects html_static_path and html_extra_path.
exclude_patterns = []


# -- Options for HTML output -------------------------------------------------

# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
#
html_theme = 'sphinx_rtd_theme'

# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
html_static_path = ['_static']
18 changes: 18 additions & 0 deletions docs/source/copyright.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
Copyright
===================================

Asynchronous I/O VOL Connector (AsyncVOL) Copyright (c) 2020, The
Regents of the University of California, through Lawrence Berkeley
National Laboratory (subject to receipt of any required approvals from
the U.S. Dept. of Energy). All rights reserved.

If you have questions about your rights to use or distribute this software,
please contact Berkeley Lab's Intellectual Property Office at
IPO@lbl.gov.

NOTICE. This Software was developed under funding from the U.S. Department
of Energy and the U.S. Government consequently retains certain rights. As
such, the U.S. Government has been granted for itself and others acting on
its behalf a paid-up, nonexclusive, irrevocable, worldwide license in the
Software to reproduce, distribute copies to the public, prepare derivative
works, and perform publicly and display publicly, and to permit others to do so.
Loading