Update shared files and make sure they stay in sync
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 48/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Quiet
- Tech stack
- cmake, cpp
- Domain
- build-system, testing
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.
Description
Over at arm64-assembly we have a templates directory that holds files shared by all exercises plus a script 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.
- Dominant language
- C++
- Stars
- 291
- Forks
- 244
- Avg merge
- 17m
- Merged PRs (30d)
- 1
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from exercism/cpp
-
Difficulty 4/5 3-5 days Newbie friendliness 35/100
-
Difficulty 4/5 3-5 days Newbie friendliness 45/100
-
Difficulty 4/5 3-5 days Newbie friendliness 35/100
-
Difficulty 4/5 3-5 days Newbie friendliness 35/100
-
Difficulty 4/5 3-5 days Newbie friendliness 35/100
Similar issues
-
AuTest Bug Tests
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
apache/trafficserver#13714 ·
-
bug build
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
facebookincubator/velox#19143 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
tenstorrent/tt-metal#57393 · 1 comment ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
objectionary/eo-graphs#74 ·