Skip to content

Exercise sync, part 1 - #1127

Merged
colinleach merged 2 commits into
exercism:mainfrom
colinleach:sync-and-template
Jul 28, 2026
Merged

Exercise sync, part 1#1127
colinleach merged 2 commits into
exercism:mainfrom
colinleach:sync-and-template

Conversation

@colinleach

@colinleach colinleach commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

Running configlet sync -u identified a few practice exercises that needed updating.

I added a template for Bob, but ran into errors when regenerating the tests: one of the string literals confuses the Julia parser.

ERROR: failed to parse input from /tmp/tmpe_xswoap: ParseError:
# Error @ line 86:38
    @testset "shouting with special characters" begin
        @test bob("""ZOMG THE %^*@#$(*^ ZOMBIES ARE COMING!!11!!1!""") == "Whoa, chill out!"
#                                    ╙ ── not a unary operator

A few potential workarounds failed, so I've marked that test as include = false in tests.toml.

Conversely, a few older tests were excluded for reasons that no longer seem relevant, so I removed the include = false lines.

Finally, I added .pyc files (from the generate_tests.py runs) to .gitignore.

This seems enough complexity for one PR, so I'll template and update connect, perfect-numbers and swift-scheduling separately

@github-actions

Copy link
Copy Markdown
Contributor

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.

[no important files changed]

For more information, refer to the documentation. If you are unsure whether to add the message or not, please ping @exercism/maintainers-admin in a comment. Thank you!

@colinleach

colinleach commented Jul 28, 2026

Copy link
Copy Markdown
Contributor Author

If you look at the old bob/runtests.jl, you'll see it creates all the tests as arrays at the top, then loops over them in testing. Very Julian (or very Sascha, for older test runner versions). Jeremy vocally hates this approach, so I replaced it with a more conventional linear test suite. We have quite a bit more of this we could do in the coming months, if you ever fancy a bit of gentle track housekeeping.

@colinleach
colinleach requested a review from depial July 28, 2026 19:05

@depial depial left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LG2M!

The update you made for runtests.jl certainly makes a lot of sense for readability during troubleshooting, especially in the online editor.

@colinleach
colinleach merged commit 31554bb into exercism:main Jul 28, 2026
7 checks passed
@colinleach

Copy link
Copy Markdown
Contributor Author

I didn't prevent retesting (1026 completions for Bob): mainly because I forgot, but also these are big changes to the tests.

@colinleach
colinleach deleted the sync-and-template branch July 28, 2026 20:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants