exercism / problem-specifications

Shared metadata for exercism exercises.
MIT License
326 stars 540 forks source link

Deprecate binary, trinary, octal, and hexadecimal in favor of new all-your-base exercise #279

Open kytrinyx opened 8 years ago

kytrinyx commented 8 years ago

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):

kytrinyx commented 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.

verdammelt commented 7 years ago

Just curious - is this still moving forward? Obviously I still need to implement one for xlisp...

kytrinyx commented 7 years ago

@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.

stkent commented 7 years ago

Should individual tracks hold off on deprecating the relevant exercises for now? Not sure how per-track deprecation interacts with global deprecation.

petertseng commented 7 years ago

(In the case of some tracks) too late!

stkent commented 7 years ago

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?

petertseng commented 7 years ago

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.

kotp commented 7 years ago

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.

kytrinyx commented 7 years ago

I'd prefer to not delete exercises, unless we have a very clear reason to do so.

kytrinyx commented 7 years ago

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
bitfield commented 5 years ago

Are we ready to go ahead and Blazon this now, @kytrinyx?

kytrinyx commented 5 years ago

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.

bitfield commented 5 years ago

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).

ErikSchierboom commented 2 years ago

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?

junedev commented 2 years ago

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.

wolf99 commented 2 years ago

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.

junedev commented 2 years ago

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.

BethanyG commented 2 years ago

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.

ErikSchierboom commented 2 years ago

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?

junedev commented 2 years ago

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.