Skip to content

Add contrib dependency to all exercises#245

Merged
keiravillekode merged 1 commit intoexercism:mainfrom
FranklinChen:add-contrib-dependency
Feb 9, 2026
Merged

Add contrib dependency to all exercises#245
keiravillekode merged 1 commit intoexercism:mainfrom
FranklinChen:add-contrib-dependency

Conversation

@FranklinChen
Copy link
Contributor

Summary

  • Add depends = contrib to all 57 exercise .ipkg files
  • Since hello-world.ipkg is the template used by bin/add-practice-exercise, future exercises will inherit this dependency automatically

Motivation

The contrib library provides access to Data.Linear.Array and 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 contrib library 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 contrib is registered in pack's index in the test runner image.

Test plan

  • All 57 exercises pass with depends = contrib added
  • Tested against updated test runner with nightly-260208-jammy

🤖 Generated with Claude Code

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>
Copilot AI review requested due to automatic review settings February 9, 2026 05:05
@github-actions
Copy link

github-actions bot commented Feb 9, 2026

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.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 = contrib to every practice exercise’s .ipkg.
  • Update the hello-world exercise 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.

@keiravillekode keiravillekode reopened this Feb 9, 2026
@keiravillekode
Copy link
Contributor

lgtm

@keiravillekode keiravillekode merged commit cac1d5e into exercism:main Feb 9, 2026
11 of 12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants