exercism / v2-configlet

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

lint: exercise is not core and has no parents #96

Closed NobbZ closed 7 years ago

NobbZ commented 7 years ago

An exercise should either be "core": true or there should be a "unlocked_by": ... present.

Curently a "core": false without an "unlocked_by" will pass configlets checks and accepted as a fine exercise.

For v1 this doesn't make any difference, but for v2 such an exercise will either mess up the interface or not be accessible, therefore we should avoid such constellations before it is to late!

NobbZ commented 7 years ago

As an example you can take a look at PR exercism/bash#93.

tleen commented 7 years ago

@NobbZ is a missing "unlocked_by" more or less the same as a null "unlocked_by"? (I guess technically it's undefined, but also falsey). In which case doesn't that define an exercise as a bonus exercise?

{core: false, unlocked_by: null}
kytrinyx commented 7 years ago

@tleen @NobbZ yes, these are considered bonus exercises, and are available in v2 as soon as the person submits their first core exercise.

NobbZ commented 7 years ago

Ah, I missed that… So a missing (or null) "unlocked_by" implies to be unlocked by first core… Including hello-world or the first after that?

Why not beeing explicit?

Intuitively, I'd consider something that hasn't an unlocked_by field as not unlockable…

kytrinyx commented 7 years ago

It's not unlocked by completing the first core, it's unlocked by starting the track (actually submitting your first iteration of something on the track). It's so that people don't get stuck with nothing to do when waiting for their first feedback.

NobbZ commented 7 years ago

Ah, okay, I think I understand.

Insti commented 7 years ago

This should probably be documented.