Skip to content
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

Build analyzer #48

Open
ErikSchierboom opened this issue Aug 18, 2021 · 2 comments
Open

Build analyzer #48

ErikSchierboom opened this issue Aug 18, 2021 · 2 comments
Labels
x:action/create Work on something from scratch x:knowledge/advanced Comprehensive Exercism knowledge required x:module/analyzer Work on Analyzers x:size/massive Massive amount of work x:type/coding Write code that is not student-facing content (e.g. test-runners, generators, but not exercises)

Comments

@ErikSchierboom
Copy link
Member

In Exercism v3, we are making increased use of our v2 analyzers. Analyzers automatically assess student's submissions and provide mentor-style commentary. They can be used to catch common mistakes and/or do complex solution analysis that can't easily be done directly in a test suite.

Each analyzer is track-specific. When a new solution is submitted, we run the track's analyzer, which outputs a JSON file that contains the analysis results.

In v2, analyzer comments were given to a mentor to pass to a student. In v3, the analyzers will normally output directly to students, although we have added an extra key to output suggestions to mentors. If your track already has an analyzer, the only requisite change is updating the outputted copy to be student-facing.

The analyzer is an optional tool though, which means that if a track does not have an analyzer, it will still function normally.

Goal

Build an analyzer for your track according to the spec. Check this page to help you get started with building an analyzer.

It can be very useful to check how other tracks have implemented their analyzer.

If your track already has a working analyzer, please close this issue and ensure that the .status.analyzer key in the track config.json file is set to true.

Choosing between representer and analyzer

There is some overlap between the goals of the representer and the analyzer. If you want to build both, we recommend starting by building the representer for the following reasons:

  • Representers are usually (far) easier to implement
  • Representers can have a far bigger impact on the mentoring load than analyzers by empowering mentors
  • Representers apply to all exercises, whereas analyzers usually target specific exercises or a subset

Tracking

exercism/v3-launch#53

@ErikSchierboom ErikSchierboom added x:action/create Work on something from scratch x:knowledge/advanced Comprehensive Exercism knowledge required x:module/analyzer Work on Analyzers x:size/massive Massive amount of work x:type/coding Write code that is not student-facing content (e.g. test-runners, generators, but not exercises) labels Aug 18, 2021
@joshgoebel
Copy link
Contributor

This isn't high on my priority list since we do have a representer - and I'd like to see the demand for Wren track before putting a ton more time investment into, but the issue can of course remain open. :)

@ErikSchierboom
Copy link
Member Author

Makes total sense!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
x:action/create Work on something from scratch x:knowledge/advanced Comprehensive Exercism knowledge required x:module/analyzer Work on Analyzers x:size/massive Massive amount of work x:type/coding Write code that is not student-facing content (e.g. test-runners, generators, but not exercises)
Projects
None yet
Development

No branches or pull requests

2 participants