<!---
  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 Cookbook

## Did you find a bug?

If you find a bug in the cookbook, please let us know by opening an issue on GitHub.

## What makes a good recipe?

Recipes are solutions to specific problems that the user can copy/paste into their own code.
They answer specific questions that users might search for on Google or StackOverflow.
Some questions might be trivial, like how to read a CSV, while others might be more 
advanced; the complexity doesn't matter. If there is someone searching for that question,
the cookbook should have an answer for it.

Recipes should provide immediate instructions for how to perform a task, including a 
code example that can be copied and pasted. They do not need to explain the theoretical
knowledge behind the solution, but can instead link the relevant part of the Arrow user
guide and API documentation.

## Do you want to contribute new recipes or improvements?

We always welcome contributions of new recipes for the cookbook.  
To make a contributions, please fork this repo and submit a pull request with your contribution.

Any changes which add new code chunks or recipes must be tested when the `make test` command
is run, please refer to the language specific cookbook contribution documentation for information on
how to make your recipes testable.

 * [Contributing to C++ Cookbook](cpp/CONTRIBUTING.md)
 * [Contributing to Java Cookbook](java/CONTRIBUTING.rst)
 * [Contributing to Python Cookbook](python/CONTRIBUTING.rst)
 * [Contributing to R Cookbook](r/CONTRIBUTING.md)

 ------------------------------------------------------------------------

All participation in the Apache Arrow project is governed by the Apache
Software Foundation’s [code of
conduct](https://www.apache.org/foundation/policies/conduct.html).

## Merging Pull Requests

We use the GitHub UI to merge Pull Requests instead of a script as we do on the
main Arrow repository. The repo is configured to use `Squash and merge`.

## Deployment and CI

We use GitHub actions for our Continuous Integration tests and to deploy the
versions of the cookbooks.

A Pull Request with base `main` will run the cookbooks using the nightly version
of Apache Arrow.

A Pull Request with base `stable` will run the cookbooks using the latest stable
version released of Apache Arrow.

Commits merged on `main` will deploy the development cookbooks using the latest
Apache Arrow nightlies version to: https://arrow.apache.org/cookbook/dev

Commits merge on `stable` will deploy the stable version of the cookbooks
using the latest released version of Apache Arrow to build the cookbooks:
https://arrow.apache.org/cookbook