Skip to content

Conversation

FraSanga
Copy link
Contributor

@FraSanga FraSanga commented Sep 10, 2025

This pull request introduces a new Elixir practice exercise called Camicia.

TO-DO:

  • Create example.ex
  • Add practices & prerequisites in config.json
  • Edit difficulty (6?)

Copy link
Contributor

Thank you for contributing to exercism/elixir 💜 🎉. This is an automated PR comment 🤖 for the maintainers of this repository that helps with the PR review process. You can safely ignore it and wait for a maintainer to review your changes.

Based on the files changed in this PR, it would be good to pay attention to the following details when reviewing the PR:

  • General steps

    • 🏆 Does this PR need to receive a label with a reputation modifier (x:size/{tiny,small,medium,large,massive})? (A medium reputation amount is awarded by default, see docs)
  • Any exercise changed

    • 👤 Does the author of the PR need to be added as an author or contributor in <exercise>/.meta/config.json (see docs)?
    • 🔬 Do the analyzer and the analyzer comments exist for this exercise? Do they need to be changed?
    • 📜 Does the design file (<exercise>/.meta/design.md) need to be updated to document new implementation decisions?
  • Practice exercise changed

    • 🌲 Do prerequisites, practices, and difficulty in config.json need to be updated?
    • 🧑‍🏫 Are the changes in accordance with the community-wide problem specifiations?
  • Practice exercise tests changed

    • ⚪️ Are all tests except the first one skipped?
    • 📜 Does <exercise>/.meta/tests.toml need updating?

Automated comment created by PR Commenter 🤖.

@neenjaw
Copy link
Contributor

neenjaw commented Sep 10, 2025

Thanks for starting a PR to add a new exercise. I have a few questions to know how to evaluate/guide this PR:

  • Is there an exercism forum discussion that this exercise comes from?
  • Is this implemententing an exercise described in problem specifications that was previously unimplemented for Elixir?
  • Does this exercise practice concepts/features not covered in other practice exercises?

Some exercises have a design.md file to describe the intention for the exercise (ex), perhaps that would be a good addition to this PR or maybe you could add some more detail to this PR description.

Can you give me some more information to know how to help/guide you through this process? Thanks! 💙

@FraSanga
Copy link
Contributor Author

I have updated the description of the PR with the various links.

  • Is this implemententing an exercise described in problem specifications that was previously unimplemented for Elixir?

I am the author of the exercise.
We devised it over the past few weeks and yesterday they merged everything together.

  • Does this exercise practice concepts/features not covered in other practice exercises?

It is an algorithmic exercise but does not aim at a specific concept.
You are free to read the entire discussion we had on the forum if you have time to spare.
I got the go-ahead from @angelikatyborska to do the PR.

Some exercises have a design.md file to describe the intention for the exercise (ex), perhaps that would be a good addition to this PR or maybe you could add some more detail to this PR description.

I'll definitely try to take a look at it.
I'm currently creating the first draft of a solution.

Can you give me some more information to know how to help/guide you through this process?

I'll then need some help with the definitions of practices & prerequisites in config.json.
I think we can take our time with that.

Any suggestions are welcome. 🫶

@neenjaw
Copy link
Contributor

neenjaw commented Sep 10, 2025

Sweet! Thanks for those details. I'll tag @angelikatyborska in here, as she has more familiarity with the work!

@neenjaw neenjaw added x:size/large Large amount of work x:module/practice-exercise Work on Practice Exercises x:rep/large Large amount of reputation x:knowledge/intermediate Quite a bit of Exercism knowledge required labels Sep 10, 2025
@FraSanga
Copy link
Contributor Author

I have created the first draft of the solution.
If anyone would like to take a look, it's there waiting for you.

I also ran test_exercises.sh and everything went smoothly.

Some exercises have a design.md file to describe the intention for the exercise (ex)

From what I understand, this file serves to summarise the purpose of the exercise in Elixir.
I am not an expert in this language, so I would not be able to write something that is correct from a purely theoretical point of view.

My aim, as I wrote in the proposal, is to bring as many users as possible into the world of research; even just sparking someone's curiosity would be good.

I think that until you confirm the solution, there's not much point in writing the rest.

@FraSanga FraSanga marked this pull request as ready for review September 11, 2025 20:42
@angelikatyborska
Copy link
Member

Some exercises have a design.md file to describe the intention for the exercise (ex), perhaps that would be a good addition to this PR or maybe you could add some more detail to this PR description.

IMO design.md files are only necessary for concept exercises. Practice exercises don't need to have a purpose other than "write more Elixir code" 🙂

I think that until you confirm the solution, there's not much point in writing the rest.

TBH, I never care that much about the specific solution to a new practice exercise. It only exists to prove that an exercise can be solved at all, but it's not shown to students and it doesn't have to be perfect.

The test suite and deciding which concepts must be known before attempting to solve the exercise (prerequisites) are much more important.

I'll take a look at this PR's changes now.

@FraSanga
Copy link
Contributor Author

The test suite and deciding which concepts must be known before attempting to solve the exercise (prerequisites) are much more important.

I agree. I think the prerequisites are very important. While completing the Elixir track, I would occasionally peek at the graph to see which dots were coloured in after downloading the exercise locally.

I'll take a look at this PR's changes now.

If you have any questions or requests, I am available immediately for the next two hours or so.

Copy link
Member

@angelikatyborska angelikatyborska left a comment

Choose a reason for hiding this comment

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

I'm leaving a partial review because I ran out of time for right now. I didn't fully understand the solution yet and I didn't review "prerequisites".

@angelikatyborska
Copy link
Member

(Ignore the failing link checker)

Copy link
Member

@angelikatyborska angelikatyborska left a comment

Choose a reason for hiding this comment

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

Thank you so much for this exercise 🙏 I think it will be very fun for people to solve. The PR looks very good. I only left a few more nitpicks about the config and variable names. Once those are resolved, I'll approve and merge 🚀

@angelikatyborska angelikatyborska merged commit ba64cdb into exercism:main Sep 15, 2025
8 of 9 checks passed
@FraSanga
Copy link
Contributor Author

🥳
I swear I didn't forget to change the variables in the tests on purpose 😅🤣

@angelikatyborska
Copy link
Member

Congrats on your first Elixir exercise 🥳 it's live now, so you can go ahead and publish your own solution if you want to be the first one 😁

@FraSanga
Copy link
Contributor Author

There was no need to even say it, I did it as soon as I saw the notification.
Thank you again.

@FraSanga FraSanga deleted the camicia branch September 15, 2025 06:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

x:knowledge/intermediate Quite a bit of Exercism knowledge required x:module/practice-exercise Work on Practice Exercises x:rep/large Large amount of reputation x:size/large Large amount of work

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants