New track for Cairo language

I would like to propose a new track for the Cairo programming language. Cairo is a Rust-inspired language for writing ZK provable programs, without the need for a deep understanding of ZK concepts. As a general purpose programming language, it can be used for any computation that would benefit from being performed on one machine and verified on other machines with lower hardware requirements. Currently, Cairo is most often used to building trustless applications on Starknet.

@misicnenad would like to maintain this track

Cairo Language Website is here: https://www.cairo-lang.org/

Are you offering to build the track?

Docs relevant to building a new track can be found here. New Track | Exercism's Docs

1 Like

Yes, we are offering to build this track. Mainly, misicnenad's profile on Exercism will build and maintain the track.

Are they on the forum? GitHub? The Exercism Discord server? Usually people volunteer for themselves :wink:

Just wanted to jump in to confirm James’s statement, I’d be happy to build the track.

4 Likes

Thanks! I think the next step is to write a proof of concept Hello World exercise with a test runner. That should all be laid out in the docs.

1 Like

@misicnenad Thanks!

An example Hello World in Ruby is:

We like to check a language fits Exercism’s model before we bootstrap the track itself. Could you provide equivelent of those two files for Hello World in ZK please?

1 Like

Awesome!

@iHiD below is the link to the repo:

1 Like

Great. Thanks! I’ll ask @ErikSchierboom to Bootstrap a track for you. He’s actually off for the next few weeks but if you come on Discord, lots of people can help there. Will @jamesnethermind also be building with you and need permissions, or just you?

Thanks. I’ll be building the track out while we wait on Erik, will be using instructions I found on Exercism’s repo.
I’ll be the only one building the track, James was there to set up the request (thanks @jamesnethermind).

1 Like

I’ve just created the repo and added @misicnenad as a team member (you have a GitHub invite).

3 Likes

Hey guys, as you know I’m creating the Cairo track as a maintainer from Nethermind, which is the organization that created the language.

A couple of my colleagues from Nethermind are asking if they can contribute to the Cairo track repo, but reading the “New Contribution Guidelines”, I’m not really certain what the process is for contributions from people from the same company.

Would they be able to get assigned issues and create PRs?

P.S. Some outside contributor has already successfully created a PR before and the PR was merged, so I’m now confused as to why their PR was not automatically closed. As per the article above, section Opening Pull Requests:

Pull Requests from non-org members will continue to be automatically closed

As track maintainer, you can accept PRs from others. Whether those PRs are associated with issues or are managed some other way (eg verbal communication) is entirely up to the track maintainer. You can ask them to send a PR for whatever feature.

The following paragraph says,

Track maintainers can choose to turn the auto PR-closer off, but we still recommend that all PRs are first discussed via the forum.

Auto close is configured on a per track basis.

1 Like

Understood, thanks!

Need to clarify something.

To launch the track it is required to have at least 20 practice exercises. In config.json, the Practice exercises have a field practices, which according to docs is “only required when the track has concept exercises”.
Also, I’m not certain whether concepts need to be added or not, as there’s some conflicting information in the docs.

  1. Can practices list be left empty for practice exercises (for now)?
  2. Are concepts required to launch the track?

Concepts are used for concept exercises/the syllabus. A syllabus is not needed to launch a track. I am pretty sure you can skip both of those.

2 Likes

When in doubt, you can see what other tracks do. Check their repos in GitHub.

1 Like

Correct.

Although the work you’ve done on Concepts so far will set you in amazing stead to launch a syllabus!

1 Like

Thanks everyone for clearing things up!

@misicnenad I’ve created the test runner repo too: GitHub - exercism/cairo-test-runner

1 Like