How to contribute to Apache Arrow .NET

We utilize Conventional Commits for our commit messages. This helps maintain the semantic versioning of this module.

Please use the following commit types: chore, feat, fix.

If a PR includes any breaking change, please add ! such as feat! and fix!.

We will use these commit types to determine the next version. If we have only fix (and chore) changes, we will increase the patch version. If we have any feat change, we will increase the minor version. If we have any feat! or fix! change, we will increase the major version.

For example:

fix: Handle empty structs in C data interface

fix!: Fix performance regression with API change

chore: Update CI environment

feat: Support new encoding type

feat!: Reconstruct API

Did you find a bug?

The Apache Arrow .NET project uses GitHub as a bug tracker. To report a bug, sign in to your GitHub account, navigate to GitHub issues and click on New issue .

Before you create a new bug entry, we recommend you first search among existing issues in GitHub.

Did you write a patch that fixes a bug or brings an improvement?

  • Create a GitHub issue and submit your changes as a GitHub Pull Request.
  • Reference the issue in your PR description.
  • Add the PR title. The PR title will be used as the eventual commit message, so please make it descriptive but succinct.

Example #1:

chore: Document the pull request process

## What's Changed

Explain how to open a pull request and what the title, body, and labels should be.

Closes #12345.

Example #2:

feat: Expose Netty server builder in Flight

## What's Changed

Allow direct usage of gRPC APIs for low-level control.

Closes #42424.

Minor fixes

Any functionality change should have a GitHub issue opened. For minor changes that affect documentation, you do not need to open up a GitHub issue. If your changes meet one of the following, they're minor changes:

  • Grammar, usage and spelling fixes that affect no more than 2 files
  • Documentation updates affecting no more than 2 files and not more than 500 words.

Do you want to propose a significant new feature or an important refactoring?

We ask that all discussions about major changes in the codebase happen publicly on the GitHub issues or arrow-dev mailing-list.

Do you have questions about the source code, the build procedure or the development process?

You can also ask on the arrow-dev mailing-list or GitHub Discussions.

Further information

Please read our development documentation or look through the New Contributor's Guide.