Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
6 changes: 3 additions & 3 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
version: 2
updates:
- package-ecosystem: 'github-actions'
directory: '/'
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: 'monthly'
interval: "monthly"
89 changes: 74 additions & 15 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,36 +1,95 @@
name: CI

on:
# We run CI on pushes to the main branch
push:
branches: [ main ]
branches:
- main
# and on all pull requests to the main branch
pull_request:
branches: [ main ]
branches:
- main
# as well as upon manual triggers through the 'Actions' tab of the Github UI
workflow_dispatch:

jobs:
build-and-test:
name: Testing on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
name: Testing on ${{matrix.os}}
runs-on: ${{matrix.os}}
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]

steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6

- name: make build directory
run: cmake -E make_directory ${{runner.workspace}}/build

- name: configure cmake
- name: Install Doxygen
uses: ssciwr/doxygen-install@v1

- name: Make build directory
run: cmake -E make_directory ${{ github.workspace }}/build

- name: Configure cmake
shell: bash
working-directory: ${{ github.workspace }}/build
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=Debug -Dyour-project_BUILD_TESTING=ON -Dyour-project_BUILD_DOCS=OFF -Dyour-project_BUILD_PYTHON=OFF

- name: Build
shell: bash
working-directory: ${{ github.workspace }}/build
run: cmake --build .

- name: Run tests
shell: bash
working-directory: ${{ github.workspace }}/build
run: ctest


coverage-test:
name: Coverage Testing
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v6


- name: Install LCov
run: |
sudo apt-get install -y lcov

- name: Install Doxygen
uses: ssciwr/doxygen-install@v1


- name: Create cmake build directory
run: cmake -E make_directory ${{ github.workspace }}/build

- name: Configure cmake
shell: bash
working-directory: ${{runner.workspace}}/build
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=Debug
working-directory: ${{ github.workspace }}/build
run: |
cmake $GITHUB_WORKSPACE -DCMAKE_CXX_FLAGS="--coverage -O0 -g" -Dyour-project_BUILD_TESTING=ON -DCMAKE_EXE_LINKER_FLAGS="--coverage" -Dyour-project_BUILD_DOCS=OFF

- name: build
- name: Build
shell: bash
working-directory: ${{runner.workspace}}/build
working-directory: ${{ github.workspace }}/build
run: cmake --build .

- name: run tests

- name: Run tests
shell: bash
working-directory: ${{runner.workspace}}/build
run: ctest --output-on-failure
working-directory: ${{ github.workspace }}/build
run: ctest

- name: Collect coverage report
shell: bash
working-directory: ${{ github.workspace }}
run: |
lcov --directory ./build/src --capture --output-file coverage.info --ignore-errors mismatch,unused --exclude '*/catch2/*'

- name: Upload C++ coverage to Codecov
uses: codecov/codecov-action@v5
with:
fail_ci_if_error: true
files: ${{github.workspace}}/coverage.info
142 changes: 142 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
# The scikit-build build directory
_skbuild

# Prerequisites
*.d

Expand Down Expand Up @@ -30,3 +33,142 @@
*.exe
*.out
*.app

# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class

# C extensions
*.so

# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST

# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/
cover/

# Translations
*.mo
*.pot

# Django stuff:
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal

# Flask stuff:
instance/
.webassets-cache

# Scrapy stuff:
.scrapy

# Sphinx documentation
docs/_build/

# PyBuilder
.pybuilder/
target/

# Jupyter Notebook
.ipynb_checkpoints

# IPython
profile_default/
ipython_config.py

# pyenv
# For a library or package, you might want to ignore these files since the code is
# intended to run in multiple environments; otherwise, check them in:
# .python-version

# pipenv
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
# However, in case of collaboration, if having platform-specific dependencies or dependencies
# having no cross-platform support, pipenv may install dependencies that don't work, or not
# install all needed dependencies.
#Pipfile.lock

# PEP 582; used by e.g. github.com/David-OConnor/pyflow
__pypackages__/

# Celery stuff
celerybeat-schedule
celerybeat.pid

# SageMath parsed files
*.sage.py

# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/

# Spyder project settings
.spyderproject
.spyproject

# Rope project settings
.ropeproject

# mkdocs documentation
/site

# mypy
.mypy_cache/
.dmypy.json
dmypy.json

# Pyre type checker
.pyre/

# pytype static type analyzer
.pytype/

# Cython debug symbols
cython_debug/
19 changes: 19 additions & 0 deletions .readthedocs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
version: 2

sphinx:
configuration: doc/conf.py

formats: all

submodules:
include: all
recursive: true

build:
os: ubuntu-24.04
tools:
python: "3.12"

python:
install:
- requirements: doc/requirements-rtd.txt
18 changes: 18 additions & 0 deletions CITATION.cff
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
cff-version: 1.2.0
message: "If you use this software, please cite it as below."
title: "Your Project"
abstract: "This is an awesome project. It does many things."
keywords:
- keyword1
- keyword2
- keyword3
authors:
- name: "Your Name"
orcid: "https://orcid.org/0000-0000-0000-0000"
version: 0.0.1
date-released: "2026-02-02"
identifiers:
- description: This is a collection of archived snapshots of this project.
type: doi
value: "10.5281/zenodo.123456"
license: MIT
Loading