Hi everyone.
We’ve merged a PR which I want to tell you about, but I also though it would be useful to remind you about regenerating representations for exercises in general, as this feature is now pretty much complete.
(As a reminder, representations are normalised versions of student’s iterations, which can have feedback added to them. We generate a representation of each iteration and compare it to existing representations for other solutions to see if there is feedback that we can reuse.)
Every time the representer is deployed, we create a new representation for every iteration on your track that has had feedback given to it. This means that the feedback will stay relevant for future iterations from other students.
So for example:
- Iteration 1, student 1, created last week:
- Representation 1: Created when iteration was created. Mentor gives feedback.
- Representation 2: Created yesterday when representer was updated. Feedback copied from representation 1 (as we know the feedback is still relevant as the feedback is given to the iteration, not the representation).
- Iteration 1, student 2, created today:
- Representation 2: Matches the representation from student 1’s iteration. Feedback given.
Today we’ve added a new feature which allows you to expire the feedback for all existing exercises. This is useful if an exercise changes significantly and its no longer guaranteed that any existing feedback is relevant. The existing feedback will be saved as draft feedback for you to check in the admin UI. Be aware this has a short-term negative effect for students (ie they don’t get new feedback automatically until someone has gone through everything in the admin UI and approved it) so please only use this when necessary
The field is documented in the docs: Document key for exercise files (#407) · exercism/docs@24881b8 · GitHub and a sample PR is here: Update sample exercise to version to representer by iHiD · Pull Request #1558 · exercism/ruby · GitHub
Please let me know if anything about all this isn’t clear or you have any questions/requests around this!