Skip to content

Commit 1425159

Browse files
authored
CPP-GL: version 2.0.0
- Changed the naming of graph and hypergraph structural tags from implementation to representation tags and moved them to dedicated `repr` namespaces - Removed the duplace group tags in the GL module - Updated the README.md and index.md documents - Added the documentation workflow - Added the version checking script
1 parent e838684 commit 1425159

90 files changed

Lines changed: 1403 additions & 1168 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/benchmarks.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ on:
1212

1313
jobs:
1414
build:
15-
name: Build and run benchmarks
15+
name: Build and Run Benchmarks (Smoke Test)
1616
runs-on: ubuntu-24.04
1717

1818
steps:
@@ -33,12 +33,12 @@ jobs:
3333
-DBUILD_BENCHMARKS=ON -DBENCH_INCLUDE_BGL=ON -DCMAKE_BUILD_TYPE=Release
3434
continue-on-error: false
3535

36-
- name: Build the benchmarks
36+
- name: Build the Benchmarks
3737
run: |
3838
cmake --build build_bench/ -j$(nproc)
3939
continue-on-error: false
4040

41-
- name: Execute the smoke test
41+
- name: Execute the Smoke Test
4242
run: |
4343
./build_bench/benchmarks/cpp-gl-bench \
4444
--benchmark_repetitions=1 --benchmark_display_aggregates_only=true \

.github/workflows/clang.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ on:
1212

1313
jobs:
1414
build:
15-
name: Build and run tests
15+
name: Build and Run Tests (Clang)
1616
runs-on: ubuntu-24.04
1717

1818
steps:
@@ -27,12 +27,12 @@ jobs:
2727
cmake -B build_clang -DBUILD_TESTS=ON -DCMAKE_CXX_COMPILER=$CXX -DCMAKE_C_COMPILER=$CC
2828
continue-on-error: false
2929

30-
- name: Build test executable
30+
- name: Build Tests
3131
run: |
3232
cmake --build build_clang/ -j$(nproc)
3333
continue-on-error: false
3434

35-
- name: Run tests
35+
- name: Run Tests
3636
run: |
3737
./build_clang/tests/gl
3838
./build_clang/tests/hgl
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
name: Documentation
2+
3+
on:
4+
pull_request:
5+
branches:
6+
- "*"
7+
push:
8+
tags:
9+
- "v*"
10+
11+
permissions:
12+
contents: write
13+
14+
jobs:
15+
build-and-deploy:
16+
name: Build & Deploy Documentation
17+
runs-on: ubuntu-24.04
18+
19+
steps:
20+
- name: Check out repository
21+
uses: actions/checkout@v4
22+
with:
23+
fetch-depth: 0
24+
submodules: recursive
25+
26+
- name: Set up Python
27+
uses: actions/setup-python@v5
28+
with:
29+
python-version: "3.14"
30+
31+
- name: Install system dependencies
32+
run: sudo apt-get update && sudo apt-get install doxygen -y
33+
34+
- name: Install Python dependencies (uv)
35+
run: |
36+
pip install uv
37+
uv sync
38+
39+
- name: Validate Internal Project Versions
40+
run: |
41+
VERSION=$(uv run python scripts/check_version.py)
42+
echo "project version = $VERSION"
43+
echo "VERSION=$VERSION" >> $GITHUB_ENV
44+
45+
- name: Validate Git Tag (Deploy Only)
46+
if: github.event_name == 'push'
47+
run: |
48+
VERSION_TAG="${GITHUB_REF_NAME}"
49+
echo "git version tag = $VERSION_TAG"
50+
if [[ "$VERSION_TAG" != "v$VERSION" ]]; then
51+
echo "Error: Tag mismatch: git version tag = $VERSION_TAG, project version: v$VERSION"
52+
exit 1
53+
fi
54+
55+
- name: Build Docs (PR Validation Only)
56+
if: github.event_name == 'pull_request'
57+
run: make build-docs
58+
59+
# See: https://api.github.com/users/github-actions%5Bbot%5D
60+
- name: Configure Git (Deploy Only)
61+
if: github.event_name == 'push'
62+
run: |
63+
git config --local user.name "github-actions[bot]"
64+
git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com"
65+
66+
- name: Determine if Latest Tag (Deploy Only)
67+
if: github.event_name == 'push'
68+
run: |
69+
CURRENT_VERSION="v${VERSION}"
70+
git fetch --tags --force
71+
ALL_TAGS=$(git tag | grep -E '^v[0-9]+\.[0-9]+\.[0-9]+$' | sort -V)
72+
LATEST_TAG=$(echo "$ALL_TAGS" | tail -n 1)
73+
74+
if [ "$CURRENT_VERSION" = "$LATEST_TAG" ]; then
75+
echo "DEPLOY_LATEST=true" >> $GITHUB_ENV
76+
else
77+
echo "DEPLOY_LATEST=false" >> $GITHUB_ENV
78+
fi
79+
80+
- name: Deploy with mike (Latest)
81+
if: github.event_name == 'push' && env.DEPLOY_LATEST == 'true'
82+
run: |
83+
make docs TAGS="--push --update-aliases v${VERSION} latest"
84+
uv run mike set-default --push latest
85+
86+
- name: Deploy with mike (Older Version)
87+
if: github.event_name == 'push' && env.DEPLOY_LATEST == 'false'
88+
run: make docs TAGS="--push v${VERSION}"

.github/workflows/format.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ jobs:
2525
- name: Set up python
2626
uses: actions/setup-python@v5
2727
with:
28-
python-version: "3.12"
28+
python-version: "3.14"
2929

3030
- name: Test formatting
3131
shell: bash

.github/workflows/gpp.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ on:
1212

1313
jobs:
1414
build:
15-
name: Build and run tests
15+
name: Build and Run Tests (G++)
1616
runs-on: ubuntu-24.04
1717

1818
steps:
@@ -27,12 +27,12 @@ jobs:
2727
cmake -B build_gcc -DBUILD_TESTS=ON -DCMAKE_CXX_COMPILER=$CXX -DCMAKE_C_COMPILER=$CC
2828
continue-on-error: false
2929

30-
- name: Build test executable
30+
- name: Build Tests
3131
run: |
3232
cmake --build build_gcc/ -j$(nproc)
3333
continue-on-error: false
3434

35-
- name: Run tests
35+
- name: Run Tests
3636
run: |
3737
./build_gcc/tests/gl
3838
./build_gcc/tests/hgl

.github/workflows/licence.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ on:
1111

1212
jobs:
1313
build:
14-
name: Test code formatting
14+
name: Test License Comments
1515
runs-on: ubuntu-24.04
1616

1717
steps:
@@ -23,7 +23,7 @@ jobs:
2323
with:
2424
python-version: "3.12"
2525

26-
- name: Test formatting
26+
- name: Validate Licence Comments
2727
shell: bash
2828
run: |
2929
python3 scripts/check_licence.py

Doxyfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1028,7 +1028,7 @@ EXCLUDE_PATTERNS = *.mk
10281028
# wildcard * is used, a substring. Examples: ANamespace, AClass,
10291029
# ANamespace::AClass, ANamespace::*Test
10301030

1031-
EXCLUDE_SYMBOLS = std doctest doctest_detail_test_suite_ns detail *::detail
1031+
EXCLUDE_SYMBOLS = std doctest doctest_detail_test_suite_ns detail *::detail impl *::impl
10321032

10331033
# The EXAMPLE_PATH tag can be used to specify one or more files or directories
10341034
# that contain example code fragments that are included (see the \include

Makefile

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,25 @@
11
# Default to 'dev' if TAGS is not specified on the command line
22
TAGS ?= dev
33

4-
.PHONY: docs serve-docs clean-docs clean
4+
.PHONY: docs build-docs serve-docs clean-docs clean
55

6-
# Example usage: `make docs TAGS="v2.0.0 latest --update-aliases"`
6+
# Target for CI Pull Requests: Just builds to verify everything works (no deployment)
7+
build-docs: clean-docs
8+
@echo "==> Building MkDocs documentation..."
9+
doxygen Doxyfile
10+
uv run python docs/scripts/gen_concept_docs.py --config docs/config/concepts.json --xml documentation/xml --out docs/cpp-gl
11+
uv run mkdocs build --strict
12+
13+
# Example usage: `make docs TAGS="v2.0.0 latest --update-aliases --push"`
714
docs: clean-docs
8-
@echo "==> Deploying MkDocs documentation locally via mike (Tags: $(TAGS))..."
15+
@echo "==> Deploying MkDocs documentation (Tags: $(TAGS))..."
916
doxygen Doxyfile
1017
uv run python docs/scripts/gen_concept_docs.py --config docs/config/concepts.json --xml documentation/xml --out docs/cpp-gl
1118
uv run mike deploy $(TAGS)
1219
@echo "==> Documentation deployed to local gh-pages branch."
1320

1421
serve-docs: docs
15-
@echo "==> Serving versioned MkDocs documentation locally via mike..."
22+
@echo "==> Serving versioned MkDocs documentation..."
1623
uv run mike serve
1724

1825
clean-docs:

0 commit comments

Comments
 (0)