Skip to content

Commit 21a2973

Browse files
authored
minor: update versions and paths in changelog scripts (#2429)
* update versions and paths in changelog scripts * Update release process README * fix crate publish order * add ASL header for dot file
1 parent af4c667 commit 21a2973

5 files changed

+357
-20
lines changed

dev/release/README.md

+39-17
Original file line numberDiff line numberDiff line change
@@ -103,9 +103,6 @@ If there is a ballista release, update versions in ballista Cargo.tomls, run
103103
./dev/update_ballista_versions.py 0.5.0
104104
```
105105

106-
If there is a datafusion python binding release, update versions in
107-
`./python/Cargo.toml`.
108-
109106
Lastly commit the version change:
110107

111108
```
@@ -114,11 +111,15 @@ git commit -a -m 'Update version'
114111

115112
### Update CHANGELOG.md
116113

117-
Manully edit the base version tag argument in
118-
`dev/release/update_change_log-{ballista,datafusion,python}.sh`. Commits
114+
Manually edit the base version tag argument in
115+
`dev/release/update_change_log-{ballista,datafusion}.sh`. Commits
119116
between the base verstion tag and the latest upstream master will be used to
120117
populate the changelog content.
121118

119+
You will need a GitHub Personal Access Token for the following steps. Follow
120+
[these instructions](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token)
121+
to generate one if you do not already have one.
122+
122123
```bash
123124
# create the changelog
124125
CHANGELOG_GITHUB_TOKEN=<TOKEN> ./dev/release/update_change_log-all.sh
@@ -137,12 +138,12 @@ the changelog and update the PR accordingly.
137138

138139
## Prepare release candidate artifacts
139140

140-
After the PR gets merged, you are ready to create releaes artifacts based off the
141+
After the PR gets merged, you are ready to create release artifacts based off the
141142
merged commit.
142143

143144
(Note you need to be a committer to run these scripts as they upload to the apache svn distribution servers)
144145

145-
### Pick an Release Candidate (RC) number
146+
### Pick a Release Candidate (RC) number
146147

147148
Pick numbers in sequential order, with `0` for `rc0`, `1` for `rc1`, etc.
148149

@@ -151,7 +152,7 @@ Pick numbers in sequential order, with `0` for `rc0`, `1` for `rc1`, etc.
151152
While the official release artifacts are signed tarballs and zip files, we also
152153
tag the commit it was created for convenience and code archaeology.
153154

154-
Using a string such as `5.1.0` as the `<version>`, create and push the tag thusly:
155+
Using a string such as `5.1.0` as the `<version>`, create and push the tag by running these commands:
155156

156157
```shell
157158
git fetch apache
@@ -160,9 +161,6 @@ git tag <version>-<rc> apache/master
160161
git push apache <version>
161162
```
162163

163-
This should trigger the `Python Release Build` Github Action workflow for the
164-
pushed tag. You can monitor the pipline run status at https://github.com/apache/arrow-datafusion/actions/workflows/python_build.yml.
165-
166164
### Create, sign, and upload artifacts
167165

168166
Run `create-tarball.sh` with the `<version>` tag and `<rc>` and you found in previous steps:
@@ -240,7 +238,7 @@ the `release-tarball.sh` script:
240238
./dev/release/release-tarball.sh 5.1.0 0
241239
```
242240

243-
Congratulations! The release is now offical!
241+
Congratulations! The release is now official!
244242

245243
### Create release git tags
246244

@@ -274,6 +272,14 @@ create an account and login to crates.io before asking to be added as an owner
274272
of the following crates:
275273

276274
- [datafusion](https://crates.io/crates/datafusion)
275+
- [datafusion-cli](https://crates.io/crates/datafusion-cli)
276+
- [datafusion-common](https://crates.io/crates/datafusion-common)
277+
- [datafusion-data-access](https://crates.io/crates/datafusion-data-access)
278+
- [datafusion-expr](https://crates.io/crates/datafusion-expr)
279+
- [datafusion-jit](https://crates.io/crates/datafusion-jit)
280+
- [datafusion-physical-expr](https://crates.io/crates/datafusion-physical-expr)
281+
- [datafusion-proto](https://crates.io/crates/datafusion-proto)
282+
- [datafusion-row](https://crates.io/crates/datafusion-row)
277283
- [ballista](https://crates.io/crates/ballista)
278284
- [ballista-core](https://crates.io/crates/ballista-core)
279285
- [ballista-executor](https://crates.io/crates/ballista-executor)
@@ -282,15 +288,32 @@ of the following crates:
282288
Download and unpack the official release tarball
283289

284290
Verify that the Cargo.toml in the tarball contains the correct version
285-
(e.g. `version = "5.1.0"`) and then publish the crate with the
286-
following commands
291+
(e.g. `version = "5.1.0"`) and then publish the crates with the
292+
following commands. Crates need to be published in the correct order as shown in this diagram.
293+
294+
![](crate-deps.svg)
295+
296+
_To update this diagram, manually edit the dependencies in [crate-deps.dot](crate-deps.dot) and then run:_
297+
298+
``` bash
299+
dot -Tsvg dev/release/crate-deps.dot > dev/release/crate-deps.svg
300+
```
287301

288302
```shell
289-
(cd datafusion-common && cargo publish)
290-
(cd datafusion-expr && cargo publish)
303+
(cd data-access && cargo publish)
304+
(cd datafusion/common && cargo publish)
305+
(cd datafusion/expr && cargo publish)
306+
(cd datafusion/physical-expr && cargo publish)
307+
(cd datafusion/jit && cargo publish)
308+
(cd datafusion/row && cargo publish)
291309
(cd datafusion && cargo publish)
310+
(cd datafusion/proto && cargo publish)
311+
(cd datafusion-cli && cargo publish)
292312
```
293313

314+
Note that `datafusion-cli` will depend on the previously published version of Ballista (which depends on the
315+
previously published version of DataFusion) until https://github.com/apache/arrow-datafusion/issues/2433 is resolved.
316+
294317
If there is a ballista release, run
295318

296319
```shell
@@ -300,7 +323,6 @@ If there is a ballista release, run
300323
(cd ballista/rust/client && cargo publish)
301324
```
302325

303-
304326
### Publish datafusion-cli on Homebrew and crates.io
305327

306328
For Homebrew, Send a simple PR to update tag and commit hash for the datafusion

dev/release/crate-deps.dot

+62
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
// Licensed to the Apache Software Foundation (ASF) under one
2+
// or more contributor license agreements. See the NOTICE file
3+
// distributed with this work for additional information
4+
// regarding copyright ownership. The ASF licenses this file
5+
// to you under the Apache License, Version 2.0 (the
6+
// "License"); you may not use this file except in compliance
7+
// with the License. You may obtain a copy of the License at
8+
//
9+
// http://www.apache.org/licenses/LICENSE-2.0
10+
//
11+
// Unless required by applicable law or agreed to in writing,
12+
// software distributed under the License is distributed on an
13+
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14+
// KIND, either express or implied. See the License for the
15+
// specific language governing permissions and limitations
16+
// under the License.
17+
18+
digraph G {
19+
20+
datafusion_common
21+
22+
datafusion_data_access
23+
24+
datafusion_expr -> datafusion_common
25+
26+
datafusion_physical_expr -> datafusion_common
27+
datafusion_physical_expr -> datafusion_expr
28+
29+
datafusion_jit -> datafusion_common
30+
datafusion_jit -> datafusion_expr
31+
32+
datafusion_row -> datafusion_common
33+
datafusion_row -> datafusion_expr
34+
datafusion_row -> datafusion_jit
35+
36+
datafusion -> datafusion_common
37+
datafusion -> datafusion_data_access
38+
datafusion -> datafusion_expr
39+
datafusion -> datafusion_jit
40+
datafusion -> datafusion_physical_expr
41+
datafusion -> datafusion_row
42+
43+
datafusion_proto -> datafusion
44+
45+
ballista_core -> datafusion
46+
ballista_core -> datafusion_proto
47+
48+
ballista_scheduler -> ballista_core
49+
ballista_scheduler -> datafusion
50+
51+
ballista_executor -> ballista_core
52+
ballista_executor -> datafusion
53+
54+
ballista -> datafusion
55+
ballista -> ballista_core
56+
ballista -> ballista_scheduler
57+
ballista -> ballista_executor
58+
59+
datafusion_cli -> datafusion
60+
datafusion_cli -> ballista
61+
62+
}

0 commit comments

Comments
 (0)