Open kytrinyx opened 8 years ago
FYI @rbasso @NobbZ @ErikSchierboom @wobh @Cohen-Carlisle @yurrriq
Before we can submit a blazon ticket we need to finish clarifying the process for deprecating exercises. Up until now it's been messy and prone to error, and I'd rather have that all straightened out before we deprecate four at a time across a bunch of language tracks. https://github.com/exercism/discussions/issues/40
I've updated the checklist in the original post of this issue to reflect what I think we need to do to get this all sorted out.
Just curious - is this still moving forward? Obviously I still need to implement one for xlisp...
@verdammelt yeah, we're still moving forward on this one. I've lost track of where we are in the process, though. I think we have implemented support for global deprecation.
Should individual tracks hold off on deprecating the relevant exercises for now? Not sure how per-track deprecation interacts with global deprecation.
(In the case of some tracks) too late!
Ah, good knowledge! I see that some tracks deleted old implementations, while others (appear to have) kept them - is there a good reason to choose one over the other?
Interesting. Deleting is a slightly bigger hammer.
If the files exist despite the exercise being deprecated, they don't get shown in the exercise list (e.g. hexadecimal doesn't show in http://exercism.io/languages/haskell/exercises ) but a student could download it with exercism fetch haskell hexadecimal
if they explicitly wanted to (and had knowledge that the implementation in fact exists).
If there are no language files for the exercise, a student would find themselves unable to fetch it with exercism fetch
.
I haven't got a good feel for when we are ready to delete files. I would appreciate advice here.
If I were inclined to fetch my latest (or knew the sha's for others) I would still be able to fetch my old work, which would be a benefit if it were not on my local machine (via version control or other).
Deleting will remove that benefit... though it may only be known to a (presumably small) segment of users.
I'd prefer to not delete exercises, unless we have a very clear reason to do so.
We are missing the .deprecated
file in these exercises. I've updated the checklist to reflect that we need to do this.
tree -a exercises/{binary,trinary,octal,hexadecimal}
exercises/binary
├── canonical-data.json
├── description.md
└── metadata.yml
exercises/trinary
├── canonical-data.json
├── description.md
└── metadata.yml
exercises/octal
├── description.md
└── metadata.yml
exercises/hexadecimal
├── description.md
└── metadata.yml
Are we ready to go ahead and Blazon this now, @kytrinyx?
Yeah, I think that's a good call. I would probably write a custom script that actually makes the PR to each track, to be honest. That's almost as easy as opening an issue, and it makes it much easier for maintainers to just accept it.
That sounds marvellous! Happy to help with that if I can (maybe there should be an issue saying that we need this tool, and other people might be able to help with it too).
I wrote a script to check whether any tracks still implement the binary/trinary/octal/hexadecimal exercises, and this is the list:
Track | Exercise |
---|---|
babashka | binary |
babashka | hexadecimal |
babashka | trinary |
babashka | octal |
c | binary |
clojure | binary |
clojure | hexadecimal |
clojure | trinary |
clojure | octal |
coffeescript | binary |
coffeescript | hexadecimal |
coffeescript | trinary |
cpp | trinary |
cpp | binary |
cpp | hexadecimal |
crystal | binary |
emacs-lisp | binary |
emacs-lisp | trinary |
julia | trinary |
lfe | binary |
lfe | trinary |
lua | binary |
lua | octal |
mips | binary |
mips | hexadecimal |
mips | octal |
mips | trinary |
pharo-smalltalk | binary |
php | binary |
php | trinary |
plsql | binary |
prolog | binary |
scheme | octal |
scheme | trinary |
vbnet | binary |
wren | binary |
Apparently, there are still quite some tracks that implement these exercises. Do we want to make an effort of deprecating these?
I would be in favor of giving maintainers another nudge here to deprecate (and inform them about the replacement exercise). The old repetitive exercises were quite annoying as a student back then.
Also I am wondering why a new track like wren
decided to implement a deprecated exercise. :thinking: @joshgoebel can clarify this maybe.
As a maintainer, I would be in favour of getting such a nudge, preferably (though not necessarily) as a PR, as it would be a good candidate for a good-first-pr.
Sidenote: In case we decide to notify maintainers and define how, this could also be applied for https://github.com/exercism/problem-specifications/pull/1918 in case this gets merged.
I'd definitely appreciate a reminder or nudge or PR. 😄 I think Python has successfully "killed" all the number-base related exercises, and we have the all your base
exercise....but without a reminder, I'll never check to make sure.
I'm wondering if a PR might be a little too "in your face." Not all tracks have implemented the more general all-your-base
exercise I think. Maybe open an issue on all tracks instead?
I think @wolf99 actually meant "issue" as they wrote they want to label it "good first [issue]". I also think an issue would be good, preferably including a link to the "how to deprecate docs" and a mention of the new exercise.
We've settled on replacing the four almost identical exercises with one that is more interesting and comprehensive, which converts a number in an arbitrary base to the equivalent in a second arbitrary base. See https://github.com/exercism/x-common/issues/276 for details.
We need to (I think):
all-your-base
to be accepted.deprecated
file to octal.deprecated
file to hexadecimal.deprecated
file to binary.deprecated
file to trinary