New Contributor’s Guide#
This guide is a resource for contributing toApache Arrow for new contributors.
No matter what your current skills are, you can try and makeyour first time contribution to Arrow.
Starting to contribute to a project like Apache Arrow can beintimidating. Taking small steps will make this taskeasier.
Why contribute to Arrow?#
There can be various reasons why you might want to contributeto Arrow:
You find the project interesting and would like to try makinga contribution to learn more about the library and grow your skills.
You use Arrow in a project you are working on and you would liketo implement a new feature or fix a bug you encountered.
Read more about the project in theArchitectural Overview section.
Note
Contributors at Apache Arrow are following ASF’sCode of Conduct.
Quick Reference#
Here are the basic steps needed to get set up and contribute to Arrow.This is meant both as a checklist and also to provide an overall picture of the process.
For complete instructions please followSteps in making your first PR (astep-by-step guide) or R and PythonTutorials for an exampleof adding a basic feature.
Install and set up Git, and fork the Arrow repository
See detailed instructions on how toSet up Git and fork theArrow repository.
Build Arrow
Arrow libraries include a wide range of functionalities and may requirethe installation of third-party packages, depending on which buildoptions and components you enable. The C++ build guidehas suggestions for commonly encountered issues - you can find ithere.Anytime you are stuck, feel free to reach out viaappropriateCommunication channel.
See a short description about the building process ofPyArrow or the R package or go straight to detailedinstructions on how to build one of Arrow libraries in thedocumentation .
Run the tests
We should run the tests to check if everything is working correctly. For example,you can run the tests from a terminal for Python
$pytestpyarrowor in R console for R
devtools::test()
See also the section onTesting 🧪.
Find an issue (if needed), create a new branch and work on the problem
Finding an issue
You might already have a bug to fix in mind, or a new feature that you want toimplement. But if you don’t and you need an issue to work on, then you may needhelp finding it. Read through theFinding good first issues 🔎 section to get some ideas.
Finding your way through the project
The first step when starting a new project is the hardest and so we’vewrote some guides to help you with this.
You can start by reading throughWorking on the Arrow codebase 🧐 section.
Communication
Communication is very important. You may need some help solving problemsyou encounter on the way (this happens to developers all the time). Also,if you have a GitHub issue you want to solve, then it is advisable to let the teamknow you are working on it and may need some help.
See possible channels ofCommunication.
Once you implemented the planned fix or feature, write and run tests for it
See detailed instructions on how totest. Also run the linterto make sure the code isstyled correctly before proceedingto the next step!
Push the branch on your fork and create a Pull Request
See detailed instructions onCreating a pull request
If you are ready you can start with building Arrow or choose to followone of theTutorials on writing an R binding or Python feature.
Different ways to contribute#
There are lots of ways to contribute to the project besides writing code!
Improving thedocumentation is a great way to start contributing!For more information visitHelping with documentation section of the guide.
Apache Arrow Cookbooks are a collection of recipes for solving various problemsand completing different tasks using Apache Arrow. They are also a great way to startcontributing. For more information visitHow to contribute to Apache Arrow Cookbooklocated in the Apache Arrow Cookbook repository.
You are also welcome to take a look atAdditional information and resources section.
We want to encourage everyone to contribute to Arrow!

