Skip to content

Lack of sdist in PyPI for 1.4.0  #1069

Description

@potiuk

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 jaydebeapi which 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.

#145 96.12 The conflict is caused by:
#145 96.12     jaydebeapi 1.2.3 depends on JPype1; python_version > "2.7" and platform_python_implementation != "Jython"
#145 96.12     The user requested (constraint) jpype1==1.4.0
#145 96.12 
#145 96.12 To fix this you could try to:
#145 96.12 1. loosen the range of package versions you've specified
#145 96.12 2. remove package versions to allow pip attempt to solve the dependency conflict
#145 96.12 

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):

Screenshot 2022-05-21 at 16 35 02

Corresponding 1.3.0 PyPI (sdist is there):

Screenshot 2022-05-21 at 16 35 17

Activity

  1. added a commit that references this issue on May 21, 2022
  2. potiuk commented on May 21, 2022

    @potiuk
    Author

    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.

  3. added a commit that references this issue on May 21, 2022
  4. Thrameos commented on May 22, 2022

    @Thrameos
    Contributor

    Do you have a docker image for an arm build?

    @marscher looks like the source dist is missing.

  5. potiuk commented on May 22, 2022

    @potiuk
    Author

    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:/#
    
  6. marscher commented on May 23, 2022

    @marscher
    Member

    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.

  7. potiuk commented on May 23, 2022

    @potiuk
    Author

    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 :)

  8. Thrameos commented on May 23, 2022

    @Thrameos
    Contributor

    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

  9. marscher commented on May 23, 2022

    @marscher
    Member

    I've just uploaded the source distribution.

  10. potiuk commented on May 27, 2022

    @potiuk
    Author

    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)?

    We support Python 3.7, 3.8, 3.9, 3.10

  11. potiuk commented on May 27, 2022

    @potiuk
    Author

    I've just uploaded the source distribution.

    Indeed - it's there. Confirmed. I am removing the limitation then :)

  12. potiuk commented on May 27, 2022

    @potiuk
    Author

    Thanks a lot for fast response!

  13. 4 remaining items

  14. added a commit that references this issue on Oct 4, 2022
  15. added a commit that references this issue on Dec 7, 2022
  16. added a commit that references this issue on Jan 27, 2023
  17. added a commit that references this issue on Nov 7, 2024
  18. added a commit that references this issue on May 2, 2025
  19. added a commit that references this issue on May 23, 2025
  20. added a commit that references this issue on Sep 18, 2025
  21. added a commit that references this issue on Oct 16, 2025
  22. added a commit that references this issue on Feb 22, 2026
  23. added a commit that references this issue on Apr 28, 2026
  24. added a commit that references this issue on Aug 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions