• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

archery/H03-May-2022-12,1709,255

benchmarking/H23-Feb-2021-4,8163,692

release/H03-May-2022-6,6735,167

tasks/H03-May-2022-15,16312,722

README.mdH A D23-Feb-20215.8 KiB186126

merge.conf.sampleH A D23-Feb-20211.1 KiB2623

merge_arrow_pr.pyH A D23-Feb-202119.8 KiB600406

test_merge_arrow_pr.pyH A D23-Feb-202110.1 KiB318218

README.md

1<!--
2  ~ Licensed to the Apache Software Foundation (ASF) under one
3  ~ or more contributor license agreements.  See the NOTICE file
4  ~ distributed with this work for additional information
5  ~ regarding copyright ownership.  The ASF licenses this file
6  ~ to you under the Apache License, Version 2.0 (the
7  ~ "License"); you may not use this file except in compliance
8  ~ with the License.  You may obtain a copy of the License at
9  ~
10  ~   http://www.apache.org/licenses/LICENSE-2.0
11  ~
12  ~ Unless required by applicable law or agreed to in writing,
13  ~ software distributed under the License is distributed on an
14  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15  ~ KIND, either express or implied.  See the License for the
16  ~ specific language governing permissions and limitations
17  ~ under the License.
18  -->
19
20# Arrow Developer Scripts
21
22This directory contains scripts useful to developers when packaging,
23testing, or committing to Arrow.
24
25Merging a pull request requires being a committer on the project. In addition
26you need to have linked your GitHub and ASF accounts on
27https://gitbox.apache.org/setup/ to be able to push to GitHub as the main
28remote.
29
30NOTE: It may take some time (a few hours) between when you complete
31the setup at GitBox, and when your GitHub account will be added as a
32committer.
33
34## How to merge a Pull request
35
36```
37git remote add apache git@github.com:apache/arrow.git
38```
39
40run the following command
41
42```
43dev/merge_arrow_pr.py
44```
45
46This script uses requests and jira libraries.  Before running this script,
47run the following command to prepare them:
48
49```
50pip install requests jira
51```
52
53This uses the GitHub REST API; if you encounter rate limit issues, you may set
54a `ARROW_GITHUB_API_TOKEN` environment variable to use a Personal Access Token.
55
56You can specify the username and the password of your JIRA account in
57`APACHE_JIRA_USERNAME` and `APACHE_JIRA_PASSWORD` environment variables.
58If these aren't supplied, the script will ask you the values of them.
59
60Note that the directory name of your Arrow git clone must be called arrow.
61
62example output:
63```
64Which pull request would you like to merge? (e.g. 34):
65```
66Type the pull request number (from https://github.com/apache/arrow/pulls) and hit enter.
67```
68=== Pull Request #X ===
69title	Blah Blah Blah
70source	repo/branch
71target	master
72url	https://api.github.com/repos/apache/arrow/pulls/X
73
74Proceed with merging pull request #3? (y/n):
75```
76If this looks good, type y and hit enter.
77```
78From git-wip-us.apache.org:/repos/asf/arrow.git
79 * [new branch]      master     -> PR_TOOL_MERGE_PR_3_MASTER
80Switched to branch 'PR_TOOL_MERGE_PR_3_MASTER'
81
82Merge complete (local ref PR_TOOL_MERGE_PR_3_MASTER). Push to apache? (y/n):
83```
84A local branch with the merge has been created.
85type y and hit enter to push it to apache master
86```
87Counting objects: 67, done.
88Delta compression using up to 4 threads.
89Compressing objects: 100% (26/26), done.
90Writing objects: 100% (36/36), 5.32 KiB, done.
91Total 36 (delta 17), reused 0 (delta 0)
92To git-wip-us.apache.org:/repos/arrow-mr.git
93   b767ac4..485658a  PR_TOOL_MERGE_PR_X_MASTER -> master
94Restoring head pointer to b767ac4e
95Note: checking out 'b767ac4e'.
96
97You are in 'detached HEAD' state. You can look around, make experimental
98changes and commit them, and you can discard any commits you make in this
99state without impacting any branches by performing another checkout.
100
101If you want to create a new branch to retain commits you create, you may
102do so (now or later) by using -b with the checkout command again. Example:
103
104  git checkout -b new_branch_name
105
106HEAD is now at b767ac4... Update README.md
107Deleting local branch PR_TOOL_MERGE_PR_X
108Deleting local branch PR_TOOL_MERGE_PR_X_MASTER
109Pull request #X merged!
110Merge hash: 485658a5
111
112Would you like to pick 485658a5 into another branch? (y/n):
113```
114For now just say n as we have 1 branch
115
116## Verifying Release Candidates
117
118We have provided a script to assist with verifying release candidates:
119
120```shell
121bash dev/release/verify-release-candidate.sh 0.7.0 0
122```
123
124Currently this only works on Linux (patches to expand to macOS welcome!). Read
125the script for information about system dependencies.
126
127On Windows, we have a script that verifies C++ and Python (requires Visual
128Studio 2015):
129
130```
131dev/release/verify-release-candidate.bat apache-arrow-0.7.0.tar.gz
132```
133
134### Verifying the JavaScript release
135
136For JavaScript-specific releases, use a different verification script:
137
138```shell
139bash dev/release/js-verify-release-candidate.sh 0.7.0 0
140```
141
142# Integration testing
143
144Build the following base image used by multiple tests:
145
146```shell
147docker build -t arrow_integration_xenial_base -f docker_common/Dockerfile.xenial.base .
148```
149
150## HDFS C++ / Python support
151
152```shell
153docker-compose build conda-cpp
154docker-compose build conda-python
155docker-compose build conda-python-hdfs
156docker-compose run --rm conda-python-hdfs
157```
158
159## Apache Spark Integration Tests
160
161Tests can be run to ensure that the current snapshot of Java and Python Arrow
162works with Spark. This will run a docker image to build Arrow C++
163and Python in a Conda environment, build and install Arrow Java to the local
164Maven repository, build Spark with the new Arrow artifact, and run Arrow
165related unit tests in Spark for Java and Python. Any errors will exit with a
166non-zero value. To run, use the following command:
167
168```shell
169docker-compose build conda-cpp
170docker-compose build conda-python
171docker-compose build conda-python-spark
172docker-compose run --rm conda-python-spark
173```
174
175If you already are building Spark, these commands will map your local Maven
176repo to the image and save time by not having to download all dependencies.
177Be aware, that docker write files as root, which can cause problems for maven
178on the host.
179
180```shell
181docker-compose run --rm -v $HOME/.m2:/root/.m2 conda-python-spark
182```
183
184NOTE: If the Java API has breaking changes, a patched version of Spark might
185need to be used to successfully build.
186