Skip to content

Conversation

@jmacheta
Copy link
Member

This pull request introduces several improvements and refactorings to the build system, CI workflows, and codebase for better maintainability, reproducibility, and clarity. Key changes include updates to CMake presets and workflow files for more consistent naming and configuration, improvements to version and commit ID handling, and enhancements to documentation and spell checking configuration.

Build system and configuration improvements:

  • Refactored CMakePresets.json to use consistent naming (e.g., native-gcc), updated build/test/install presets, and simplified compiler flags for better clarity and maintainability. [1] [2] [3] [4]
  • Updated src/CMakeLists.txt to use a new get_git_commit_id function from cmake/git_utils.cmake for robust commit ID retrieval, and changed version string definition to include commit ID (e.g., "1.2.3+commitid"). Also removed dependency on embetech::utils. [1] [2] [3]
  • Changed usage of VERSION file to VERSION.txt in CMake and install scripts for consistency. [1] [2]

Continuous Integration and workflow updates:

  • Updated GitHub Actions workflow files to use pinned action versions for reproducibility, switched to ubuntu-latest runners, and improved preset usage and artifact naming. Also added a scheduled CI run. [1] [2] [3]

Documentation and spell checking enhancements:

  • Improved Doxygen configuration in doc/CMakeLists.txt to use modern CMake syntax and clarified aliases. [1] [2]
  • Migrated and expanded spell checker configuration from .cspell.yaml to .cspell.yml, adding more words and ignore rules for compiler flags and defines. [1] [2]

Other notable changes:

  • Added a new LICENSE.md file with the MIT License.
  • Updated .clangd and .cmake-format for improved diagnostics and formatting. [1] [2] [3]
  • Removed the SemanticVersion struct and related API from ring_buffer.h, simplifying version retrieval to a string only. [1] [2]

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request implements comprehensive tooling improvements to enhance the build system, CI workflows, and code maintainability for the ring_buffer library. The changes focus on standardizing configurations, improving version management, removing external dependencies, and refactoring the core implementation for better code quality.

Key Changes:

  • Simplified dependency management: Removed dependency on embetech::utils library and the SemanticVersion API, streamlining the codebase to use string-based version reporting only
  • Enhanced version tracking: Introduced git_utils.cmake for robust Git commit ID retrieval and updated version string format to include commit information (e.g., "1.0.2+commitid")
  • CI/CD improvements: Pinned GitHub Actions to specific commit hashes for reproducibility, switched to ubuntu-latest runners, and added scheduled CI runs

Reviewed changes

Copilot reviewed 21 out of 23 changed files in this pull request and generated 10 comments.

Show a summary per file
File Description
src/ring_buffer.c Refactored null checking and simplified control flow; changed parameter naming
src/ring_buffer_version.c Removed SemanticVersion struct support; simplified to string-only version API
src/include/embetech/ring_buffer.h Removed SemanticVersion dependency and RingBuffer_GetVersion() function
src/CMakeLists.txt Integrated git_utils.cmake for commit ID retrieval; removed embetech::utils dependency
cmake/git_utils.cmake New utility function for retrieving Git commit IDs with configurable options
cmake/requirements.cmake Removed embeutils dependency; standardized CPMAddPackage casing
cmake/install.cmake Formatting updates for consistency
cmake/install_header_licenses.cmake Updated to use VERSION.txt with file(STRINGS)
doc/CMakeLists.txt Modernized Doxygen configuration with find_package approach
tests/CMakeLists.txt Removed workaround for googletest issue
CMakeLists.txt Changed VERSION file to VERSION.txt with file(STRINGS)
CMakePresets.json Renamed presets for consistency (native-gcc); updated to version 8; adjusted compiler flags
.github/workflows/on_push.yml Pinned action versions; switched to ubuntu-latest; updated preset references
.github/workflows/maintain_tags.yml Pinned action version; removed token parameter
.github/workflows/generate_artifacts.yml Pinned action versions; updated preset naming convention
.gitignore Changed .cache pattern from recursive to root-only
.cspell.yml Migrated from .yaml; expanded word list and ignore patterns
.cspell.yaml Removed (replaced by .cspell.yml)
.cmake-format Increased line width to 150; added CPMAddPackage command configuration
.clangd Added -Wall flag to compile options
LICENSE.md Added MIT License
VERSION.txt New file containing version number 1.0.2

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@jmacheta jmacheta merged commit 37cbc43 into main Dec 10, 2025
1 check passed
@jmacheta jmacheta deleted the unify_tooling branch December 10, 2025 22:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants