Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

trap-cards check: require a sample and an eval case for every trap

Open
#21 0 comments 0 reactions 0 assignees View on GitHub

@ian0318git is already working on this.

Since Oct 20, 2026.

  • #22 by @ian0318git — open

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
82/100
Issue type
Feature
Clarity
Clearly specified
Activity status
Active
Tech stack
c, cmake

Research direction

Read cmake/check-trap-cards.cmake lines 34–52 and the trap-cards test controls in CMakeLists.txt lines 204–236. Trace how fixture folders are found and how controls check failure messages, then run the documented CMake and CTest commands. Done means all 17 traps pass, missing samples and cases are reported by trap id, and the empty-samples control passes only on the new message.

Written by the indexing model from the issue text.

Description

enhancement good first issue

CONTRIBUTING.md says a trap is four pieces "and CI checks that they match". In fact, CI only matches cards with fixture folders. Nothing checks that a fixture also has samples/<id>/ and an eval case, so a trap PR that leaves those out still passes CI.

What to do

Give cmake/check-trap-cards.cmake the samples and evals folders (-DSAMPLES=, -DEVALS=). For every fixture folder, require samples/<id>/CMakeLists.txt, samples/<id>/src/main.c and plugins/sdl3-porter/evals/<id>/case.yaml, and report what's missing by trap id. Check in this direction only, because samples/bounce and the port-sample case have no fixture on purpose. Pass the new variables to every test that runs the script, and add a positive control that points SAMPLES at an empty folder and passes only on the new message.

Where to look

  • cmake/check-trap-cards.cmake lines 34-52
  • CMakeLists.txt lines 204-236: the trap-cards test and its controls
  • CONTRIBUTING.md lines 17-25: the four pieces

Done when

  • The check names each trap with a missing sample or case.
  • All 17 current traps pass.
  • The new control passes only on its message.

Testing it

cmake -S . -B build
ctest --test-dir build -C Debug -R trap-cards --output-on-failure
Dominant language
C
Stars
1
Forks
1
Avg merge
3m
Merged PRs (30d)
1

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from hazeliscoding/sdl3-porter

All issues in hazeliscoding/sdl3-porter

Similar issues

More C issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.