exercism / exercism/cpp

Update shared files and make sure they stay in sync

Open
#1,029 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
290
Forks
244
PR merge metrics
No merged PRs in 30d

Description

Over at arm64-assembly we have a [templates](https://github.com/exercism/arm64-assembly/blob/main/templates) directory that holds files shared by all exercises plus a [script](https://github.com/exercism/arm64-assembly/blob/main/bin/update-from-templates) that synchronizes all exercises with the contents of that directory. This way we have a single source of truth in `templates`, the sync to all exercises happens automatically. By having the script return a non-zero exit code if it made any changes, we can also use that in a pre-commit check in CI.

We should setup something similar here as well and also use that chance to upgrade Catch2 and CMake scripts.

Note: Not having to copy files in the first place, but instead referencing a single source of truth wherever it is needed, would obviously be the much cleaner solution here, but due to the way the Exercism downloader works, for now exercises need to be self-contained.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by inspecting the repository's shared exercise files and CMake scripts, then compare the referenced templates directory and bin/update-from-templates script in arm64-assembly. The work is done when a single source of truth can synchronize all exercises, the sync script returns non-zero after changes for a pre-commit check, and Catch2 and CMake scripts are upgraded.

Written by the indexing model from the issue text.

Assessment

Tech stack
cmake, cpp
Domain
build-system, testing
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.