exercism / v2-configlet

Tool to assist in managing Exercism language tracks.
MIT License
16 stars 23 forks source link

lint: Check that UUIDs are valid #168

Open petertseng opened 5 years ago

petertseng commented 5 years ago

all tests that involve lint are hereby updated to do one of the two:

  1. have valid UUIDs
  2. keep their invalid UUIDs, and expect that an error for them is shown.

Closes https://github.com/exercism/configlet/issues/99

petertseng commented 5 years ago

Note this list of exercises and their associated tracks that currently have invalid UUIDs:

invalid elm isogram: 5f540090-061e-2f80-40a8-d9782700ed2efdf8965: invalid UUID length: 43 invalid elisp pangram: 28aea3bc-0ca0-4af9-868a-02e71c3d996: invalid UUID length: 35 invalid cpp all-your-base: 0a3220c6-07a9-ed80-4d2d-1fc65de969b771a46d5: invalid UUID length: 43 invalid bash queen-attack: text_formatting: invalid UUID length: 15 invalid python custom-set: bb07c236-062c-2980-483a-a221e4724445dcd6f32: invalid UUID length: 43 invalid plsql hello-world: 53156fc9-0945-f080-08a9-ce269bfc9121a5d2c5c: invalid UUID length: 43 invalid clojure spiral-matrix: d42g42d7-21b1-4daf-8ddc-a2ab9ee07c98: invalid UUID format invalid r diamond: 7cad82d6-0db6-d680-4133-81d850d6e7a925454a0: invalid UUID length: 43 invalid haxe leap: d30952cf-0b7d-a980-9351-caedebfed16362c6a7a: invalid UUID length: 43

kytrinyx commented 5 years ago

We need to figure out what would have to happen in the database to change UUIDs to be valid, where they are not. Currently, fixing invalid UUIDs breaks the site pretty badly.

petertseng commented 5 years ago

It looks like this PR will have to wait until those issues are solved.

I sympathise with this plight - it means that it would currently be unwise to release a configlet with this change - affected tracks' configlet lint would break, and you've indicated that fixing their UUIDs is not the way to go. It would be frustrating to be in that situation with no way out.

The motivation for having this PR is to prevent any additional invalid UUIDs from being added. Since we see that configlet currently can't be the place where this is enforced, I will do so in individual tracks' CI of tracks I maintain. Thus achieving the original motivation without causing trouble for all tracks and the website.

When the above issues are solved and configlet is able to enforce this, then it will be a good time to revisit this PR and remove the checks from individual tracks.