exercism / pony

Exercism exercises in Pony.
https://exercism.org/tracks/pony
MIT License
38 stars 20 forks source link

WIP: Starting on concepts. #128

Open redvers opened 2 years ago

redvers commented 2 years ago

Initial commit will fail CI as the exercise isn't there yet.

redvers commented 2 years ago

Ah ha! I apparently had concept at the top level twice. I had an entry that matches (I think) what you describe at line 11, and then undefined it at line 186.

So I just pushed a change which removed line 186 and… it still fails with the same response.

This is what it looks like:

https://github.com/redvers/pony/blob/5cbf3657a8210540772b396d6102aecfafec5132/config.json#L11-L17

I don't see how it looks different to your example.

(edit: I re-ran the linter in debug and the error changed state to the state you said would be next up - thank you)

ee7 commented 2 years ago

Ah. I didn't catch that concepts was defined twice. Sorry.

A duplicate key name is valid JSON, but generally recommended against. For one thing, it's less portable, as different parsers handle it differently. But it's common to silently use the last value, and that's what the Ruby library that powers the Exercism website does.

configlet lint also currently silently uses the last value. I have proposed that it should indicate an error when there is a duplicate key. I'm tracking this in https://github.com/exercism/configlet/issues/347.

But it turns out that we don't hit this problem much in practice, so this hasn't been a priority.


In the future, configlet lint should probably issue warnings rather than errors for missing files when the track isn't launched, or when concept exercises aren't enabled. The status quo encourages adding empty files to appease the linter, but this makes it harder to keep track of files that still need to be written.