exercism / julia

Exercism exercises in Julia.
https://exercism.org/tracks/julia
MIT License
68 stars 68 forks source link

Move older concept/exercise drafts to older-drafts folder #791

Open colinleach opened 2 months ago

colinleach commented 2 months ago

[no important files changed]

I moved all the unmerged older learning syllabus material to older-drafts/, with subdirectories for concepts and exercises. The aim is that the Exercism website will now ignore these, even for maintainers.

No file contents were changed, only the location.

I added .gitkeep files to concepts.wip/ and exercises/concept.wip/ so they stay around, even when empty. I guess we will want to use these as a staging area for new drafts?

Comments welcome on whether this is the best way to nake the change.

I'd love to move the 3 old concepts currently in concepts/: these are going to be replaced by the new basics concept when it is merged. I'm hesitant:

Does anyone know how to deprecate a concept that is no longer needed? Exercises have a status field, but there seems to be nothing equivalent for concepts.

colinleach commented 2 months ago

I should have said: this follows on from Issue #789.

depial commented 1 month ago

The aim is that the Exercism website will now ignore these, even for maintainers.

I've noticed that the Leap that was deleted is still on the website, under the Practice tab, while now there is now also a duplicate of Annalyn's Infiltration there. I'm wondering why the old ones aren't being deleted from the site?

Another note: I was hesitant to wipe them from the site before we have replacements, but now I feel it wouldn't make a big difference, since I don't think there are many completions anyway.

colinleach commented 1 month ago

The issue of duplicates and old concept exercises hanging around only seems to affect maintainers. If you look at the exercises in incognito, it all looks correct.

For Leap, I suspect (but can't be sure) that I still see the Concept version on the Practice tab because I solved Leap in the past: only as a practice exercise, but these are now hopelessly muddled. I assume that successful solutions go into a MySQL table, with (student, track, exercise) fields, so the website still shows it to me as something I published. It would need @iHiD to untangle that at the SQL level, and my guess is that he will see it as more trouble than it's worth - given only the two of us are affected,

It could be worse. I just filtered the practice exercise page to show Annalyn's Infiltration, and I'm seeing a magnificent 7 copies! I'm hoping this PR will fix that problem, but we'd need to test that empirically.

iHiD commented 1 month ago

I think any exercises also need to be marked as deprecated in the config.json before we can merge this. Otherwise I think things will just break.

colinleach commented 1 month ago

exercises also need to be marked as deprecated in the config.json before we can merge this

That's part of the confusion - there is no mention of these draft concept exercises in the config.json. They are in a directory called exercises/concept.wip, and the website seems to find them and display them to maintainers. We have no way to deprecate them, other than moving them to somewhere more hidden. All suggestions welcome, if I'm missing something.

Leap is a bigger tangle, because it was created at one time as a concept exercise, as well as a practice exercise. That got the software as confused as I am (which is saying something).

BethanyG commented 1 month ago

While the concept key is set to false, your config.json still has a concept exercise array, with a number of exercises flagged wip. I think that's what the website is picking up, and what you have to label as deprecated.

Here's the block.

As compared to Python, where we have wip, but also one that's deprecated. The deprecated exercise (Electric Bill) doesn't show for anyone, and is noted as deprecated on the track build status page. The WIP exercise (Pretty Leaflet) shows to maintainers, and is not shown on the track build status page under active exercises/concepts.

colinleach commented 1 month ago

that's what the website is picking up, and what you have to label as deprecated

Apologies for maybe not explaining it clearly enough, but that block isn't the problem. Lasagna and Annelyn's Infiltration are the result of recent/ongoing PRs.

What we're trying to get rid of are the old drafts such as dnd-char, emoji-times and the ever-annoying concept variant of leap, which are mentioned nowhere in config.json.

Several of these exercises may be recycled in the future into new versions, extensively rewritten and with new UUIDs. We're not trying to deprecate the name of the exercise, just the draft implementation.

colinleach commented 1 month ago

I should have included a link to the relevant directory.

I'm quite surprised this even exists, more surprised that the website treats it as special (presumably because it's under exercises, alongside concept and practice). We're just trying to empty it, to reduce distractions as we start adding new stuff.

Would that break the website? That can only be answered by someone who understands why the website even lists the contents of exercises/concept.wip and what information it might be caching outside the GH repo. It's not coming from config.json.