Repository navigation
Lack of sdist in PyPI for 1.4.0 #1069
Description
Activity
For now we will limit JPype1 to < 1.4.0 in Apache Airflow, but once the sdist version is added back, we will remove the limit.
- added 2 commits that reference this issue
on May 21, 2022 - added a commit that references this issue
on May 21, 2022 Do you have a docker image for an arm build?
@marscher looks like the source dist is missing.
Do you have a docker image for an arm build?
Our images for airlfow are multi-platform: the right platform will be used when you run it on with the right hardware (so ARM will be used when you run it on Mac OS M1 or ARM -based server). But the prod images we publish do not have "build-essentials" so they will not install jpype1 from sdist (it needs gcc etc.).
But you can easily test it with "python" image. Even if you have no ARM hardware to run - you can use emulation (10x slower but should be good enough for JPype1).
Example how to run ARM emulation for docker on x86 is here: https://www.stereolabs.com/docs/docker/building-arm-container-on-x86/
When you run an ARM64 installation - you will see that 1.3.0 is installed (via sdist - compiled and built locally):
[jarek:~/code/airflow] main+ 25s 127 ± docker run --rm -it arm64v8/python bash Unable to find image 'arm64v8/python:latest' locally latest: Pulling from arm64v8/python 3a36574378e6: Pull complete a61d3345afba: Pull complete 3e267d6aa58f: Pull complete f647907d26b8: Pull complete 3f0b3e17bdee: Pull complete 61fed966500a: Pull complete 22baf495c35f: Pull complete 633129d184c7: Pull complete 502e0a06218c: Pull complete Digest: sha256:013072bfab03c28f7dbe82e3225cecfdc5416dc1f6ab02c6e6e0bdee54a3c26d Status: Downloaded newer image for arm64v8/python:latest root@ebaf1a8a624b:/# pip install jpype1 Collecting jpype1 Downloading JPype1-1.3.0.tar.gz (820 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 820.3/820.3 KB 5.5 MB/s eta 0:00:00 Preparing metadata (setup.py) ... done Building wheels for collected packages: jpype1 Building wheel for jpype1 (setup.py) ... done Created wheel for jpype1: filename=JPype1-1.3.0-cp310-cp310-linux_aarch64.whl size=425893 sha256=eb774da78e88c2dd604e02a6c79336c621c9e8bf9f3ed4123bce0c2c14eb7b01 Stored in directory: /root/.cache/pip/wheels/f5/c7/8f/c97c6c9868c256c8d17dabb772a2ca9002dcff2912fa8d7d58 Successfully built jpype1 Installing collected packages: jpype1 Successfully installed jpype1-1.3.0 WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv WARNING: You are using pip version 22.0.4; however, version 22.1.1 is available. You should consider upgrading via the '/usr/local/bin/python -m pip install --upgrade pip' command.When you do it for x86_64 you will get 1.4.0 (from pre-compiled wheels):
[jarek@Hyperion:~] 18s % docker run -it python bash root@39c2a7771332:/# pip install jpype1 Collecting jpype1 Downloading JPype1-1.4.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (465 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 465.1/465.1 KB 1.1 MB/s eta 0:00:00 Installing collected packages: jpype1 Successfully installed jpype1-1.4.0 WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv WARNING: You are using pip version 22.0.4; however, version 22.1.1 is available. You should consider upgrading via the '/usr/local/bin/python -m pip install --upgrade pip' command. root@39c2a7771332:/#Terribly sorry about that. I will upload the sdist later. Eventually we should think of handing the pypi release pipeline over to Azure on a git tag push to avoid such a hassle.
Terribly sorry about that. I will upload the sdist later. Eventually we should think of handing the pypi release pipeline over to Azure on a git tag push to avoid such a hassle.
No. problem - glad if we'll get it fixed. It was a bit difficult to wrap head around because we base our "upgrade" mechanism on the "successful" upgrade on AMD and everythins seemed to work fine until the ARM build (building cache for developers) kicked in :)
How many arm python versions does that docker contain? Would it be possible to give me that pattern constructing the wheels (and if necessary repair them for distribution)?
You can see the existing wheel build script that we use of i686 at https://github.com/jpype-project/jpype/blob/master/.azure/scripts/build-wheels.sh
I've just uploaded the source distribution.
Reacted by Gabriel Machado and Phil ElsonHow many arm python versions does that docker contain? Would it be possible to give me that pattern constructing the wheels (and if necessary repair them for distribution)?
We support Python 3.7, 3.8, 3.9, 3.10
I've just uploaded the source distribution.
Indeed - it's there. Confirmed. I am removing the limitation then :)
Thanks a lot for fast response!
4 remaining items
- added a commit that references this issue
on Oct 4, 2022 - added a commit that references this issue
on Dec 7, 2022 - added a commit that references this issue
on Jan 27, 2023 - added 2 commits that reference this issue
on Sep 12, 2024 - added a commit that references this issue
on May 23, 2025 - added a commit that references this issue
on Sep 18, 2025 - added a commit that references this issue
on Oct 16, 2025 - added a commit that references this issue
on Feb 22, 2026 - added a commit that references this issue
on Apr 28, 2026 - added 2 commits that reference this issue
on Jul 23, 2026 - added a commit that references this issue
on Aug 30, 2026
Yesterday the 1.4.0 version was released in PyPI but only binary releases were distributed, not the source one.
This causes a problem with CI system of Apache Airflow (we get JPype1 as transitive dependency of
jaydebeapiwhich is used by our JDBC provider).We are automatically upgrading our dependencies on CI and we upgraded them to 1.4.0 automatically but this upgrade caused our ARM image caching build to fail.
After investigation it turned out that the problem is lack of source distribution for JPype1 for 1.4.0. JPype1 does not publish ARM binary images, so up until 1.3.0 pip automatically built the packages from sdist when instaling JPype1 on ARM. But since 1.4.0 version has no source distribution, trying to install it on ARM, fails.
Could you please publish the source distribution as well on PyPI for 1.4.0 onwards ?
Other solution could be to remove the ARM binary packages, but that could be way more difficult to setup for automation (and would leave other platforms out possibly).
Here is the 1.4.0 PyPI screenshot (missing sdist):
Corresponding 1.3.0 PyPI (sdist is there):