CoffeeScript extended support patch

CoffeeScript extended support patch

I spent the last weekend in pursuit to make the CoffeeScript track a viable track for the future and to make it prepared for 12in23.

The track has in recent years started to become more and more out of date hence its lack of maintenance. I decided to do a quick swap up, with improvements, fixes, and some new content. With that said I am not going to take over maintainership of the track. But here is a list of the changes:

New Exercises

  • Two Fer
  • Bottle Song
  • Phone Number (made for 12in23)
  • Scrabble score (made for 12in23)
  • Rna Transcription (made for 12in23)

Deprecated Exercises:

  • Beer song was deprecated and replaced by bottle song due to beer songs references to alcohol.

Fix and improvements to current exercises

All examples are now working against the test files, which meant that around 6 example files had to be updated since they didn’t pass test or the tests were broken, that has now been fixed.
Then most of the exercises received a new sync to problem spec with new tests and other various changes, which means that most exercises have updated tests.

Ci

The track lacked ci hence some exercises were broken, a new ci which checks the example to the tests has been added to avoid bugs.

Test Runner

The test runner received a facelift with being updated to v2. The goal was to only update it to follow the most basic v2 spec, but after an issue was discovered. The spec actually got extended. When I write test runners I follow 2 different architectures, either: xunit + capture file to generate a v2 output. Or to achieve more feature-rich test runners a xunit + capture + ast analysis combined.

Since an issue was discovered that forced us to check that the test actually existed was an ast analysis need hence the later was chosen as the architecture, and since ast was used, it was very easy to add test code to the result. So test code is actually included.

Before:

After:

Some other changes that are noticeable:

  • Coffescript was update to 2.7
  • Node was updated to 14 from 12
  • The test runner size is now 30 MB smaller, which is 18 % smaller

Docs

  • The learning.md was activated
  • Links in the installation.md was updated and some other changes were done as well

Config.json

4 Likes

Amazing. Thank you! :blue_heart:

Stunning work.