maxmind / MaxMind-DB-Reader-python

Python MaxMind DB reader extension
https://maxminddb.readthedocs.org/
Apache License 2.0
178 stars 37 forks source link

Build wheels in multiple platforms with QEMU #160

Closed kpark-hrp closed 7 months ago

kpark-hrp commented 7 months ago

This will build Linux wheels in multiple platforms using QEMU.

Example from cibuildwheel

fixes #159

kpark-hrp commented 7 months ago

@oschwald Can you take a look at this PR? And after this PR is merged, can you do a release for updated/new wheels?

oschwald commented 7 months ago

@kpark-hrp it still hasn't finished building. I think the 30+ minute builds will be an issue. Maybe we could just limit this to auto aarch64 for now and wait to see if anyone specifically requests the other platforms. s390x was discontinued in 2004, for instance.

kpark-hrp commented 7 months ago

@oschwald Make sense. Pushed a commit to trim it down to auto aarch64. Let's see how long this one takes

kpark-hrp commented 7 months ago

@oschwald Still took a while, but brought it down to 17 minutes from 35 minutes. And it looks good to me.

39 wheels produced in 18 minutes:
  maxminddb-2.6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl                                       87 kB
  maxminddb-2.6.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl                                         86 kB
  maxminddb-2.6.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl          85 kB
  maxminddb-2.6.0-cp310-cp310-musllinux_1_1_aarch64.whl                                                              91 kB
  maxminddb-2.6.0-cp310-cp310-musllinux_1_1_i686.whl                                                                 89 kB
  maxminddb-2.6.0-cp310-cp310-musllinux_1_1_x86_64.whl                                                               90 kB
  maxminddb-2.6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl                                       87 kB
  maxminddb-2.6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl                                         86 kB
  maxminddb-2.6.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl          85 kB
  maxminddb-2.6.0-cp311-cp311-musllinux_1_1_aarch64.whl                                                              92 kB
  maxminddb-2.6.0-cp311-cp311-musllinux_1_1_i686.whl                                                                 90 kB
  maxminddb-2.6.0-cp311-cp311-musllinux_1_1_x86_64.whl                                                               91 kB
  maxminddb-2.6.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl                                       88 kB
  maxminddb-2.6.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl                                         88 kB
  maxminddb-2.6.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl          86 kB
  maxminddb-2.6.0-cp312-cp312-musllinux_1_1_aarch64.whl                                                              93 kB
  maxminddb-2.6.0-cp312-cp312-musllinux_1_1_i686.whl                                                                 91 kB
  maxminddb-2.6.0-cp312-cp312-musllinux_1_1_x86_64.whl                                                               92 kB
  maxminddb-2.6.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl                                         88 kB
  maxminddb-2.6.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl                                           87 kB
  maxminddb-2.6.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl            86 kB
  maxminddb-2.6.0-cp38-cp38-musllinux_1_1_aarch64.whl                                                                92 kB
  maxminddb-2.6.0-cp38-cp38-musllinux_1_1_i686.whl                                                                   90 kB
  maxminddb-2.6.0-cp38-cp38-musllinux_1_1_x86_64.whl                                                                 91 kB
  maxminddb-2.6.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl                                         87 kB
  maxminddb-2.6.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl                                           86 kB
  maxminddb-2.6.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl            84 kB
  maxminddb-2.6.0-cp39-cp39-musllinux_1_1_aarch64.whl                                                                91 kB
  maxminddb-2.6.0-cp39-cp39-musllinux_1_1_i686.whl                                                                   89 kB
  maxminddb-2.6.0-cp39-cp39-musllinux_1_1_x86_64.whl                                                                 90 kB
  maxminddb-2.6.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl                                37 kB
  maxminddb-2.6.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl                                  37 kB
  maxminddb-2.6.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl   38 kB
  maxminddb-2.6.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl                                  37 kB
  maxminddb-2.6.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl                                    37 kB
  maxminddb-2.6.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl     38 kB
  maxminddb-2.6.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl                                  37 kB
  maxminddb-2.6.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl                                    37 kB
  maxminddb-2.6.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl     38 kB
oschwald commented 7 months ago

17 minutes isn't ideal, but it also isn't that bad. Thanks !