Conversation
Co-authored-by: v1bh475u <152148244+v1bh475u@users.noreply.github.com>
Co-authored-by: v1bh475u <152148244+v1bh475u@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
This PR completes the repository “finish” layer by aligning CI, packaging, and contributor docs around a single CMake build/test/package workflow, and by adding basic project/package metadata for releases.
Changes:
- Hardened the Ubuntu GitHub Actions workflow (scoped triggers, least-privilege permissions) and added CPack packaging + artifact upload.
- Added CMake
project()metadata (version/description) and enabled CPack TGZ generation. - Updated README and added
docs/BUILD.mdto document the CI-aligned local build/test/package commands.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 4 comments.
| File | Description |
|---|---|
docs/BUILD.md |
Adds local prerequisites + CI-aligned build/test/package instructions. |
README.md |
Updates workflow badge and provides quickstart build/test/package commands. |
CMakeLists.txt |
Adds project metadata and CPack configuration for TGZ packaging. |
.github/workflows/ubuntu.yml |
Tightens CI triggers/permissions; uses canonical CMake steps; runs CPack and uploads TGZ artifacts. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
|
||
| set(CPACK_PACKAGE_NAME ${PROJECT_NAME}) | ||
| set(CPACK_PACKAGE_VERSION ${PROJECT_VERSION}) | ||
| set(CPACK_PACKAGE_DESCRIPTION_SUMMARY ${PROJECT_DESCRIPTION}) |
There was a problem hiding this comment.
PROJECT_DESCRIPTION contains spaces, and unquoted expansion in set(CPACK_PACKAGE_DESCRIPTION_SUMMARY ${PROJECT_DESCRIPTION}) will turn it into a CMake list (semicolon-separated words), which can show up incorrectly in package metadata. Quote the value when assigning to the CPack variable.
| set(CPACK_PACKAGE_DESCRIPTION_SUMMARY ${PROJECT_DESCRIPTION}) | |
| set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "${PROJECT_DESCRIPTION}") |
| - `protobuf-compiler` | ||
| - `libprotobuf-dev` |
There was a problem hiding this comment.
The build requires a specific Protobuf version (find_package(Protobuf 3.21 EXACT ...) in the root CMake). The prerequisites list only names packages, which can lead to confusing failures on distros that ship a different Protobuf version. Consider documenting the required Protobuf version (or relaxing the CMake version constraint if any 3.21+ works).
| - `protobuf-compiler` | |
| - `libprotobuf-dev` | |
| - `protobuf-compiler` (Protobuf 3.21 **exactly**, to match `find_package(Protobuf 3.21 EXACT ...)`) | |
| - `libprotobuf-dev` (Protobuf 3.21 **exactly**) |
| cmake_minimum_required(VERSION 3.5 FATAL_ERROR) | ||
| project(fenris LANGUAGES CXX) | ||
| project( | ||
| fenris | ||
| VERSION 0.1.0 | ||
| DESCRIPTION "Fast Encrypted Networked Robust Information Storage" | ||
| LANGUAGES CXX | ||
| ) |
There was a problem hiding this comment.
project(... DESCRIPTION ...) requires a newer CMake than 3.5. With cmake_minimum_required(VERSION 3.5), configuration can fail on systems that actually use 3.5–3.8. Either bump the minimum required CMake version to one that supports DESCRIPTION, or remove DESCRIPTION and set PROJECT_DESCRIPTION/CPack summary another way.
Co-authored-by: v1bh475u <152148244+v1bh475u@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This updates the branch with the concrete follow-ups requested in PR review: tighten workflow permissions for artifact publishing, correct CPack metadata handling, and align docs with the enforced Protobuf version constraint. Changes are intentionally minimal and scoped to the review comments.
CMake packaging metadata
3.9to match use ofproject(... DESCRIPTION ...).PROJECT_DESCRIPTION(quoted expansion).GitHub Actions workflow
actions: writeat job permissions level soactions/upload-artifactcan publish package artifacts while keepingcontents: read.Build documentation
docs/BUILD.mdto explicitly call out Protobuf 3.21 exact forprotobuf-compilerandlibprotobuf-dev, matchingfind_package(Protobuf 3.21 EXACT ...).💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.