-
-
Notifications
You must be signed in to change notification settings - Fork 141
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Sync All your base #694
Sync All your base #694
Conversation
There are design choices, that prevent complete synchronisation.
This PR touches files which potentially affect the outcome of the tests of an exercise. This will cause all students' solutions to affected exercises to be re-tested. If this PR does not affect the result of the test (or, for example, adds an edge case that is not worth rerunning all tests for), please add the following to the merge-commit message which will stops student's tests from re-running. Please copy-paste to avoid typos.
For more information, refer to the documentation. If you are unsure whether to add the message or not, please ping |
I would vote in favour of invalidating existing solutions to align with problem specifications. Advantages (of aligning):
Inconveniences (of aligning):
But I would prefer another point of view from @ErikSchierboom, what do you think about aligning the tests with the spec and invalidating existing solutions ? Maybe there is a correct way to approach this like a message or something to nudge the students to update their solutions and point them in the correct direction (I know they will at least see the diff though). |
@ErikSchierboom looks like there was a misunderstanding. The current changes are not aligning the test behaviour with canonical data, it is not throwing exception and won't invalidate existing solutions. Do you approve the changes as they are now and reject the alignment of the tests ? |
Ah, I misunderstood. I'll have to take another look Tuesday then |
To put in my opinion: I'm very much for updating and modernizing this exercise (and all others), sync-ing to problem specs as much as possible and throwing exceptions as is done in modern PHP everywhere. I read a lot about not invalidating existing solutions, as they are the knowledge base to lookup help / improvements. And yet, how helpful are solutions that follow outdated practices? So to me, updating is the way to go. But I am quite as unsure as @homersimpsons if that's the Exercism way to handle that. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If I'm seeing this correctly, this PR doesn't break any existing solutions, right?
@ErikSchierboom Yes, I didn't break anything, yet. But I would like to do so. Changing behaviour for zero and leading zeros would invalidate all solutions, as we treat that as error now (while problem spec wants |
I've checked how many solutions there are for this exercise, and it is not a ton so I'm fine with changing the exercise to be more idiomatic. I'm not a fan of the maintainer/contributor-specific changes this PR introduces which might confuse the student. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks better like this, thank you!
This will be the
#48in24
exercise on 2024-04-30. It is marked as ready to sync in the forum. Important files changed, re-running tests on submitted student code is required.null
as return value for errors. This is changed to exceptions to align with modern PHP track interface design.[0]
).Closes #678