Skip to content

docs: create contributing.md #10905

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 14 commits into from
Jun 13, 2025
Merged
Changes from 7 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
74 changes: 74 additions & 0 deletions docs/development/Contributing.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
# You can help bring INAV forward!

INAV is a big project and fully community driven. This is why we need you, to make INAV better with every release!
There are over 100 new features and fixes ready to go into INAV, contributed by a lot of developers. To ensure that
all quality standards are met, all these great additions need to be checked, tested and potentially fixed before we
can add them to the code. This is why we always need your help, to keep the standards high and our aircraft safe!
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can add them to the code. This is why we always need your help, to keep the standards high and our UAVs safe!

If you are a bit tech-savvy and curious to try new things in the hobby you are invited to join us and help with the development.
Also, if you are good at writing in English, you are welcome to help with the documentation.

## How are changes made in INAV? (Testing and reviewing pull requests)
Most changes done to INAV are done by what’s called a “pull request”, or “PR”. As of this writing, there are currently
98 pull requests, 98 new things waiting to be added to INAV itself, and 34 for Configurator. Each is waiting for someone
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It would be fun to make this a dynamic number that gets updated by the actual numbers but otherwise, I suggest to remove that sentence.
As of this writing, there are currently 98 pull requests, 98 new things waiting to be added to INAV itself, and 34 for Configurator.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah I don't love having "as of this this writing, there are over 100" -

BUT that's a big motivator - there are 100 new things ready to go, we just need you to test them out! To me, that's a big part of why someone would pitch in. I'm thinking if there is another way to word that.

to test them, or update the related documentation, or just look over the code. If you are curious about whats coming,
then have a look at the [INAV Pull Requests](https://github.com/iNavFlight/inav/pulls)

And the ones for [Configurator](https://github.com/iNavFlight/inav-configurator/pulls)

Some of the ones ready to be tested are shown here:
[Testing Required](https://github.com/iNavFlight/inav/pulls?q=is%3Aopen+is%3Apr+label%3A"Testing+Required")

Some are just documentation updates and we’d like someone to review to see if you think it reads clearly and is accurate, such as these:
[Documentation
PRs](https://github.com/iNavFlight/inav/pulls?q=is%3Aopen+is%3Apr+label%3A"Review+needed"+label%3ADocumentation)


## Documentation Updates
Another important part of software development is the documentation. Something that INAV struggled with in the past and we want to get better at. Check the new features, read the description from the developer, and make sure a proper documentation of any new feature is provided. Not enough information in the PR? Feel free to make the developers aware of it. You see potential in better guides or descriptions? You are welcome to add or change things, to make them more accessible for newcomers. It is often better for someone BESIDES the developer to write or at least review the documentation for a feature because we want it to be clear and understandable to someone who doesn't already fully understand it.

The better our documentation is the higher is the chance for people to test and try awesome new features. Also everyone has to spend less time asking and answering questions - asking for help or explaining things to people who struggle to understand. This helps reduce frustration all around.

You can edit the wiki pages directly on Github. Look for the "Edit" button at the top right of any INAV wiki page.

## Github “Issues”
Nothing is perfect. Sometimes bugs might still happen or sometimes a misunderstanding causes problems. This is what pops up in the Github "Issues". Every ticket that is opened there has to be checked by someone familiar with the topic. We have to validate if it could be a user error or an actual problem. Maybe it's a wish for a change or a feature that has to be discussed.

Any help with these tickets and their validation is appreciated. Keeping this part of the project organized and clean is essential, in order to not miss important things.
If you know what the user can do to fix the problem, you can provide the neccessary help and we can close the issue. People tend to expect authoritative, accurate answers on Github, so it is often helpful to point the user to right place in the docs, or check the documentation yourself if you're unsure, then help them.

If you suspect a potential bug, ask for any additional information that might be relevant and ideally, try to validate and replicate the issue. This makes the life of the developers much easier and allows us to provide a fix faster.

## It's all about PEOPLE (socials etc)
INAV is used on quadcopters, on planes, rovers, and boats, but really - INAV is for PEOPLE.
It's all about helping people enjoy the hobby. If you're a people person, your activity in the
Facebook groups, the Telegram group, and on the Discord are really appreciated. Some of the
developers writing the math-heavy code aren't social butterflies, so they aren't active on Facebook.
If you see someone posting about a problem and you can direct them how to post in Issue on the Github,
that's really helpful. Relaying information between Telegram, Facebook, Discord, and Github is appreciated.
If you have a web site or a Youtube channel, or are interested in building one, the resources are
really helpful to the people using INAV.

## Coders
We also need people who are familiar with either HTML and Javascript to help with new features and fixes in
Configurator, or C programmers for INAV features and fixes. Especially reviewing the changes that have already been
submitted. If you are an experienced programmer who is willing to spend some time and contribute to the project, even
better! Less experienced programmers can also contribute, with small fixes, but especially by *reviewing* code that is
submitted. If you can read code you may spot typos, or things that just don't seem to make sense. This is also a great
way to learn.

Keep in mind that we are not a corporation. No one will tell you what to do. You have an idea for a great new feature? Do it! You see something that is broken and you think you can fix? Feel free to fix it! You are unsure if your idea will be accepted? The core-developer team is always there to ask and discuss things and prevent unnecessary work.

## How to get started
You are welcome to join the [INAV Discord](https://discord.gg/peg2hhbYwN) if you would like to chat with other
contributors in real time. You can also just go directly to the pull requests, Issues, and Discussions on the INAV
[Github](https://github.com/iNavFlight/inav/) and start participating in the discussions.

Also, see the [Configurator Github](https://github.com/iNavFlight/inav-configurator/)

Or, feel free to update the [wiki](https://github.com/iNavFlight/inav/wiki)

To make your own pull requests to update the code or the documentation in the docs/ folder, the [Development.md](https://github.com/iNavFlight/inav/blob/master/docs/development/Development.md#using-git-and-github) page will walk you
through how to do that.

Lets all come together and make the best INAV possible!