Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GH-33804: [Python] Add support for manylinux_2_28 wheel #34818

Merged
merged 33 commits into from
May 3, 2023

Conversation

sjperkins
Copy link
Contributor

@sjperkins sjperkins commented Mar 31, 2023

Closes #33804

Rationale for this change

At some point, it would be useful to support the new C++ ABI _GLIBCXX_USE_CXX11_ABI=1 in pyarrow wheels, especially when moving to C++17:

I wanted to create a pyarrow wheel that supported the above ABI and adapted the existing CENTOS 7 manylinux2014 Dockerfile/wheel to produce a AlmaLinux 8 manylinux_2_28 Dockerfile/wheel.

Publishing wheels with a new ABI needs careful consideration so I think this is low priority, but I thought I'd provide this manylinux_2_28 implementation in case it was useful for current/future adoption.

What changes are included in this PR?

A manylinux_2_28 Dockerfile, adopted from the existing manylinux2014 Dockerfile

Are these changes tested?

Manually tested at present

Are there any user-facing changes?

Yes, there's a major ABI change, as pyarrow will be compiled with _GLIBCXX_USE_CXX11_ABI=1

Supercedes:

@github-actions
Copy link

@liujiajun
Copy link

Hi I am new to Arrow and I would like to ask a dumb question here:

From my understanding, the current situation (before this PR) is

  • pyarrow is compiled with the old ABI
  • arrow is compile with the newer ABI. This can be verified by nm -C libarrow.so.1100 | grep cxx11

Then, how come pyarrow is able to use arrow without a runtime error?

Thanks!

@sjperkins
Copy link
Contributor Author

Could you rebase on main? I want to test "java-jars" jobs because it also uses vcpkg.

done

@github-actions github-actions bot added awaiting change review Awaiting change review and removed awaiting changes Awaiting changes labels Apr 13, 2023
@kou
Copy link
Member

kou commented Apr 13, 2023

Thanks! But sorry... Please one more rebase for #35092...

@sjperkins
Copy link
Contributor Author

sjperkins commented Apr 13, 2023

Thanks! But sorry... Please one more rebase for #35092...

No problem! Also, sorry for always merging, its from a personal tendency to avoid rebasing and the often messy resolution processes, as well as possibly messing up the history of the github PR, but having re-read the Contributing Guidelines I'll just squash commits in future.

@kou
Copy link
Member

kou commented Apr 14, 2023

@github-actions crossbow submit java-jars

@github-actions
Copy link

Revision: 22bb08f

Submitted crossbow builds: ursacomputing/crossbow @ actions-dc1ed1ccb8

Task Status
java-jars Github Actions

@sjperkins
Copy link
Contributor Author

Revision: 22bb08f

Submitted crossbow builds: ursacomputing/crossbow @ actions-dc1ed1ccb8

Task Status
java-jars Github Actions

Looks promising. Should I rebase on main again?

@kou
Copy link
Member

kou commented Apr 15, 2023

Not needed but cat we merge this after we release 12.0.0?
If we merge this immediately, we can't use the current vcpkg cache to build 12.0.0 artifacts.

@kou
Copy link
Member

kou commented May 3, 2023

The 12.0.0 vote passed.
So I merge this.

@kou kou merged commit 42d42b1 into apache:main May 3, 2023
.env Show resolved Hide resolved
@github-actions github-actions bot added awaiting changes Awaiting changes and removed awaiting change review Awaiting change review labels May 3, 2023
@ursabot
Copy link

ursabot commented May 4, 2023

Benchmark runs are scheduled for baseline = 205ceb9 and contender = 42d42b1. 42d42b1 is a master commit associated with this PR. Results will be available as each benchmark for each run completes.
Conbench compare runs links:
[Finished ⬇️0.0% ⬆️0.0%] ec2-t3-xlarge-us-east-2
[Finished ⬇️1.1% ⬆️0.03%] test-mac-arm
[Finished ⬇️0.0% ⬆️0.0%] ursa-i9-9960x
[Finished ⬇️0.75% ⬆️0.09%] ursa-thinkcentre-m75q
Buildkite builds:
[Finished] 42d42b11 ec2-t3-xlarge-us-east-2
[Finished] 42d42b11 test-mac-arm
[Finished] 42d42b11 ursa-i9-9960x
[Finished] 42d42b11 ursa-thinkcentre-m75q
[Finished] 205ceb99 ec2-t3-xlarge-us-east-2
[Finished] 205ceb99 test-mac-arm
[Finished] 205ceb99 ursa-i9-9960x
[Finished] 205ceb99 ursa-thinkcentre-m75q
Supported benchmarks:
ec2-t3-xlarge-us-east-2: Supported benchmark langs: Python, R. Runs only benchmarks with cloud = True
test-mac-arm: Supported benchmark langs: C++, Python, R
ursa-i9-9960x: Supported benchmark langs: Python, R, JavaScript
ursa-thinkcentre-m75q: Supported benchmark langs: C++, Java

@ursabot
Copy link

ursabot commented May 4, 2023

['Python', 'R'] benchmarks have high level of regressions.
test-mac-arm

@sjperkins sjperkins deleted the manylinux-2-28-branch2 branch May 4, 2023 07:34
kou pushed a commit that referenced this pull request May 6, 2023
### Rationale for this change

- #34818 pinned vcpkg to a non-release master branch commit.
- This was to include unreleased changes, specifically microsoft/vcpkg#29674.

### What changes are included in this PR?

This pins vcpkg to the official 2023.04.15 release (commit microsoft/vcpkg@501db0f)

### Are these changes tested?

I've successfully test that the following local wheel builds succeed:

```bash
$ ARCH=amd64 PYTHON=3.10 archery docker run python-wheel-manylinux-2014
$ ARCH=amd64 PYTHON=3.10 archery docker run python-wheel-manylinux-2-28
```

### Are there any user-facing changes?

I don't believe so

* Closes: #35099

Authored-by: Simon Perkins <[email protected]>
Signed-off-by: Sutou Kouhei <[email protected]>
liujiacheng777 pushed a commit to LoongArch-Python/arrow that referenced this pull request May 11, 2023
…#34818)

Closes apache#33804 

### Rationale for this change

At some point, it would be useful to support the new C++ ABI `_GLIBCXX_USE_CXX11_ABI=1` in pyarrow wheels, especially when moving to C++17:

- apache#32415

I wanted to create a pyarrow wheel that supported the above ABI and adapted the existing CENTOS 7 manylinux2014 Dockerfile/wheel to produce a AlmaLinux 8 manylinux_2_28 Dockerfile/wheel.

Publishing wheels with a new ABI needs [careful consideration](https://pypackaging-native.github.io/key-issues/native-dependencies/cpp_deps/) so I think this is low priority, but I thought I'd provide this manylinux_2_28 implementation in case it was useful for current/future adoption. 

### What changes are included in this PR?

A manylinux_2_28 Dockerfile, adopted from the existing manylinux2014 Dockerfile

### Are these changes tested?

Manually tested at present

### Are there any user-facing changes?

Yes, there's a major ABI change, as pyarrow will be compiled with `_GLIBCXX_USE_CXX11_ABI=1`
* Closes: apache#33804

Supercedes:
* apache#33805
* Closes: apache#33804

Lead-authored-by: Simon Perkins <[email protected]>
Co-authored-by: Sutou Kouhei <[email protected]>
Signed-off-by: Sutou Kouhei <[email protected]>
liujiacheng777 pushed a commit to LoongArch-Python/arrow that referenced this pull request May 11, 2023
…pache#35430)

### Rationale for this change

- apache#34818 pinned vcpkg to a non-release master branch commit.
- This was to include unreleased changes, specifically microsoft/vcpkg#29674.

### What changes are included in this PR?

This pins vcpkg to the official 2023.04.15 release (commit microsoft/vcpkg@501db0f)

### Are these changes tested?

I've successfully test that the following local wheel builds succeed:

```bash
$ ARCH=amd64 PYTHON=3.10 archery docker run python-wheel-manylinux-2014
$ ARCH=amd64 PYTHON=3.10 archery docker run python-wheel-manylinux-2-28
```

### Are there any user-facing changes?

I don't believe so

* Closes: apache#35099

Authored-by: Simon Perkins <[email protected]>
Signed-off-by: Sutou Kouhei <[email protected]>
ArgusLi pushed a commit to Bit-Quill/arrow that referenced this pull request May 15, 2023
…#34818)

Closes apache#33804 

### Rationale for this change

At some point, it would be useful to support the new C++ ABI `_GLIBCXX_USE_CXX11_ABI=1` in pyarrow wheels, especially when moving to C++17:

- apache#32415

I wanted to create a pyarrow wheel that supported the above ABI and adapted the existing CENTOS 7 manylinux2014 Dockerfile/wheel to produce a AlmaLinux 8 manylinux_2_28 Dockerfile/wheel.

Publishing wheels with a new ABI needs [careful consideration](https://pypackaging-native.github.io/key-issues/native-dependencies/cpp_deps/) so I think this is low priority, but I thought I'd provide this manylinux_2_28 implementation in case it was useful for current/future adoption. 

### What changes are included in this PR?

A manylinux_2_28 Dockerfile, adopted from the existing manylinux2014 Dockerfile

### Are these changes tested?

Manually tested at present

### Are there any user-facing changes?

Yes, there's a major ABI change, as pyarrow will be compiled with `_GLIBCXX_USE_CXX11_ABI=1`
* Closes: apache#33804

Supercedes:
* apache#33805
* Closes: apache#33804

Lead-authored-by: Simon Perkins <[email protected]>
Co-authored-by: Sutou Kouhei <[email protected]>
Signed-off-by: Sutou Kouhei <[email protected]>
ArgusLi pushed a commit to Bit-Quill/arrow that referenced this pull request May 15, 2023
…pache#35430)

### Rationale for this change

- apache#34818 pinned vcpkg to a non-release master branch commit.
- This was to include unreleased changes, specifically microsoft/vcpkg#29674.

### What changes are included in this PR?

This pins vcpkg to the official 2023.04.15 release (commit microsoft/vcpkg@501db0f)

### Are these changes tested?

I've successfully test that the following local wheel builds succeed:

```bash
$ ARCH=amd64 PYTHON=3.10 archery docker run python-wheel-manylinux-2014
$ ARCH=amd64 PYTHON=3.10 archery docker run python-wheel-manylinux-2-28
```

### Are there any user-facing changes?

I don't believe so

* Closes: apache#35099

Authored-by: Simon Perkins <[email protected]>
Signed-off-by: Sutou Kouhei <[email protected]>
rtpsw pushed a commit to rtpsw/arrow that referenced this pull request May 16, 2023
…#34818)

Closes apache#33804 

### Rationale for this change

At some point, it would be useful to support the new C++ ABI `_GLIBCXX_USE_CXX11_ABI=1` in pyarrow wheels, especially when moving to C++17:

- apache#32415

I wanted to create a pyarrow wheel that supported the above ABI and adapted the existing CENTOS 7 manylinux2014 Dockerfile/wheel to produce a AlmaLinux 8 manylinux_2_28 Dockerfile/wheel.

Publishing wheels with a new ABI needs [careful consideration](https://pypackaging-native.github.io/key-issues/native-dependencies/cpp_deps/) so I think this is low priority, but I thought I'd provide this manylinux_2_28 implementation in case it was useful for current/future adoption. 

### What changes are included in this PR?

A manylinux_2_28 Dockerfile, adopted from the existing manylinux2014 Dockerfile

### Are these changes tested?

Manually tested at present

### Are there any user-facing changes?

Yes, there's a major ABI change, as pyarrow will be compiled with `_GLIBCXX_USE_CXX11_ABI=1`
* Closes: apache#33804

Supercedes:
* apache#33805
* Closes: apache#33804

Lead-authored-by: Simon Perkins <[email protected]>
Co-authored-by: Sutou Kouhei <[email protected]>
Signed-off-by: Sutou Kouhei <[email protected]>
rtpsw pushed a commit to rtpsw/arrow that referenced this pull request May 16, 2023
…pache#35430)

### Rationale for this change

- apache#34818 pinned vcpkg to a non-release master branch commit.
- This was to include unreleased changes, specifically microsoft/vcpkg#29674.

### What changes are included in this PR?

This pins vcpkg to the official 2023.04.15 release (commit microsoft/vcpkg@501db0f)

### Are these changes tested?

I've successfully test that the following local wheel builds succeed:

```bash
$ ARCH=amd64 PYTHON=3.10 archery docker run python-wheel-manylinux-2014
$ ARCH=amd64 PYTHON=3.10 archery docker run python-wheel-manylinux-2-28
```

### Are there any user-facing changes?

I don't believe so

* Closes: apache#35099

Authored-by: Simon Perkins <[email protected]>
Signed-off-by: Sutou Kouhei <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Packaging][Python] Add support for manylinux_2_28 wheels
5 participants