Contributing

Thanks for considering contributing to Ironclad, it means a lot.

There are several ways one can help the Ironclad project, from writing and correcting documentation to contributing source code. A great way to help Ironclad as well is sharing it with people that may find it interesting!

Bug reporting

One can report issues on our project's Codeberg.

If you are experiencing an issue with Ironclad as part of a distribution, like Gloire, we recommend you report it to the distribution, where developers can dig a bit and figure out whether it is an Ironclad issue at all. Issues with Gloire can be reported at the project's Codeberg.

Finding what to contribute

Here is a list of beginner tasks that may be the starting point for work on Ironclad:

Task Repository
Add LittleFS support at the kernel level https://codeberg.org/Ironclad/Ironclad
Improve the physical memory allocator at memory-physical.adb/.ads https://codeberg.org/Ironclad/Ironclad
Add SATAPI support to the kernel's SATA driver https://codeberg.org/Ironclad/Ironclad
Add support for 5 level paging in x86_64-limine's kernel port https://codeberg.org/Ironclad/Ironclad
Add an EC driver for x86_64-limine's kernel port https://codeberg.org/Ironclad/Ironclad
Implement support for SMAP in the kernel https://codeberg.org/Ironclad/Ironclad
Improve coredump support https://codeberg.org/Ironclad/Ironclad

We also have a wishlist for this site:

Task Repository
Translate index to a non-supported language https://codeberg.org/Ironclad/pages
Move our RSS feed from savannah's to a self hosted version on our website https://codeberg.org/Ironclad/pages
Setup an HTML generalizing method to make translation and changes easier https://codeberg.org/Ironclad/pages

Alternatively, asking on Ironclad communities can be helpful.

Submitting changes

One can make PRs and submit code for review using Ironclad's Pull Request tracker or the project's mailing lists as well. For distribution changes, one must use the distribution's own methods, for Gloire, there is a Pull Request tracker available.

When submitting contributions, only contributions licensed under the GPL, or alternatively, a GPL-compatible license, will be accepted. In order to ensure this is the case, submitted patches will need to certify their work by accepting the project's Developer Certificate of Origin (DCO). This is done by either adding Signed-off-by to the patch, either manually or using git's -s flag, or by stating compliance in the patch submission.

DCOs are not CLAs!

DCOs do no copyright assignment, and the contributor keeps each and every right over their contribution. Individual contributor copyright is one of the core pillars of free software. DCOs only shift the responsibility of the legitimacy of the contributed code from the project to the developer, thus providing legal shielding in case of copyright violations, among others.

Code of Conduct

Any contribution to Ironclad, be it code, or a bug report, is subject to Ironclad's Code of Conduct, since the process of submitting this contributions inevitably goes through Ironclad communication and community channels. One can read the code of conduct here.