Skip to content

Commit

Permalink
Merge pull request #1 from whitemech/setup
Browse files Browse the repository at this point in the history
Set up project.
  • Loading branch information
Shufang-Zhu committed Jul 12, 2021
2 parents 10f04db + 8079744 commit 8212620
Show file tree
Hide file tree
Showing 83 changed files with 7,229 additions and 2 deletions.
127 changes: 127 additions & 0 deletions .clang-format
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
---
Language: Cpp
# BasedOnStyle: LLVM
AccessModifierOffset: -2
AlignAfterOpenBracket: Align
AlignConsecutiveMacros: false
AlignConsecutiveAssignments: false
AlignConsecutiveDeclarations: false
AlignEscapedNewlines: Right
AlignOperands: true
AlignTrailingComments: true
AllowAllArgumentsOnNextLine: true
AllowAllConstructorInitializersOnNextLine: true
AllowAllParametersOfDeclarationOnNextLine: true
AllowShortBlocksOnASingleLine: false
AllowShortCaseLabelsOnASingleLine: false
AllowShortFunctionsOnASingleLine: All
AllowShortLambdasOnASingleLine: All
AllowShortIfStatementsOnASingleLine: Never
AllowShortLoopsOnASingleLine: false
AlwaysBreakAfterDefinitionReturnType: None
AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: false
AlwaysBreakTemplateDeclarations: MultiLine
BinPackArguments: true
BinPackParameters: true
BraceWrapping:
AfterCaseLabel: false
AfterClass: false
AfterControlStatement: false
AfterEnum: false
AfterFunction: false
AfterNamespace: false
AfterObjCDeclaration: false
AfterStruct: false
AfterUnion: false
AfterExternBlock: false
BeforeCatch: false
BeforeElse: false
IndentBraces: false
SplitEmptyFunction: true
SplitEmptyRecord: true
SplitEmptyNamespace: true
BreakBeforeBinaryOperators: None
BreakBeforeBraces: Attach
BreakBeforeInheritanceComma: false
BreakInheritanceList: BeforeColon
BreakBeforeTernaryOperators: true
BreakConstructorInitializersBeforeComma: false
BreakConstructorInitializers: BeforeColon
BreakAfterJavaFieldAnnotations: false
BreakStringLiterals: true
ColumnLimit: 80
CommentPragmas: '^ IWYU pragma:'
CompactNamespaces: false
ConstructorInitializerAllOnOneLineOrOnePerLine: false
ConstructorInitializerIndentWidth: 4
ContinuationIndentWidth: 4
Cpp11BracedListStyle: true
DerivePointerAlignment: false
DisableFormat: false
ExperimentalAutoDetectBinPacking: false
FixNamespaceComments: true
ForEachMacros:
- foreach
- Q_FOREACH
- BOOST_FOREACH
IncludeBlocks: Preserve
IncludeCategories:
- Regex: '^"(llvm|llvm-c|clang|clang-c)/'
Priority: 2
- Regex: '^(<|"(gtest|gmock|isl|json)/)'
Priority: 3
- Regex: '.*'
Priority: 1
IncludeIsMainRegex: '(Test)?$'
IndentCaseLabels: false
IndentPPDirectives: None
IndentWidth: 2
IndentWrappedFunctionNames: false
JavaScriptQuotes: Leave
JavaScriptWrapImports: true
KeepEmptyLinesAtTheStartOfBlocks: true
MacroBlockBegin: ''
MacroBlockEnd: ''
MaxEmptyLinesToKeep: 1
NamespaceIndentation: None
ObjCBinPackProtocolList: Auto
ObjCBlockIndentWidth: 2
ObjCSpaceAfterProperty: false
ObjCSpaceBeforeProtocolList: true
PenaltyBreakAssignment: 2
PenaltyBreakBeforeFirstCallParameter: 19
PenaltyBreakComment: 300
PenaltyBreakFirstLessLess: 120
PenaltyBreakString: 1000
PenaltyBreakTemplateDeclaration: 10
PenaltyExcessCharacter: 1000000
PenaltyReturnTypeOnItsOwnLine: 60
PointerAlignment: Left
ReflowComments: true
SortIncludes: true
SortUsingDeclarations: true
SpaceAfterCStyleCast: false
SpaceAfterLogicalNot: false
SpaceAfterTemplateKeyword: true
SpaceBeforeAssignmentOperators: true
SpaceBeforeCpp11BracedList: false
SpaceBeforeCtorInitializerColon: true
SpaceBeforeInheritanceColon: true
SpaceBeforeParens: ControlStatements
SpaceBeforeRangeBasedForLoopColon: true
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 1
SpacesInAngles: false
SpacesInContainerLiterals: true
SpacesInCStyleCastParentheses: false
SpacesInParentheses: false
SpacesInSquareBrackets: false
Standard: Cpp11
StatementMacros:
- Q_UNUSED
- QT_REQUIRE_VERSION
TabWidth: 8
UseTab: Never
...

2 changes: 2 additions & 0 deletions .clang-format-ignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# ignore third_party code from clang-format checks
vendor/*
38 changes: 38 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: ''
assignees: ''

---

**Describe the bug**
A clear and concise description of what the bug is.

**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error

**Expected behavior**
A clear and concise description of what you expected to happen.

**Screenshots**
If applicable, add screenshots to help explain your problem.

**Desktop (please complete the following information):**
- OS: [e.g. iOS]
- Browser [e.g. chrome, safari]
- Version [e.g. 22]

**Smartphone (please complete the following information):**
- Device: [e.g. iPhone6]
- OS: [e.g. iOS8.1]
- Browser [e.g. stock browser, safari]
- Version [e.g. 22]

**Additional context**
Add any other context about the problem here.
10 changes: 10 additions & 0 deletions .github/ISSUE_TEMPLATE/custom.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
name: Custom issue template
about: Describe this issue template's purpose here.
title: ''
labels: ''
assignees: ''

---


20 changes: 20 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: ''
assignees: ''

---

**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

**Describe the solution you'd like**
A clear and concise description of what you want to happen.

**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.

**Additional context**
Add any other context or screenshots about the feature request here.
12 changes: 12 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
## Types of changes

What types of changes does your code introduce? Put an `x` in all the boxes that apply:
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to change)
- [ ] I have read the **CONTRIBUTING** document.
- [ ] My code follows the code style of this project.
- [ ] My change requires a change to the documentation.
- [ ] I have updated the documentation accordingly.
- [ ] I have added tests to cover my changes.
- [ ] All new and existing tests passed.
26 changes: 26 additions & 0 deletions .github/release_pr.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
## Release summary

Version number: [e.g. 1.0.1]

## Release details

Describe in short the main changes with the new release.

## Checklist

_Put an `x` in the boxes that apply._

- [ ] I have read the [CONTRIBUTING](../main/CONTRIBUTING.md) doc
- [ ] I am making a pull request against the `main` branch (left side), from `develop`
- [ ] I've updated the dependencies versions to the latest, wherever is possible.
- [ ] Lint and unit tests pass locally.
- [ ] I built the documentation and updated it with the latest changes
- [ ] I've added an item in `HISTORY.md` for this release
- [ ] I bumped the version number in the `CMakeLists.txt` file.
- [ ] I updated the Docker images and published on Docker Hub.
- [ ] After merging the PR, I'll tag the repo with `v${VERSION_NUMVER}` (e.g. `v0.1.2`)


## Further comments

Write here any other comment about the release, if any.
131 changes: 131 additions & 0 deletions .github/workflows/build_cmake.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,131 @@
#
# Three jobs:
# - lint: check linting
# - build: make a build for all the targets
# - test: run tests

name: Cynthia CI pipeline

on:
push:
branches:
- develop
- main
pull_request:

jobs:
lint:
continue-on-error: false
runs-on: ubuntu-20.04
timeout-minutes: 10
env:
DEBIAN_FRONTEND: noninteractive
steps:
- uses: actions/checkout@v2
with:
submodules: recursive
- name: Install dependencies
run: |
sudo apt-get install -y clang-format-9
- name: Check File Headers
run: python3 ./scripts/check_copyright_notice.py
- name: Check clang-format
run: ./scripts/check-clang-format.sh

# Test that the build of all the targets works.
build:
strategy:
matrix:
os: [ubuntu-20.04] # TODO include macos-latest, windows-latest
compiler: [g++-9]

continue-on-error: true
needs: lint
runs-on: ${{ matrix.os }}
timeout-minutes: 60
env:
DEBIAN_FRONTEND: noninteractive
steps:
- uses: actions/checkout@v2
with:
submodules: recursive
- name: Install tools
run: |
sudo apt-get update
sudo apt-get install -y clang-tidy-9
sudo apt-get install -y wget
# install flex/bison
sudo apt-get purge -y flex
sudo apt-get purge -y bison
sudo apt-get install -y flex bison
sudo apt-get autoremove
sudo python3 -m pip install gcovr
# - name: Check clang-tidy
# run: ./scripts/check-clang-tidy.sh
# - name: Install dependencies
# run: sudo ./scripts/_ci-install-dependencies-ubuntu.sh
- name: Configure CMake
env:
CXX: ${{ matrix.compiler }}
run: ./scripts/_ci-configure.sh
- name: Build all
run: cd build && VERBOSE=1 make -j
# - name: Build app
# run: cd build && VERBOSE=1 make cynthia-app -j
# - name: Build benchmarks
# run: cd build && VERBOSE=1 make lydiaBench -j

# Build and run the tests.
test:
strategy:
matrix:
os: [ ubuntu-20.04 ] # TODO include macos-latest, windows-latest
compiler: [ g++-9 ]

continue-on-error: false
needs: lint
runs-on: ${{ matrix.os }}
timeout-minutes: 60
env:
DEBIAN_FRONTEND: noninteractive
steps:
- uses: actions/checkout@v2
with:
submodules: recursive
- name: Install tools
run: |
sudo apt-get update
sudo apt-get install -y clang-tidy-9
sudo apt-get install -y wget git cmake
# install flex/bison
sudo apt-get purge -y flex
sudo apt-get purge -y bison
sudo apt-get install -y flex bison
sudo apt-get autoremove
sudo apt-get install -y graphviz libgraphviz-dev
sudo python3 -m pip install gcovr
# download Codecov uploader script
curl -Os https://uploader.codecov.io/latest/linux/codecov
chmod +x codecov
./codecov -t ${{ secrets.CODECOV_TOKEN }}
# - name: Install dependencies
# run: sudo ./scripts/_ci-install-dependencies-ubuntu.sh
- name: Configure CMake
env:
CXX: ${{ matrix.compiler }}
run: |
echo "Configuring tests"
./scripts/_ci-configure.sh
- name: Run tests for module "utils"
run: ./scripts/_ci-test.sh utils "${{ secrets.CODECOV_TOKEN }}"
- name: Run tests for module "logic"
run: ./scripts/_ci-test.sh logic "${{ secrets.CODECOV_TOKEN }}"
- name: Run tests for module "parser"
run: ./scripts/_ci-test.sh parser "${{ secrets.CODECOV_TOKEN }}"
- name: Run tests for module "core"
run: ./scripts/_ci-test.sh core "${{ secrets.CODECOV_TOKEN }}"
Loading

0 comments on commit 8212620

Please sign in to comment.