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 representer #476

Closed
ErikSchierboom opened this issue Aug 18, 2021 · 3 comments
Closed

Build representer #476

ErikSchierboom opened this issue Aug 18, 2021 · 3 comments
Assignees
Labels
x:action/create Work on something from scratch x:knowledge/advanced Comprehensive Exercism knowledge required x:module/representer Work on Representers x:size/massive Massive amount of work x:status/claimed Someone is working on this issue 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're introducing a new (optional) tool: the representer. The goal of the representer is to take a solution and returning a representation, which is an extraction of a solution to its essence with normalized names, comments, spacing, etc. but still uniquely identifying the approach taken. Two different ways of solving the same exercise must not have the same representation.

Each representer is track-specific. When a new solution is submitted, we run the track's representer, which outputs two JSON files that describe the representation.

Once we have a normalized representation for a solution, a team of vetted mentors will look at the solution and comment on it (if needed). These comments will then automatically be submitted to each new solution with the same representation. A notification will be sent for old solutions with a matching representation.

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

Goal

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

Note that the simplest representer is one that merely returns the solution's source code.

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

If your track already has a working representer, please close this issue and ensure that the .status.representer 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#52

@ErikSchierboom ErikSchierboom added x:action/create Work on something from scratch x:knowledge/advanced Comprehensive Exercism knowledge required x:module/representer Work on Representers 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
@shubham1925
Copy link

Hi Erik, I would be interested in working on this task, just need someone to pair up with as this task needs advanced knowledge of Exercism

@ErikSchierboom
Copy link
Member Author

Great! Could you send me an email at erik @ exercism.io?

@ErikSchierboom ErikSchierboom added the x:status/claimed Someone is working on this issue label Nov 11, 2021
@vaeng
Copy link
Contributor

vaeng commented Jan 4, 2024

As there is a representer available, this can be closed.

@vaeng vaeng closed this as completed Jan 4, 2024
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/representer Work on Representers x:size/massive Massive amount of work x:status/claimed Someone is working on this issue 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

3 participants