problem-specifications icon indicating copy to clipboard operation
problem-specifications copied to clipboard

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

Open kytrinyx opened this issue 9 years ago • 20 comments

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

  • [x] wait for the pull request that adds all-your-base to be accepted
  • [x] finish working out the process for deprecating exercises in https://github.com/exercism/discussions/issues/40
  • [x] add a .deprecated file to octal
  • [x] add a .deprecated file to hexadecimal
  • [x] add a .deprecated file to binary
  • [x] add a .deprecated file to trinary
  • [ ] draft the text for a new issue that can be submitted to all the languages (see https://github.com/exercism/blazon#tips)
  • [ ] submit the issue using blazon
  • [ ] wait for all the related issues to be closed
  • [ ] close this issue

kytrinyx avatar Jun 23 '16 08:06 kytrinyx

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.

kytrinyx avatar Jun 30 '16 06:06 kytrinyx

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

verdammelt avatar Nov 27 '16 15:11 verdammelt

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

kytrinyx avatar Nov 28 '16 17:11 kytrinyx

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

stkent avatar Dec 04 '16 23:12 stkent

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?

stkent avatar Dec 06 '16 00:12 stkent

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.

petertseng avatar Dec 06 '16 02:12 petertseng

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.

kotp avatar Dec 06 '16 14:12 kotp

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

kytrinyx avatar Dec 06 '16 17:12 kytrinyx

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

kytrinyx avatar Feb 13 '17 17:02 kytrinyx

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

bitfield avatar Jan 04 '19 17:01 bitfield

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.

kytrinyx avatar Jan 06 '19 15:01 kytrinyx

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

bitfield avatar Jan 06 '19 16:01 bitfield

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?

ErikSchierboom avatar Jan 13 '22 15:01 ErikSchierboom

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.

junedev avatar Jan 13 '22 16:01 junedev

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.

wolf99 avatar Jan 13 '22 16:01 wolf99

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.

junedev avatar Jan 13 '22 18:01 junedev

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.

BethanyG avatar Jan 13 '22 20:01 BethanyG

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?

ErikSchierboom avatar Jan 14 '22 07:01 ErikSchierboom

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.

junedev avatar Jan 14 '22 07:01 junedev