Skip to content

Update HELLO.md #932

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Sep 25, 2021
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
65 changes: 19 additions & 46 deletions HELLO.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ If you have any questions, if you're unsure where to start or you're stuck, do n

## Tasks

### 1. Create, improve, and review concepts and concept exercises for v3
### 1. Create, improve, and review concepts and concept exercises

Check open issues and PRs in this repository [tagged with the concept-exercise label](https://github.com/exercism/elixir/issues?q=is%3Aopen+sort%3Aupdated-desc+label%3Aconcept-exercise) to see which concepts need a new exercise or an improvement.

Expand All @@ -30,25 +30,16 @@ One-time ~1h investment to learn how a concept exercise is structured, and then

#### Useful links for this task

- [Open issues and PRs for Elixir for v3](https://github.com/exercism/elixir/issues?q=is%3Aopen+sort%3Aupdated-desc+label%3Av3)
- [V3 Elixir concept exercises](https://github.com/exercism/elixir/tree/master/exercises/concept)
- [V3 Elixir concepts](https://github.com/exercism/elixir/tree/master/concepts)
- [V3 staging](https://exercism.lol/)
- [The features of v3](https://github.com/exercism/v3/blob/master/docs/features-of-v3.md)
- [Rationale for v3](https://github.com/exercism/v3/blob/master/docs/rationale-for-v3.md)
- [What are concept exercise and how they are structured?](https://github.com/exercism/docs/blob/main/anatomy/tracks/concept-exercises.md)
- [Open issues for concepts and concept exercises](https://github.com/exercism/elixir/issues?q=is%3Aopen+sort%3Aupdated-desc+label%3Ax%3Amodule%2Fconcept-exercise%2Cx%3Amodule%2Fconcept)
- [Concept exercises docs](https://github.com/exercism/docs/blob/main/building/tracks/concept-exercises.md)

### 2. Create an analyzer for a v3 concept exercise
### 2. Create or improve an analyzer for a concept exercise

An analyzer is a tool that analyzes the AST of an exercise solution looking for specific features. Based on the results, it can leave helpful comments for the student.

Some v3 concept exercises must have an analyzer. They won't be mentored, and their goal is to teach how to use specific features of the language, so we need to look out for solutions that pass the tests, but don't use the taught features.
Some concept exercises must have an analyzer. Their goal is to teach how to use specific features of the language, so we need to look out for solutions that pass the tests, but don't use the taught features.

You will recognize the exercises that need an analyzer by their `design.md` file containing an "analyzer" section that outlines what features of a desired solution need to be checked for
([example](https://github.com/exercism/elixir/blob/4e18d2385066e46de5ee5ea3e1ba9ce0caffdfa5/exercises/concept/boutique-inventory/.meta/design.md#L29-L34))
.

You can choose any exercise that doesn't already have an analyzer and try to implement one.
See [the list of open analyzer issues](https://github.com/exercism/elixir-analyzer/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc).

This task isn't as difficult as it might sound! We already have the tool for this job. It's all about using it to describe the desired features of a good solution. See the example PR in links.

Expand All @@ -59,22 +50,21 @@ Everyone that has interest in the Elixir programming language. Concept exercises
#### Time investment

One-time ~30 min investment to get familiar with how existing analyzers are written and the concept exercise in
question, and then ~1-2h for writing the analyzer.
question, and then ~30-60 min for writing the analyzer.

#### Useful links for this task

- [What is an analyzer?](https://github.com/exercism/docs/tree/main/anatomy/track-tooling/analyzers)
- [V3 Elixir concept exercises](https://github.com/exercism/elixir/tree/master/exercises/concept)
- [Currently implemented analyzers](https://github.com/exercism/elixir-analyzer/tree/main/lib/test_suite)
- [What is an analyzer?](https://github.com/exercism/docs/tree/main/building/tooling/analyzers)
- [How to write an analyzer?](https://github.com/exercism/elixir-analyzer/blob/master/docs/writing-an-analyzer.md)
- [Analyzer recipes](https://github.com/exercism/elixir-analyzer/blob/main/docs/recipes.md)
- [Open analyzer issues](https://github.com/exercism/elixir-analyzer/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc)
- [Example PR adding an analyzer for the pacman-rules exercise](https://github.com/exercism/elixir-analyzer/pull/30/files)
- [Currently implemented analyzers](https://github.com/exercism/elixir-analyzer/tree/main/lib/elixir_analyzer/test_suite)
- [Elixir's automated comments](https://github.com/exercism/website-copy/tree/main/analyzer-comments/elixir)

### 3. Check open issues and PRs in other repos

To launch v3, we need a well-working analyzer, test runner, and representer. All of those projects are already created and functional, but they might still need some improvements.

V3 is our current focus, but really don't want to get involved with it at the moment, you can also check if the current Elixir track has open issues or PRs that could benefit from more attention.
Browse all the open issues in all the Elixir track repositories and choose something that sounds interesting! If an issue is tagged with "help wanted", that means it's well suited for all contributors interested in helping out. Issues without this label are meant for the regular track maintainers.

#### Who is this task well-suited for?

Expand All @@ -86,7 +76,7 @@ Anything from 15 minutes to many hours, depending on the specific issue.

#### Useful links for this task

- [What is track tooling?](https://github.com/exercism/docs/tree/main/anatomy/track-tooling#track-tooling)
- [What is track tooling?](https://github.com/exercism/docs/tree/main/building/tooling)
- [Open issues and PRs in the Elixir analyzer](https://github.com/pulls?q=is%3Aopen+repo%3Aexercism%2Felixir-analyzer)
- [Open issues and PRs in the Elixir test runner](https://github.com/pulls?q=is%3Aopen+repo%3Aexercism%2Felixir-test-runner)
- [Open issues and PRs in the Elixir representer](https://github.com/pulls?q=is%3Aopen+repo%3Aexercism%2Felixir-representer)
Expand All @@ -98,6 +88,8 @@ Anything from 15 minutes to many hours, depending on the specific issue.

Almost all existing practice exercises could use an analyzer. It would decrease the work load of the mentors.

There are no open issues for this type of task, but it can still be worked on.

#### Who is this task well-suited for?

People that already have some experience mentoring the specific Elixir exercise. Writing an analyzer well requires anticipating a lot of different approaches to the same exercise.
Expand All @@ -108,29 +100,10 @@ One-time ~30 min investment to get familiar with how existing analyzers are writ

#### Useful links for this task

- [What is an analyzer?](https://github.com/exercism/docs/tree/main/anatomy/track-tooling/analyzers)
- [Currently implemented analyzers](https://github.com/exercism/elixir-analyzer/tree/main/lib/test_suite)
- [What is an analyzer?](https://github.com/exercism/docs/tree/main/building/tooling/analyzers)
- [How to write an analyzer?](https://github.com/exercism/elixir-analyzer/blob/master/docs/writing-an-analyzer.md)
- [Two-fer analyzer](https://github.com/exercism/elixir-analyzer/blob/65832211726bc04b4b35a1840ed55bbb67b4cae2/lib/test_suite/two_fer.ex)
- [Analyzer recipes](https://github.com/exercism/elixir-analyzer/blob/main/docs/recipes.md)
- [Two-fer analyzer](https://github.com/exercism/elixir-analyzer/blob/deb8f57342a797361af4be604f31dc09f550f79e/lib/elixir_analyzer/test_suite/two_fer.ex)
- [Currently implemented analyzers](https://github.com/exercism/elixir-analyzer/tree/main/lib/elixir_analyzer/test_suite)
- [Elixir's automated comments](https://github.com/exercism/website-copy/tree/main/analyzer-comments/elixir)
- [General Exercism docs](https://github.com/exercism/docs)

### 5. Port a new practice exercise from problem specifications

There are still a few practice exercises on the platform that the Elixir track hasn't implemented yet. You can find one in the problems specification repo and port it to Elixir.

#### Who is this task well-suited for?

People that already have some experience maintaining the Elixir track.

#### Time investment

A few hours.

#### Useful links for this task

- [Existing Elixir practice exercises](https://github.com/exercism/elixir/tree/master/exercises/practice)
- [Problem specifications repo](https://github.com/exercism/problem-specifications)
- [Porting an Exercise to Another Language Track](https://github.com/exercism/legacy-docs/blob/main/you-can-help/implement-an-exercise-from-specification.md)
- [Elixir's CONTRIBUTING.md](https://github.com/exercism/elixir/blob/master/CONTRIBUTING.md)
- [General Exercism docs](https://github.com/exercism/docs)