blob: 99c2fc6b6814b9d2292284f074bdd586921e4de3 [file] [view]
<!---
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
# How to contribute to Apache Arrow Erlang
We utilize [Conventional
Commits](https://www.conventionalcommits.org/en/v1.0.0/) 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 Arrow Erlang project uses GitHub as a bug tracker. To report a bug,
sign in to your GitHub account, navigate to [GitHub
issues](https://github.com/apache/arrow-erlang/issues) and click on
**New issue**.
Before you create a new bug entry, we recommend you first search among
existing issues in
[GitHub](https://github.com/apache/arrow-erlang/issues).
## 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](https://docs.github.com/en/issues/tracking-your-work-with-issues/using-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword) 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 Cowboy 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](https://lists.apache.org/list.html?dev@arrow.apache.org).
## 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](https://lists.apache.org/list.html?dev@arrow.apache.org)
or [GitHub
Discussions](https://github.com/apache/arrow-erlang/discussions).
## Further information
Please read our [development
documentation](https://arrow.apache.org/docs/developers/index.html) or
look through the [New Contributor's
Guide](https://arrow.apache.org/docs/developers/guide/index.html).
### Forks
We deploy a preview of the ExDoc documentation of any fork as a part of our
tests.
On a commit to all branches, the rendered static site will be
published to GitHub Pages using GitHub Actions. The latest commit is
only visible because all publications use the same url:
https://${YOUR_GITHUB_ACCOUNT}.github.io/arrow-erlang/
You need to configure your fork repository to use this feature:
1. Enable GitHub Pages on your fork:
1. Open https://github.com/${YOUR_GITHUB_ACCOUNT}/arrow-erlang/settings/pages
2. Select "GitHub Actions" as "Source"
2. Accept publishing GitHub Pages from all branches on your fork:
1. Open https://github.com/${YOUR_GITHUB_ACCOUNT}/arrow-erlang/settings/environments
2. Select the "github-pages" environment
3. Change the default "Deployment branches and tags" rule:
1. Press the "Edit" button
2. Change the "Name pattern" to `*` from `main` or `gh-pages`
See also the [GitHub Pages
documentation](https://docs.github.com/en/pages/getting-started-with-github-pages/configuring-a-publishing-source-for-your-github-pages-site#publishing-with-a-custom-github-actions-workflow).
FYI: You can also generate the site for https://arrow.apache.org/erlang/main
to `doc/` locally by running the following:
```shell
rebar3 ex_doc
```