Thank you for your interest in contributing! Autoware is supported by people like you, and all types and sizes of contribution are welcome.
As a contributor, here are the guidelines that we would like you to follow for Autoware and its associated repositories.
- Code of Conduct
- What should I know before I get started?
- How can I get help?
- How can I contribute?
Like Autoware itself, these guidelines are being actively developed and suggestions for improvement are always welcome! Guideline changes can be proposed by creating a discussion in the Ideas category.
Code of Conduct#
To ensure the Autoware community stays open and inclusive, please follow the Code of Conduct.
If you believe that someone in the community has violated the Code of Conduct, please make a report by emailing email@example.com.
What should I know before I get started?#
To gain a high-level understanding of Autoware's architecture and design, the following pages provide a brief overview:
For experienced developers, the Autoware interfaces and individual component pages should also be reviewed to understand the inputs and outputs for each component or module at a more detailed level.
Contributing to open source projects#
If you are new to open source projects, we recommend reading GitHub's How to Contribute to Open Source guide for an overview of why people contribute to open source projects, what it means to contribute and much more besides.
How can I get help?#
Do not open issues for general support questions as we want to keep GitHub issues for confirmed bug reports. Instead, open a discussion in the Q&A category. For more details on the support mechanisms for Autoware, refer to the Support guidelines.
Issues created for questions or unconfirmed bugs will be moved to GitHub discussions by the maintainers.
How can I contribute?#
You can contribute to Autoware by facilitating and participating in discussions, such as:
- Proposing a new feature to enhance Autoware
- Joining an existing discussion and expressing your opinion
- Organizing discussions for other contributors
- Answering questions and supporting other contributors
The various working groups within the Autoware Foundation are responsible for accomplishing goals set by the Technical Steering Committee. These working groups are open to everyone, and joining a particular working group will allow you to gain an understanding of current projects, see how those projects are managed within each group and to contribute to issues that will help progress a particular project.
To see the schedule for upcoming working group meetings, refer to the Autoware Foundation events calendar.
Before you report a bug, please search the issue tracker for the appropriate repository. It is possible that someone has already reported the same issue and that workarounds exist. If you can't determine the appropriate repository, ask the maintainers for help by creating a new discussion in the Q&A category.
When reporting a bug, you should provide a minimal set of instructions to reproduce the issue. Doing so allows us to quickly confirm and focus on the right problem.
If you want to fix the bug by yourself that will be appreciated, but you should discuss possible approaches with the maintainers in the issue before submitting a pull request.
Creating an issue is straightforward, but if you happen to experience any problems then create a Q&A discussion to ask for help.
You can submit pull requests for small changes such as:
- Minor documentation updates
- Fixing spelling mistakes
- Fixing CI failures
- Fixing warnings detected by compilers or analysis tools
- Making small changes to a single package
If your pull request is a large change, the following process should be followed:
Create a GitHub Discussion to propose the change. Doing so allows you to get feedback from other members and the Autoware maintainers and to ensure that the proposed change is in line with Autoware's design philosophy and current development plans. If you're not sure where to have that conversation, then create a new Q&A discussion.
Create an issue following consensus in the discussions
Create a pull request to implement the changes that references the Issue created in step 2
Create documentation for the new addition (if relevant)
Examples of large changes include:
- Adding a new feature to Autoware
- Adding a new documentation page or section
For more information on how to submit a good pull request, have a read of the pull request guidelines and don't forget to review the required license notations!