Skip to content

exercism/cairo

Repository files navigation


Exercism Cairo Track

configlet    test


Hi.  👋🏽  👋  We are happy you are here.  🎉 🌟


exercism/cairo is one of many programming language tracks on exercism(dot)org. This repo holds all the instructions, tests, code, & support files for Cairo exercises currently under development or implemented & available for students.

Some Exercism language tracks have a syllabus which is meant to teach the language step-by-step. The Cairo track's syllabus is a work in progress and it's not activated yet. All exercises presented to students are practice exercises. Students are expected to learn the language themselves, for example with the official book, and practice with our exercises.


🌟🌟  Please take a moment to read our Code of Conduct  🌟🌟
It might also be helpful to look at Being a Good Community Member & The words that we use.
Some defined roles in our community: Contributors | Mentors | Maintainers | Admins


We 💛 💙   our community.
But our maintainers are not accepting community contributions at this time.
Please read this community blog post for details.


Here to suggest a new feature or new exercise?? Hooray!  🎉  
We'd love if you did that via our Exercism Community Forum.
Please read Suggesting Exercise Improvements & Chesterton's Fence.
Thoughtful suggestions will likely result faster & more enthusiastic responses from volunteers.


✨ 🦄  Want to jump directly into Exercism specifications & detail?
     Structure | Tasks | Concepts | Concept Exercises | Practice Exercises | Presentation
     Writing Style Guide | Markdown Specification (✨ version in contributing on exercism.org)


Testing

Tests currently use Cairo v2.8.2 (included with Scarb v2.8.2).

To test all exercises, run ./bin/verify-exercises. This command will iterate over all exercises and check to see if their exemplar/example implementation passes all the tests.

To test a single exercise, run ./bin/verify-exercises <exercise-slug>.

Track linting

configlet is an Exercism-wide tool for working with tracks. You can download it by running:

$ ./bin/fetch-configlet

Run its lint command to verify if all exercises have all the necessary files and if config files are correct:

$ ./bin/configlet lint

The lint command is under development.
Please re-run this command regularly to see if your track passes the latest linting rules.

Basic linting finished successfully:
- config.json exists and is valid JSON
- config.json has these valid fields:
    language, slug, active, blurb, version, status, online_editor, key_features, tags
- Every concept has the required .md files
- Every concept has a valid links.json file
- Every concept has a valid .meta/config.json file
- Every concept exercise has the required .md files
- Every concept exercise has a valid .meta/config.json file
- Every practice exercise has the required .md files
- Every practice exercise has a valid .meta/config.json file
- Required track docs are present
- Required shared exercise docs are present

Markdown linting

To check for markdown files' formatting issues, open a bash terminal and run:

./bin/lint_markdown.sh

You can even pass the --fix flag to automatically fix those issues that can be fixed automatically:

./bin/lint_markdown.sh --fix

Exercise formatting

To format Cairo files, open a bash terminal and run:

./bin/format_exercises.sh

Format all

To run all formatting scripts at once, open a bash terminal and run:

./bin/format_all.sh

Exercism Cairo Track License

This repository uses the MIT License.