FreePascal - How can I tell if the track can be launched?

Hi!

The docs seems like a simple setup, but I’m afraid it’s not that easy. I don’t think I can decide on my own, and I don’t know what to do next.

Additional Info: There’s an already implemented Test Runner (I think it’s all ok) and more than 50 exercises on the repo.

Generally, the next steps involve other maintainers taking a look and poking around to see if there are any rough edges. After that point, whenever you’re ready, just flip the status in the track config to "active" and the track is available to the general public.

1 Like

free-pascal/config.json at 65724f334a882ab2a26753da03f5ff493cc0a3c5 · exercism/free-pascal · GitHub this should be set to active so the Exercism site knows a test runner is available, enabling the online editor. That’s independent of launching the track so you can go ahead and do it now.

2 Likes

exercises/shared/.docs/help.md and exercises/shared/.docs/tests.md still need to be written.

These are important for students who run

$ exercism download --track=free-pascal --exercise=hello-world

and open HELP.md

An entry should be added in the CLI’s TestConfigurations so students can run

$ exercism test
1 Like

Some observations:

Missing documentation:

Broken links

Missing docs/config.json

Is the test runner live?

Is every exercise easy? There seem to be a lot of difficulty 3.

1 Like

Currently all but two. I have made a sorting suggestion, and some difficulty comments, in PR #34

There are a couple of duplicate exercises appearing on the page, due to uuid changes. Issue #33 may need an Admin to fix.

1 Like

Note that this isn’t a hard requirement but still strongly recommended as a QoL feature. Some tracks don’t lend themselves to exercism test like Pharo.

1 Like

I’ve never seen this file in the repository or in the git history. Can I generate one without the uuids or is there a way to generate the uuids?

You can use configlet uuid or suchlike.

1 Like

How I can use a local modification of the test-runner instead of “latest” from official repository to check with verify-exercises-in-docker script? I’ve found bugs and I’m trying to test all exercises locally before create the PR.

That handy script can be modified as desired. I’ve uploaded PR #36 to support a local test runner image being specified on the command line using -i

2 Likes

Once a track is preparing to launch, the admins enable GitHub branch protection. Then maintainers can’t directly commit to main, but instead merge PRs after they have been reviewed (by another maintainer, or a cross-track-maintainer if the track has less than two maintainers).

1 Like

I have uploaded a PR for the CLI.

It runs make test=all as Free Pascal docs/TESTS.md explains this is how to run all the tests.

It is unfortunate that the process make test=all exits with success even if some test cases report failure.

1 Like

I’d never noticed that until now. Is it better if exist_status is always > 0 if all tests are run and pass? For example:

  • when no solution is provided:
$ make
TAP version 14
1..21
not ok 0 - Please implement your solution.
make: *** [Makefile:10: test] Error 1
  • when only the first test runs:
$ make
TAP version 14
1..21
ok 1 - valid_isbn
make: *** [Makefile:10: test] Error 1

the single test was approved, but not all 21 tests were run so, the exit_status > 0.

The behavior that I usually expect is exit_status > 0 whenever any attempted test fails. So if we only attempt the first test and it passes, I expect exit_status 0, while if we attempt all tests and some fail, I expect exit_status > 0

I have a new suggestion for how the the duplicate exercises issue might be able to be fixed.

Feedback has been addressed. The track looks ready to launch.

1 Like

Have the other maintainers taken a look at the track?

1 Like

free-pascal/docs/LEARNING.md at 7e7404d18e0231b78c3bb175abe782fa04553e6d · exercism/free-pascal · GitHub should probably be in the testing docs as well. I had removed result in my Leap stub when I deleted the line raising the not implemented exception. I checked the testing docs for information, but it didn’t provide any details. Given LEARNING.md is about learning the language, it wasn’t obvious to me to check there until after I checked GitHub when I saw the example using result. I tried a different variable after the tests passed and then realized this was something special for the test runner. At that point, I went through all the docs and found that note about result.