I had a brief conversation about Exercism with @ingydotnet at The Perl and Raku conference, who expressed interest in creating a YAMLScript track.
I’ll likely be talking to them later during the conference and giving them more info on what needs to be done for this track to exist, and have created this topic to see if I can get the ball rolling for them.
So normally we ask people to put together a Hello World example for us to look at (with some tests and a solution). That helps us check that the language “fits” on Exrecism. Every track has the same Hello World exercise, so take your favourite/closest-match and use that as your basis.
As a YAML loader where the YAML can have embedded code. This is normally used in a YS language binding module like Search results · PyPI but is also available via the ys CLI where it returns data in a LCD form (JSON).
As a complete, functional programming language. It compiles to Clojure code internally and has a fast runtime binary that doesn’t use the JVM.
For exercism we’d being using the latter. Comparing to Python, ys hello.ys is the same conceptually as python hello.py.
This looks good. You’d submit it to the exercism/yamlscript repo but we need to wait until @ErikSchierboom is back next week to create that for you.
The other major step is creating a test runner - which is a Dockerfile that runs prove -v hello-world-test.ys in production. You’ll get a repo that’s built from GitHub - exercism/generic-test-runner to do that in, so you might like to start thinking about that. At the most basic level, you’ll “just” need to implement these lines:
There are also more complex versions of test runners, but this is probably good enough to start you off.
Finally, it’s probably worth spending an hour or two exploring the docs as this will save you lots of effort later. Everything should be very well documented as multiple newbies have built tracks from scratch using them, but if you have any questions, please ask and other maintainers will be happy to help Building Tracks | Exercism's Docs
@iHiD Thanks for the fast reply.
I’ve done a lot of this kind of Docker stuff, so no problem.
Is there anything I need to do to get @ErikSchierboom 's attention for this or will that be taken care of?
When approximately do you expect I’d hear something?
@IsaacG thanks for letting me know that.
I’ll do my best to create as small an image as I can.
I’m trying to build on alpine now but hitting various issues.
Will report back later…
(Among other alpine build issues) The jar to native binary compiler I’m using doesn’t work with musl by default. I might be able to get it working at some point, but I’d rather build an image from something else for now.