Add contrib dependency to all exercises#245
Conversation
Add `depends = contrib` to every exercise .ipkg file, giving students access to libraries like Data.Linear.Array for linear-type solutions. Since hello-world.ipkg is the template used by bin/add-practice-exercise, future exercises will inherit this dependency automatically. Depends on exercism/idris-test-runner#41. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
Hello. Thanks for opening a PR on Exercism 🙂 We ask that all changes to Exercism are discussed on our Community Forum before being opened on GitHub. To enforce this, we automatically close all PRs that are submitted. That doesn't mean your PR is rejected but that we want the initial discussion about it to happen on our forum where a wide range of key contributors across the Exercism ecosystem can weigh in. You can use this link to copy this into a new topic on the forum. If we decide the PR is appropriate, we'll reopen it and continue with it, so please don't delete your local branch. If you're interested in learning more about this auto-responder, please read this blog post. Note: If this PR has been pre-approved, please link back to this PR on the forum thread and a maintainer or staff member will reopen it. |
There was a problem hiding this comment.
Pull request overview
Adds the contrib Idris 2 package as an explicit dependency for all practice exercise packages, enabling exercises/solutions to use libraries such as Data.Linear.Array without additional per-exercise setup.
Changes:
- Add
depends = contribto every practice exercise’s.ipkg. - Update the
hello-worldexercise package template so newly generated exercises inherit the dependency.
Reviewed changes
Copilot reviewed 57 out of 57 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| exercises/practice/accumulate/accumulate.ipkg | Add contrib as a build dependency for the exercise package. |
| exercises/practice/all-your-base/all-your-base.ipkg | Add contrib as a build dependency for the exercise package. |
| exercises/practice/armstrong-numbers/armstrong-numbers.ipkg | Add contrib as a build dependency for the exercise package. |
| exercises/practice/atbash-cipher/atbash-cipher.ipkg | Add contrib as a build dependency for the exercise package. |
| exercises/practice/binary-search/binary-search.ipkg | Add contrib as a build dependency for the exercise package. |
| exercises/practice/bob/bob.ipkg | Add contrib as a build dependency for the exercise package. |
| exercises/practice/book-store/book-store.ipkg | Add contrib as a build dependency for the exercise package. |
| exercises/practice/collatz-conjecture/collatz-conjecture.ipkg | Add contrib as a build dependency for the exercise package. |
| exercises/practice/darts/darts.ipkg | Add contrib as a build dependency for the exercise package. |
| exercises/practice/difference-of-squares/difference-of-squares.ipkg | Add contrib as a build dependency for the exercise package. |
| exercises/practice/dominoes/dominoes.ipkg | Add contrib as a build dependency for the exercise package. |
| exercises/practice/eliuds-eggs/eliuds-eggs.ipkg | Add contrib as a build dependency for the exercise package. |
| exercises/practice/flatten-array/flatten-array.ipkg | Add contrib as a build dependency for the exercise package. |
| exercises/practice/game-of-life/game-of-life.ipkg | Add contrib as a build dependency for the exercise package. |
| exercises/practice/grains/grains.ipkg | Add contrib as a build dependency for the exercise package. |
| exercises/practice/hamming/hamming.ipkg | Add contrib as a build dependency for the exercise package. |
| exercises/practice/hello-world/hello-world.ipkg | Add contrib as a build dependency for the exercise package (also serves as template). |
| exercises/practice/isbn-verifier/isbn-verifier.ipkg | Add contrib as a build dependency for the exercise package. |
| exercises/practice/isogram/isogram.ipkg | Add contrib as a build dependency for the exercise package. |
| exercises/practice/kindergarten-garden/kindergarten-garden.ipkg | Add contrib as a build dependency for the exercise package. |
| exercises/practice/knapsack/knapsack.ipkg | Add contrib as a build dependency for the exercise package. |
| exercises/practice/largest-series-product/largest-series-product.ipkg | Add contrib as a build dependency for the exercise package. |
| exercises/practice/leap/leap.ipkg | Add contrib as a build dependency for the exercise package. |
| exercises/practice/lens-person/lens-person.ipkg | Add contrib as a build dependency for the exercise package. |
| exercises/practice/line-up/line-up.ipkg | Add contrib as a build dependency for the exercise package. |
| exercises/practice/list-ops/list-ops.ipkg | Add contrib as a build dependency for the exercise package. |
| exercises/practice/luhn/luhn.ipkg | Add contrib as a build dependency for the exercise package. |
| exercises/practice/matching-brackets/matching-brackets.ipkg | Add contrib as a build dependency for the exercise package. |
| exercises/practice/meetup/meetup.ipkg | Add contrib as a build dependency for the exercise package. |
| exercises/practice/micro-blog/micro-blog.ipkg | Add contrib as a build dependency for the exercise package. |
| exercises/practice/nth-prime/nth-prime.ipkg | Add contrib as a build dependency for the exercise package. |
| exercises/practice/nucleotide-count/nucleotide-count.ipkg | Add contrib as a build dependency for the exercise package. |
| exercises/practice/pangram/pangram.ipkg | Add contrib as a build dependency for the exercise package. |
| exercises/practice/perfect-numbers/perfect-numbers.ipkg | Add contrib as a build dependency for the exercise package. |
| exercises/practice/phone-number/phone-number.ipkg | Add contrib as a build dependency for the exercise package. |
| exercises/practice/prime-factors/prime-factors.ipkg | Add contrib as a build dependency for the exercise package. |
| exercises/practice/pythagorean-triplet/pythagorean-triplet.ipkg | Add contrib as a build dependency for the exercise package. |
| exercises/practice/raindrops/raindrops.ipkg | Add contrib as a build dependency for the exercise package. |
| exercises/practice/resistor-color/resistor-color.ipkg | Add contrib as a build dependency for the exercise package. |
| exercises/practice/resistor-color-duo/resistor-color-duo.ipkg | Add contrib as a build dependency for the exercise package. |
| exercises/practice/resistor-color-trio/resistor-color-trio.ipkg | Add contrib as a build dependency for the exercise package. |
| exercises/practice/reverse-string/reverse-string.ipkg | Add contrib as a build dependency for the exercise package. |
| exercises/practice/rna-transcription/rna-transcription.ipkg | Add contrib as a build dependency for the exercise package. |
| exercises/practice/robot-simulator/robot-simulator.ipkg | Add contrib as a build dependency for the exercise package. |
| exercises/practice/roman-numerals/roman-numerals.ipkg | Add contrib as a build dependency for the exercise package. |
| exercises/practice/rotational-cipher/rotational-cipher.ipkg | Add contrib as a build dependency for the exercise package. |
| exercises/practice/run-length-encoding/run-length-encoding.ipkg | Add contrib as a build dependency for the exercise package. |
| exercises/practice/satellite/satellite.ipkg | Add contrib as a build dependency for the exercise package. |
| exercises/practice/scrabble-score/scrabble-score.ipkg | Add contrib as a build dependency for the exercise package. |
| exercises/practice/secret-handshake/secret-handshake.ipkg | Add contrib as a build dependency for the exercise package. |
| exercises/practice/sieve/sieve.ipkg | Add contrib as a build dependency for the exercise package. |
| exercises/practice/space-age/space-age.ipkg | Add contrib as a build dependency for the exercise package. |
| exercises/practice/square-root/square-root.ipkg | Add contrib as a build dependency for the exercise package. |
| exercises/practice/sum-of-multiples/sum-of-multiples.ipkg | Add contrib as a build dependency for the exercise package. |
| exercises/practice/triangle/triangle.ipkg | Add contrib as a build dependency for the exercise package. |
| exercises/practice/two-fer/two-fer.ipkg | Add contrib as a build dependency for the exercise package. |
| exercises/practice/zebra-puzzle/zebra-puzzle.ipkg | Add contrib as a build dependency for the exercise package. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
lgtm |
Summary
depends = contribto all 57 exercise.ipkgfileshello-world.ipkgis the template used bybin/add-practice-exercise, future exercises will inherit this dependency automaticallyMotivation
The
contriblibrary provides access toData.Linear.Arrayand other libraries that showcase Idris 2's unique features like linear types. This enables students to write efficient mutable-array solutions (e.g., dynamic programming for knapsack, sieve of Eratosthenes) using Idris's linear type system rather than the IO monad.The
contriblibrary is part of the Idris 2 standard distribution and is already present in the pack base image — adding it as a dependency has zero Docker image size impact.See the forum discussion.
Dependencies
Requires exercism/idris-test-runner#41 to be merged and deployed first, so that
contribis registered in pack's index in the test runner image.Test plan
depends = contribaddednightly-260208-jammy🤖 Generated with Claude Code