Create new track for GDScript

Another one, resistor expert

Imma do these next as well: acronym, anagram, armstrong number, bob, hamming.

Hey @BNAndras , do you know why the gdscript repo doesnt have option to request for reviewers? Does this need to be enable per track?

1 Like

You can do @exercism/gdscript in the PR body to ping pfertyk. I think you need write access to the repo to actually add somebody as a reviewer.

Ah, I see. That makes sense, otherwise anybody can just PR and request people randomly.

Also I accidentally pick one exercise that should throw error. I remember the discussion about this, should I just skip them or return null?

@BNAndras @ErikSchierboom I’ve requested an icon for GDScript track:

I am not sure if someone (a designer from Exercism perhaps) will take care of this, or should I submit an icon on my own?

@glaxxie there was a discussion, yes, and I think we decided to adjust error handling per exercise ;) E.g. if normally a function is supposed to return a string, then in case of an error it might return a null. I will check your PR soon and I’ll get back to you ;)

If there is no logo yet and needed to be created, I think Jeremy will take care of it but we have one already so just submit it

I will check your PR soon and I’ll get back to you ;)

Nice, I finished the 5 exercises I mentioned above, when that recent one (resistor expert) got cleared I will double check them again (spacing, test suites, config placement) and then you can review & merge them all in succession.

We’ll take care of it.

@pfertyk @BNAndras
PRs for : acronym, anagram, armstrong number, bob, hamming

I made sure there won’t be config.json collision so please review and merge them in order (56 → 60).

Also I left a note about the failure message, I think currently the order of expected output and actual output are swapped.

I can see the icon is already in place, nice! The track looks better every day! :smiley:

I would like to focus on the documentation and testing now, putting any additional exercises on hold. We have 20 already, and new ones can be added later. The lack of documentation is, AFAIK, the main thing that blocks the release of this track.

Today I’ve merged the key features PR by @Meatball . I also have a few small improvements to add to the test runner before the release, so these are my priorities. Please feel free to contribute any missing pieces :wink:

@BNAndras do you think that the difficulty levels of our current exercises are correct? This was also one of the things to check before we go public :slight_smile:

1 Like

At the moment, we have one medium difficulty exercise (spiral-matrix) and the rest are easy difficulty. If that’s fine with you, I think we just need to sort the exercises by binned difficulty and then by exercise name inside each bin. Difficulties 1-3 are “easy”, 4-7 are “medium”, and 8-10 are “hard”.

If you’re not sure about the difficulties, we can compare ours to Python’s since the languages have some things in common, so I’d expect the difficulties to be largely similar.

Seems syntax highlighting isn’t working yet. isn’t highlighted, but in the track config, the highlightjs language is set to “gdscript”.

There’s a third-party highlightjs plugin at GitHub - highlightjs/highlightjs-gdscript: highlight.js syntax definitions for Godot's GDscript language so I think something needs to be done on the backend to pull in that plugin.

I would advise to look but not straight up copy, some of the exercises on python are imo not rated correctly, especially harder ones. There have been a lot of discussion about them so best not to add more. I think I even complained about it at one point :sweat_smile:

Also some of them make sense for python since their standard library is amazing with a lot of inclusions, like itertools and what not, which might be a factor of how some exercise got rated easier, but I’m not sure if it would be the same for gdscript.

1 Like

For third party plugins, we do indeed need to install them manually. That repo you’ve linked to seems to not publish itself as an NPM package, which is required for us to include it on the website. It also hasn’t been updated for 4 years :person_shrugging:

1 Like

@glaxxie Thank you for the exercises! :wink: I’ve also noticed that the expected and actual results are reversed, I think somewhere along the way we forgot how to use the tests runner :sweat_smile: I think the easiest solution is to change this in the runner itself, and update the docs. I will take care of it soon.

@ErikSchierboom @BNAndras that’s bad news about the highlighting … I am not sure if the repo is still maintained, but the comments on a GitHub issue are from December last year. I am not sure if the maintainers will quickly implement an NPM package. In which case, what do we do? Can we wrap this up on our own and push to NPM, hoping for a better solution in the future?

Yes. We can fork the repo and publish it. If you get whatever is needed on a personal fork, then Erik can publish it when he’s back.

1 Like

I was a bit busy recently, but I’m back now ;) I just submitted a PR to detect a lack of tests in our exercises (which happens usually if the test file is invalid, e.g. mixes spaces and tabs). I will fix some other issues with the runner first, and then check the JS highlighting module.

1 Like

I’m really not good with NPM, but I forked the GDScript highlight repo and published it as a package (changing only the name):

Could we please check if it works in its current form? If not, please let me know what needs to be fixed ;)

I will also submit an issue in the original repo, asking the maintainers to publish their version.

Hello from Germany,
i was thinking about something similar a week ago. Ever heared of a 3d engine called POV-Ray? It has a special language called scene description language which i found pretty easy to understand. This engine is pretty unknown so i don´t think it is required to add such a language.

Btw i followed the instructions and posted my suggestion for a new track, that is somewhat similar to the one you posted, in the support section. I was thinking of audio processing languages and media languages.

Many thanks and regards

(cc @dem4ron)

We published our own fork of the GDScript LanguageFn, because it needed some adjustments.

This PR will add the hljs syntax highlighting for GDScript:

1 Like

@dem4ron Thanks, and sorry for not polishing my PR enough :sweat_smile:

I’ve checked the highlighting and it seems to work after I submit my exercise, but not in the web editor where the exercise can be implemented (screenshots attached). Is that intentional?