On case-insensitive filesystems (e.g. OS X's default), it's possible for an incorrect slug for the current exercise to be gotten from the current working directory.
Suppose an exercise exists in ~/exercism/ruby/pangram, but you got into that directory by doing cd ~/exercism/Ruby/pangram. This causes the capitalized Ruby in the path to get used as the slug here in NewIteration: https://github.com/exercism/cli/blob/master/api/iteration.go#L106 I discovered this upon doing exercism submit pangram.rb, which caused an unable to submit (HTTP: 400) - unknown problem (track: Ruby, slug: pangram, path: ) error.
(If you're wondering how anyone might have ever done this on accident: My boyfriend's exercises path is ~/Documents/Code/exercism, and the capital D and C made him accidentally capitalize the other directory names as well while he was cding.)
I'm not super familiar with the exercism ecosystem, but if it's safe to assume that slugs will always be lowercase, a possible fix for this could be to use ToLower on the line linked above.
On case-insensitive filesystems (e.g. OS X's default), it's possible for an incorrect slug for the current exercise to be gotten from the current working directory.
Suppose an exercise exists in
~/exercism/ruby/pangram, but you got into that directory by doingcd ~/exercism/Ruby/pangram. This causes the capitalizedRubyin the path to get used as the slug here in NewIteration: https://github.com/exercism/cli/blob/master/api/iteration.go#L106 I discovered this upon doingexercism submit pangram.rb, which caused anunable to submit (HTTP: 400) - unknown problem (track: Ruby, slug: pangram, path: )error.(If you're wondering how anyone might have ever done this on accident: My boyfriend's exercises path is ~/Documents/Code/exercism, and the capital D and C made him accidentally capitalize the other directory names as well while he was
cding.)I'm not super familiar with the exercism ecosystem, but if it's safe to assume that slugs will always be lowercase, a possible fix for this could be to use
ToLoweron the line linked above.