Contributing to Trane

Trane is accepting contributions, specially for trane-music. Here's a list of ways to contribute:

Code contributions

Trane and its associated projects are still in a very early stage, so I am not looking for code contributions at this time. However, feel free to open an issue if you notice a bug or an issue with my usage of Rust, since I am new to the language.

Suggesting new material in one of the official courses

Easiest way to contribute is by simply opening an issue in the appropriate repo and suggesting new courses or lessons to be added. It is especially useful to detail how the material in those units relates to other material (either in existing courses or ones that have not been added yet) and how you would break the material into smaller lessons, if it is necessary. Either links to reference material or example exercises are also useful.

If you are a domain expert but can't (or want) to code any material yourself, this is a great way to contribute as a large part of the task at hand is breaking down skills and knowledge into smaller units and figuring a sensible order in which they should be introduced to students.

Planning new material

This is a more involved version of the above. You still don't need to code any material yourself but if you already know exactly how the material you want to add translates to courses, lessons, and exercises, you can write them in a simplified format in plain text and propose the course is added by opening and issue and sharing your work. Once all the details have been ironed out and your proposal has been accepted, someone else can work into translating it into working code.

Coding new material

You can also contribute by adding the code to generate new courses and lessons. The best way to learn is to look at how existing courses are defined. You can either create courses for material you have designed yourself or generate new material that has been proposed and approved but still needs to be added as code. Make sure you have gotten an approval to work on new material before submitting a PR.