Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
9b7fd0c
docs: count and document actual test suite size
Vanderhell May 10, 2026
02c7b16
chore: move release process docs to docs/internal/
Vanderhell May 10, 2026
fc2f1f6
chore: move community/governance files to .github/
Vanderhell May 10, 2026
7295c66
docs: consolidate overlapping product/profile/contract docs
Vanderhell May 10, 2026
498c1e5
docs: rewrite README for clarity and trust signals
Vanderhell May 10, 2026
c94cb29
docs: add EDITIONS.md clarifying loxdb vs loxdb_pro boundary
Vanderhell May 10, 2026
0868220
docs: add BENCHMARKS.md template for ESP32-S3 N16R8 results
Vanderhell May 10, 2026
ab90068
docs: add MAINTAINER_TODO.md for items requiring repo admin access
Vanderhell May 10, 2026
8bfb624
chore: add docs index and move maintainer TODO to docs/internal/
Vanderhell May 10, 2026
673ce60
ci: add coverage measurement and badge
Vanderhell May 10, 2026
80d6161
ci: add clang-tidy and cppcheck lanes (non-blocking)
Vanderhell May 10, 2026
36b049f
docs: update README test count phrasing
Vanderhell May 10, 2026
85bc349
tests: add libFuzzer harness scaffolding for WAL parser
Vanderhell May 10, 2026
0bcb475
ci: add nightly fuzzing job (non-blocking)
Vanderhell May 10, 2026
59caec5
build: add PlatformIO and Arduino library manifests
Vanderhell May 10, 2026
dd70a0f
docs: fix internal doc links after moves
Vanderhell May 10, 2026
acc753b
docs: clarify fuzzing is scaffolding-only
Vanderhell May 10, 2026
529356a
docs: expand README with build/test and hardware notes
Vanderhell May 10, 2026
1a1c569
ci: fix lcov exclude patterns for coverage job
Vanderhell May 10, 2026
cb07c4e
bench: add ESP32-S3 bench sketches and docs automation
Vanderhell May 11, 2026
7b6d036
bench(sd-stress): add admission preflight and fallback ladder
Vanderhell May 11, 2026
738c267
bench(sd-stress): add reinit command and safer init cleanup
Vanderhell May 11, 2026
ea9ad5c
scripts: improve SD stress bench logger (profile+reinit)
Vanderhell May 11, 2026
11e60fe
bench(sd-stress): fix admission typedef and error checks
Vanderhell May 11, 2026
4d1fd65
bench(sd-stress): move admission type to header for Arduino prototypes
Vanderhell May 11, 2026
f46a01e
docs(results): add SD stress run artifacts (2026-05-11)
Vanderhell May 11, 2026
59fec1f
bench(sd-stress): add SPDX header to bench_admission.h
Vanderhell May 11, 2026
aff45d8
docs: link first ESP32-S3 SD stress results in BENCHMARKS.md
Vanderhell May 11, 2026
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
19 changes: 19 additions & 0 deletions .clang-tidy
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
---
Checks: >-
-*,
clang-analyzer-*,
bugprone-*,
performance-*,
readability-*,
portability-*,
misc-*,
-readability-magic-numbers,
-readability-identifier-length,
-bugprone-narrowing-conversions,
-bugprone-easily-swappable-parameters
WarningsAsErrors: ''
HeaderFilterRegex: '^(include|src|port)/'
AnalyzeTemporaryDtors: false
FormatStyle: none
...

File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
45 changes: 45 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -96,3 +96,48 @@ jobs:
with:
name: static-analysis-style-report
path: docs/results/cppcheck_style_report.txt

clang-tidy:
runs-on: ubuntu-latest
continue-on-error: true
steps:
- uses: actions/checkout@v4
- name: Install clang-tidy
run: sudo apt-get update && sudo apt-get install -y clang-tidy
- name: Configure (compile_commands.json)
run: cmake -S . -B build/ci-clang-tidy-linux -DCMAKE_BUILD_TYPE=Debug -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
- name: Run clang-tidy (non-blocking)
run: |
clang-tidy -p build/ci-clang-tidy-linux \
src/*.c port/posix/*.c port/ram/*.c \
--quiet \
| tee clang-tidy-report.txt
- name: Upload clang-tidy report
if: always()
uses: actions/upload-artifact@v4
with:
name: clang-tidy-report
path: clang-tidy-report.txt

coverage-linux:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install lcov
run: sudo apt-get update && sudo apt-get install -y lcov
- name: Configure (coverage)
run: cmake --preset ci-coverage-linux
- name: Build (coverage)
run: cmake --build --preset ci-coverage-linux
- name: Test (coverage)
run: ctest --preset ci-coverage-linux
- name: Capture coverage (lcov)
run: |
lcov --capture --directory build/ci-coverage-linux --output-file coverage.info
lcov --remove coverage.info '*/build/*' '*/tests/*' --ignore-errors unused --output-file coverage.info
lcov --list coverage.info
- name: Upload coverage artifact
uses: actions/upload-artifact@v4
with:
name: coverage-lcov
path: coverage.info
30 changes: 30 additions & 0 deletions .github/workflows/nightly-fuzz.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: Nightly Fuzz

on:
schedule:
- cron: "0 2 * * *"
workflow_dispatch:

jobs:
fuzz-linux:
runs-on: ubuntu-latest
continue-on-error: true
steps:
- uses: actions/checkout@v4
- name: Install clang
run: sudo apt-get update && sudo apt-get install -y clang
- name: Build fuzz harnesses
run: bash tests/fuzz/build.sh
- name: Run fuzz_wal_parser (~10 min)
run: bash tests/fuzz/run_one.sh fuzz_wal_parser 600
- name: Upload fuzz artifacts (if any)
if: always()
uses: actions/upload-artifact@v4
with:
name: fuzz-artifacts
path: |
crash-*
leak-*
timeout-*
oom-*

20 changes: 20 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ cmake_minimum_required(VERSION 3.16)
project(loxdb VERSION 1.0.0 LANGUAGES C CXX)

include(GNUInstallDirs)
include(CMakePackageConfigHelpers)

set(CMAKE_C_STANDARD 99)
set(CMAKE_C_STANDARD_REQUIRED ON)
Expand Down Expand Up @@ -623,6 +624,25 @@ install(
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/loxdb
)

configure_package_config_file(
${CMAKE_CURRENT_SOURCE_DIR}/cmake/loxdbConfig.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/loxdbConfig.cmake
INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/loxdb
)

write_basic_package_version_file(
${CMAKE_CURRENT_BINARY_DIR}/loxdbConfigVersion.cmake
VERSION ${PROJECT_VERSION}
COMPATIBILITY SameMajorVersion
)

install(
FILES
${CMAKE_CURRENT_BINARY_DIR}/loxdbConfig.cmake
${CMAKE_CURRENT_BINARY_DIR}/loxdbConfigVersion.cmake
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/loxdb
)

if(LOX_BUILD_TOOLS)
if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/tools/lox_verify.c")
add_executable(lox_verify
Expand Down
29 changes: 29 additions & 0 deletions CMakePresets.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,22 @@
"LOX_FS_MATRIX_LONG_MAX_MS": "15000"
}
},
{
"name": "ci-coverage-linux",
"displayName": "CI Coverage Linux",
"binaryDir": "${sourceDir}/build/ci-coverage-linux",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug",
"CMAKE_C_FLAGS_DEBUG": "-O0 -g --coverage",
"CMAKE_CXX_FLAGS_DEBUG": "-O0 -g --coverage",
"CMAKE_EXE_LINKER_FLAGS_DEBUG": "--coverage",
"CMAKE_SHARED_LINKER_FLAGS_DEBUG": "--coverage",
"LOX_MANAGED_STRESS_SMOKE_MAX_MS": "3000",
"LOX_MANAGED_STRESS_LONG_MAX_MS": "12000",
"LOX_FS_MATRIX_SMOKE_MAX_MS": "3500",
"LOX_FS_MATRIX_LONG_MAX_MS": "15000"
}
},
{
"name": "ci-debug-windows",
"displayName": "CI Debug Windows",
Expand Down Expand Up @@ -106,6 +122,11 @@
"configurePreset": "ci-debug-linux",
"configuration": "Debug"
},
{
"name": "ci-coverage-linux",
"configurePreset": "ci-coverage-linux",
"configuration": "Debug"
},
{
"name": "ci-debug-windows",
"configurePreset": "ci-debug-windows",
Expand Down Expand Up @@ -146,6 +167,14 @@
"outputOnFailure": true
}
},
{
"name": "ci-coverage-linux",
"configurePreset": "ci-coverage-linux",
"configuration": "Debug",
"output": {
"outputOnFailure": true
}
},
{
"name": "ci-debug-windows",
"configurePreset": "ci-debug-windows",
Expand Down
Loading
Loading