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)
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>
.
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
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
To format Cairo files, open a bash terminal and run:
./bin/format_exercises.sh
To run all formatting scripts at once, open a bash terminal and run:
./bin/format_all.sh
This repository uses the MIT License.