codewars / codewars.com

Issue tracker for Codewars
https://www.codewars.com
BSD 2-Clause "Simplified" License
2.09k stars 219 forks source link

Editing a kata translation in a new language (Elixir) with more than 500 CW #317

Closed g964 closed 8 years ago

g964 commented 8 years ago

When a kata has been passed by more than 500 Codewarriors it is impossible to re-edit it. But it could be useful when it has just been translated in a new language (Elixir) and you need to make a few adjustements.

bkaestner commented 8 years ago

See also: proposal for pull-requests, #123 (second post), #163, and probably some more.

g964 commented 8 years ago

Yes, proposal...proposal but nothing has been done about that since looonnng!

jhoffner commented 8 years ago

Description adjustments should be possible via the kata translation. What type of adjustments were you looking to make?

bkaestner commented 8 years ago

@jhoffner I think @g964 meant the following process:

User translates old kata into new language → new language has some weird behavior (e.g. AssertEqual arguments swapped in Java/C#) → translation gets approved without checking → old kata has now issues that aren't resolvable.

g964 commented 8 years ago

I translated a kata, with more than 500 Codewarriors who passed it, into Elixir. After publishing I saw that my random tests cases were the same at each run (the seed was not re-initialized by Elixir) but I can't correct that because the tests are locked for all languages even if only 2 or 3 guys passed it in Elixir.

Another example : C#. The version has been changed and gives warning (which is good) that the previous version didn't give. These warnings imply that the Codewarrior fails whatever the quality of his solution. It can happen simply because a declared variable is unused. If 500+, it is impossible to correct the tests and the kata becomes not usable in C#...

I think the 500+ rule should be modified... Many proposals exist for that. Maybe an intermediate solution : the author can re-edit the kata under the condition that no solution becomes invalidated...

jhoffner commented 8 years ago

OK got it. I've got a fix, which is to apply the 500 limit on a per language level. It requires some denormalization so I want to do some more testing before pushing it out. Its been a long wait but its almost over.

g964 commented 8 years ago

Excellent ! Very good for Elixir and Typescript! :-) What about the "disturbing" warnings in the new version of C#. Maybe it could be simple to suppress them?

jhoffner commented 8 years ago

I'll have to check into the disturbing warnings. I still haven't seen those in action.

I finally converted the app from being heroku based to AWS based, and I have the preview environment up and running. https://preview.codewars.com

Preview has the latest updates to the 500 limit fix, so you should be able to make your updates over there. I'm going to be testing the new environment out for probably a week or so before switching www.codewars over to AWS. If you guys wouldn't mind using preview every so often to help me test, that would be great.

One caveat. Preview is using a different leaderboard database, so your points may be out of sync temporarily between the two environments. Once everything is merged over the leaderboard will get itself back into sync so don't worry about losing your data.

g964 commented 8 years ago

An example amongst many others by @Lunat1q: http://www.codewars.com/kata/twice-linear/discuss#574866fb49a16777a400018c. I was able to correct it since it is < 500+. In these cases the compilation succeeds with a warning but the solution fails with "Unknown error".

jhoffner commented 8 years ago

CW has been migrated over to AWS and everything in preview is now live. This issue should now be resolved.