Guide for new project contributors

This guide provides tips and suggestions for new contributors to Apache projects. A contributor is anyone who wants to contribute code, documentation, tests, ideas, anything to any project hosted here at the Apache Software Foundation (ASF).

Note: if you are interested in contributing financially to support the ASF and the open-source movement, please see Sponsorship and Donations.

More information is available in the guide and FAQs for project committers.

Community Development is here to help!

Apache values "Community over code", and is full of volunteers who want to help you. Guideposts and helpful information and mentors for newcomers to Apache can be found at Community Development.

Everything happens on mailing lists

Virtually everything at Apache happens on one of our publicly archived mailing lists. Find the right Apache mailing list and read some tips on asking questions and making comments.

How open-source works at Apache

There are many books, presentations, and academic papers about the way open-source software development works and how you can become a valuable member of the open source/free software community. For an overview of how it works at Apache, see

Source code repositories

Apache projects use either of these repository systems:

Nightly code / Development code

Getting the source directly from the source repository usually gives you the latest, or "bleeding edge" version of that particular project.

Providing feedback to Apache projects

A valuable way to contribute to ASF projects is to use the project's software and then provide feedback about it to its developers. Different Apache software projects have different preferences about how you should submit feedback. Check out the project website for more information. In the absence of project-specific information on how to provide feedback, follow these guidelines.

A vital part of the ASF projects are the project mailing lists. Most projects have a users' list named users@${project} or user@${project} Subscribe to it by sending an e-mail to users-subscribe@${project}, then follow the instructions. We have many tips on asking questions in a way that gets answers.

Tell the developer and user community about your use of the software product, your experiences in setting it up, issues you encountered, and any general feedback you may have. Don't forget to include any positive observations that will show you appreciate the effort the team is making. Your story will likely be very welcome if you write it clearly, in a friendly tone, and Read The Manual before asking for answers that you could find there. You'll probably receive enthusiastic responses from some of the developers and other users (although responses may not appear right away: everybody is busy).

If you found specific issues or have an idea about how things should work, the project may ask you to submit a detailed bug report or patch to improve things.

Many projects also have a developer-focused mailing list named dev@${project} for discussion of technical project details.

How to send in a bug report

Projects take bug reports very seriously. To help a team fix the bug quickly, include as much information with your report as possible, such as your platform, version numbers of the application you were using, error logs, configuration, etc. If you are not sure whether a piece of information is relevant, include it.

See Writing a good bug report.

How to submit a patch

A patch is a computer-generated file that describes differences between different versions of one or more source files, with the intention of improving the current application code. Different software projects have different preferences about how to submit a patch. Check out the project website for more information or ask on the dev@ project mailing list. For an example of project-specific patch guidelines,see the Apache Subversion project's patch guide.

See How to submit a patch for project code for further details.

How to suggest changes to project websites

One of the simplest ways to contribute to Apache projects is by suggesting improvements to the project's website or product documentation. If something doesn't make sense to you, or if you have a better way to explain something, send the project a patch!

Projects use many different content management systems for their websites. Some systems have a web-based editor that makes it relatively simple to provide improvements, once you have access rights. Ask the PMC for such rights, explaining how you would like to help, or simply provide your suggestions in an email.

Copyright 2024, The Apache Software Foundation, Licensed under the Apache License, Version 2.0.
Apache® and the Apache feather logo are trademarks of The Apache Software Foundation...