Breaking changes coming up in the Roc track – what's the process for that?

The Roc compiler was completely rewritten from Rust to Zig over the past year, and even though the fundamentals remain the same, there were quite a few breaking changes to the language. I have updated the Roc track for the new compiler (see this PR) and the test-runner (see this PR), and all 110 exercises are now migrated, with all tests passing successfully. :sweat_smile:

When the PRs are merged, the updated Roc track will go live, and all the exercise solutions previously written by the users will no longer work. What’s the process in this case? Can there be a communication to the users who have submitted code in the Roc track? We would like to tell them about what is happening and what they need to do if they want to upgrade their existing solutions.

Thanks!

I don’t think there is a “procedure to follow” here. One way of communication is this forum, where an explaination of changes could happen in a thread. You could then add a comment with a link to that thread to the exercises - this is then reaching all the people that care about their solutions - if I remember correctly there is no “your solution is now invalid” eMail or such.

The website also has an announcement area where track maintainers can post short texts with some details about changes to their track. But I think these would be too small and do not reach many track users. They appear on the dashboard page after login under “New on Exercism”.

If you think, this is of general interest for exercism volunteers or students, propose a community blog post for it. This might also go into the motivation to switch from Rust to Zig. But it still does not really push information directly to your track’s students.

Sounds good, thanks a lot for the clear response @mk-mxp . I’ll discuss with the Roc team, but I think we’ll probably choose the simple option: writing a post and pointing to it in the new exercises.

Are you changing the file structure for solutions like where the stub is, where the test suite is, etc? Exercism might not be able to seamlessly move existing submissions’ files to the new setup, and users will need to manually move them and resubmit via CLI. That happened several years back for Elixir and nearly happened on Arturo.

Oh, and does the Roc test command change? That might warrant cutting a new release of the Exercism CLI if this line needs to be updated: cli/workspace/test_configurations.go at cc1f013b6e905549130fb2c58a0d2f159fd41ad9 · exercism/cli · GitHub

No, we’re not changing the file structure at all. The only thing that changes is the compiler, and therefore the contents of the .roc files.

1 Like

And we’re not changing the roc test command either. :+1:

1 Like

I’ve got some good and bad news:

  • Good news: the updated roc-test-runner is now live! Thanks to @IsaacG for helping with the PR.
  • Bad news: the Roc track itself is not live yet. As a result, the tests are still the old ones, and nothing works. :scream: This is my fault: since the PR had been approved by several people and the tests pass, I assumed I would be able to merge it, but it turns out we need an approval from someone with write access. Anton will probably approve it, but due to the time difference it might take a while. Would someone from the Exercism team be so kind as to add me to the list of people with write access (I’m the creator of this track), or simply approve the PR?

Thanks a lot!

1 Like

Roc has four maintainers. One of the other maintainers would approve it, after which you can merge it. If that’s not viable, the maintainer list can be updated or, barring that, you would need Erik to step in to help merge it.

Are there any Roc maintainers that can review it? Is there someone else interested in helping with the Roc track that can be added as a maintainer?

Anton is definitely a maintainer, but he’s currently offline. I used to be a maintainer but was inactive on this project for ~1 year so I guess I was removed (I’d be happy to be added back). I asked Richard and Luke (the creator of the Roc language, and one of the main contributors), they approved the PR but it looks like they’re not maintainers of the Roc track either. I’m not sure who else is a Roc maintainer.

The Roc team is ageron, Anton-4, bsassoli, isaacvando.

If someone wants to join, they can post their GitHub handle here and Erik can add them.

(And, you can’t approve your own PRs; you need someone from the Roc team other than yourself to approval.)

2 Likes

Alternatively, if all the other Roc maintainers are not active, they can be removed. Repos with only one maintainer can have PRs approved by a member of the cross-track-maintainers team, too.

Got it, thanks a lot @IsaacG . I’ll contact isaacvando, I’m pretty sure he’s still active (not sure about bsassoli, I’ll check).

1 Like

Cool, isaacvando approved the changes and I could merge the PR! The updated Roc track is now live! :partying_face:

5 Likes