# Project to bring the codebase up to modern standards. No physics logic changes — tooling and infrastructure only. ## Branch - [x] Rename `master` → `main` on GitHub and update CI references ## Formatting & Style - [x] Add `.clang-format` config (based on LLVM or Google style, C11 mode) - [x] Run clang-format across all source files and commit ## Testing Infrastructure - [x] Rename `test` executable to `dedx_test` (conflicts with CTest reserved name) - [x] Move `enable_testing()` to root CMakeLists.txt - [x] Add `ctest --output-on-failure` step to GitHub Actions workflow - [x] Add clang-format workflow (separate `clang-format.yml`) - [x] Rewrite `test.c` as individually registered CTest cases (deleted — superseded by `test_*.c`) - [x] Remove `loadTest.c` and its 9 legacy `add_test` entries (superseded by `test_*.c`) - [x] Move existing install/consumer smoke test to CTest - [x] Expand test coverage ## CI/CD - [x] Add `ctest --test-dir build` step to GitHub Actions workflow - [x] Add clang-format check workflow - [x] Remove `continue-on-error: true` and valgrind step from ci.yml (once CI is green) - [x] Add clang-tidy or cppcheck static analysis step - [x] Consider adding a code coverage step (gcov + codecov.io) ## Code Quality - [-] Resolve 5 outstanding TODO/FIXME comments in source (wont fix, moved to #74) - [ ] Possible memory leak in `dedx.c` (`dedx_allocate_workspace`) - [ ] Broken path check in `dedx_file_access.c` - [ ] `ion_a` vs `ion_A` naming ambiguity in `dedx_tools.c` - [x] Audit `dedx_file_access.c` static 256-byte buffer for safety (fixed: `folder[512]`) - [-] Refactor global mutable `folder` into workspace/config struct (wont fix here, move to #70) ## CMake - [x] Bump `cmake_minimum_required` to 3.21 - [x] Use `target_include_directories` consistently instead of legacy `include_directories` - [x] Enable testing unconditionally via `enable_testing()` in root CMakeLists.txt - [x] Version derived from git tag via `git describe`, no more manual version bumping - [x] `dedx_config.h` generated to build dir, removed from git tracking - [x] `CMAKE_EXPORT_COMPILE_COMMANDS ON` (needed for clangd) - [x] Fixed `binary_table` build ordering with `add_dependencies` + `$<TARGET_FILE:dedx_build_bin>` - [x] Make binary table generation (`dedx_build_bin`) an opt-in option ## VS Code Integration - [x] Add `.vscode/tasks.json` (cmake configure, build, test tasks) - [x] Add `.vscode/settings.json` (clangd path, format-on-save) - [x] Add `.vscode/extensions.json` (recommend clangd, CMake Tools) - [x] Add `.vscode/launch.json` with working debug configuration - [x] Add `CMakePresets.json` for build presets ## Python Bindings - [x] Migrate from deprecated `distutils` to `pyproject.toml` + `setuptools` - [x] Test bindings on Python 3.12+ - [x] Add Python binding tests to CI ## Documentation - [x] Add Doxygen config and annotate public API headers (`dedx.h`, `dedx_wrappers.h`) - [x] Expand `README.md` (currently 3 lines) - [x] Remove dead Sourceforge URLs from docs ## Cleanup - [x] `/gui/` wxWidgets frontend — remove since it is unmaintained - [x] Update Sphinx doc theme (pydata-sphinx-theme 0.8.1 → current)
Project to bring the codebase up to modern standards.
No physics logic changes — tooling and infrastructure only.
Branch
master→mainon GitHub and update CI referencesFormatting & Style
.clang-formatconfig (based on LLVM or Google style, C11 mode)Testing Infrastructure
testexecutable todedx_test(conflicts with CTest reserved name)enable_testing()to root CMakeLists.txtctest --output-on-failurestep to GitHub Actions workflowclang-format.yml)test.cas individually registered CTest cases (deleted — superseded bytest_*.c)loadTest.cand its 9 legacyadd_testentries (superseded bytest_*.c)CI/CD
ctest --test-dir buildstep to GitHub Actions workflowcontinue-on-error: trueand valgrind step from ci.yml (once CI is green)Code Quality
dedx.c(dedx_allocate_workspace)dedx_file_access.cion_avsion_Anaming ambiguity indedx_tools.cdedx_file_access.cstatic 256-byte buffer for safety (fixed:folder[512])folderinto workspace/config struct (wont fix here, move to Refactor global mutable \folder #70)CMake
cmake_minimum_requiredto 3.21target_include_directoriesconsistently instead of legacyinclude_directoriesenable_testing()in root CMakeLists.txtgit describe, no more manual version bumpingdedx_config.hgenerated to build dir, removed from git trackingCMAKE_EXPORT_COMPILE_COMMANDS ON(needed for clangd)binary_tablebuild ordering withadd_dependencies+$<TARGET_FILE:dedx_build_bin>dedx_build_bin) an opt-in optionVS Code Integration
.vscode/tasks.json(cmake configure, build, test tasks).vscode/settings.json(clangd path, format-on-save).vscode/extensions.json(recommend clangd, CMake Tools).vscode/launch.jsonwith working debug configurationCMakePresets.jsonfor build presetsPython Bindings
distutilstopyproject.toml+setuptoolsDocumentation
dedx.h,dedx_wrappers.h)README.md(currently 3 lines)Cleanup
/gui/wxWidgets frontend — remove since it is unmaintained