Thank you for devoting some of your time and resources for contributing in Luos!
Your input and your help are valuable, and mean a lot to us. We are convinced that a great open source project can't grow without the help of its community. That's why we want to make contributing to this project as easy and transparent as possible, whether it is about:
- Reporting a bug
- Discussing the current state of the code
- Submitting a fix
- Proposing new features
- Becoming a maintainer
- Improving the flows
- ...
This page is written to guide you into contribution of the Luos project, and make your journey enjoyable and gratifying. If you can't find what you are looking for, please tell us!
- What is contribution?
- How can I contribute to Luos?
- First layer: the easiest contributions
- Second layer of contribution: easy issues and typos
- Third layers of contribution: medium to advanced issues and PR
- Practical: how to make a contribution?
Contribution to a project is about dedicating own time and resources to help a project grow. It can be done in many different ways that are not all about code programming. Anyone can contribute to a project at their own level.
When done right, contribution brings a lot to a project, but also to the contributor.
For example, it brings together external visions and skills to build, improve or fix parts of this project. Most of the contributors were first mere users of a project before to become contributors. They often got through contribution in order to add a feature they wanted, or fix an issue that was bothering them. The result is also, on their side, the feeling of being part of a great project.
Contribution allows contributors to learn faster and gain skills. In fact, some contributors in open source projects became quite famous and were able to build their carreer around their contributions. This is why contribution also brings a feeling of gratification for participating in something big.
Eventually, it allows to meet new people with common interest while talking to other contributors in the process of adding, improving or fixing.
You can contribute to the Luos project by creating issues for signaling bugs or requesting features, and opening pull rquests (PR) to work on these issues. There are also simpler ways of contributing. But first, let us introduce to you the three layers of contribution for the Luos project.
Before to even begin with the coding contributions, we will talk about the small but important contributions that make the project go on. Then we will describe the two next layers of contribution, from easy to advanced, where it is about creating issues and pull requests, and working on them.
You can check and follow the Luos contribution project
on GitHub: it displays several tabs with the lists of issues and pull requests opened and/or worked on by the community. Each issue or PR has a status showing its progress (Todo, In progress, Done, etc.).
You will note that some issues and PR have the label help wanted
. It is meant as a call for contribution for subjects we need community's help to work on.
The easiest contributions are as simple as every day tasks, such as:
- Connect to the Luos Discord community: This is where you can talk about Luos, embedded or edge systems, find resources, etc.
- Talk to Luos around you, with your family, friends, co-worker, etc.
- Give one of your precious GitHub stars ⭐ to our main repo Luos engine (you will need a GitHub account, then just click on the star on the top right of the page.)
And eventually, begin to use Luos. Yes, being a user of Luos is a first step toward contributing to it, just because using it increases the chances that you want to become a contributor in the future.
In this second layer, you will need some basic knowledge in coding and GitHub.
ℹ️ Info
To make any change in the project, we use Github flow. It means that any change from typo to code is done through pull requests, linked to issues.
Opening a new issue is a part of this layer of contribution, even if it is a very complex one, because it is an easy task to do. However, opening a PR and working on issues may be complex enough to be in the third layers, depending on their complexity.
💡 Tip
Before to create an issue, be sure that no other issue exists with the same bug you found or feature you need. Then don't forget to follow the rules in the template in order to have a clean issue.
Some issues are easy to solve, and you barely need to know how to code. In particular, issues related to documentation's typos, sentence fixes, or broken links are great to begin your journey as a contributor.
If you are familiar enough with GitHub, you already know that some issues have the label first good issue
. They are generally easy issues to begin with.
💡 Tip
Don't forget that an issue can only be resolved through a pull request to which it has been linked. Again, be sure that no PR is linked to the issue you want to solve before to open a new one.
This layers deals with more complex issues solving or feature coding, implying you already know how Luos works and want to bring consequent changes to it, whether it is for a bug fix or for a new feature. It still works the same way: opening an issue, then a PR, link both of them together, and work on them.
ℹ️ Info
Only the mainteners in Luos organization are able to merge a PR you worked on. It means that at some point you will need to add reviewer of your work to your PR in order for it to be validated before merging. You can also add reviewer from outside the organization, but they won't be able to merge.
Here are the general steps to contributing to Luos.
Opening the issue:
- If not already existing, open a new issue and describe the problem or the feature. Follow the attached rule so that it is accepted by the moderation team.
- Be active in the discussion of the issue.
Working on the code:
- Fork the main repository you want to work on.
- Clone the forked repo to your machine.
- Create and checkout a new local branch.
- Start working on the code.
- Commit your changes to the working local branch.
- Push your local branch to your forked remote repo.
Opening a pull request:
- Open a PR in the main repo and link the issue(s) you are working on.
- Comment the PR and add reviewers.
- Work on the eventual requests for changes.
- Merge the PR.
💡 Tip
There are many resources to guide you into making clean contribution on the Internet. Here is one out of many examples.
ℹ️ Info
Luos is open source. Keep in mind that any contribution you make will be under the MIT Software License for examples, and the Apache 2.0 Licence for Luos engine. In short, when you submit code to the project, you agree with our [Contributor License Agreement](https://github.com/Luos-io/luos_engine/) (CLA) and your submission is placed under the same license that the one covering the project.
People love thorough bug reports or feature requests. They tend to have:
- Specific, understandable and respectful explanation
- A quick summary and/or background
- Detailed steps on how to reproduce it, if applicable
- Sample code
- What is expected to happen, if applicable
- What actually happens, if applicable
- Any other useful comments
- The Luos documentation.
- The GitHub project listing the issues and pull requests that the community contributes to.
- A useful guide to contribution (opensource.guide).
- 10 steps to contribute to open source projects (betterprogramming.pub).