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

🚀 Action plan for hosting prebuilt wheels #3013

Open
T-Dynamos opened this issue May 10, 2024 · 0 comments
Open

🚀 Action plan for hosting prebuilt wheels #3013

T-Dynamos opened this issue May 10, 2024 · 0 comments

Comments

@T-Dynamos
Copy link
Contributor

T-Dynamos commented May 10, 2024

As isolated build were introduced in #3007 , now we can build wheels for recipes.

This will allow us build app without any compilation step in near future.
This way we could also support for build on windows (and other platforms).

After all recipes are ready for wheel packaging, we may create a separate project which will work by downloading prebuilt things and then build using gradle.

An hypothetical directory structure of that project may look like:

~$ ls
main.py
buildozer.spec

~$ p4abuilder init

... This will initialize directory structure

~$ ls
python_bundle # contains site-packages
android_build # contains gradle project
main.py # other project files
buildozer.spec

~$ p4abuilder install polars

... installs prebuilt package into python_bundle

~$ p4abuilder build
... will automatically pack changed files into private.tar
... and same with site packages and then will call gradle for build

p4abuilder is a hypothetical name 😄

Pros:

  • Allow developers to get direct access to gradle files and site-packages.
  • Build app faster, no compilation needed.
  • Will support every platform which can run gradle (java)

Cons:

  • We can't really upload every release of recipe, developers are forced to use latest versions.

I think this can be solved, we can host multiple versions but only for selected packages.

For now we have pending recipes which we need to port to PyProjectRecipe.

Current State

This will be updated side by side as recipes are ported.

Ready

Click to view
  • pydantic-core
  • kiwisolver
  • cryptography
  • pandas
  • matplotlib
  • numpy
  • pyreqwest_impersonate
  • uvloop
  • Pillow
  • ffpyplayer
  • sqlalchemy
  • pyjnius

Backlog

Click to view
  • sympy
  • pyleveldb
  • atom
  • decorator
  • pyaml
  • protobuf_cpp
  • omemo-backend-signal
  • spine
  • audiostream
  • pynacl
  • lxml
  • pysha3
  • ruamel.yaml
  • twisted
  • zeroconf
  • preppy
  • vispy
  • kivy3
  • x3dh
  • pyopenssl
  • zbarlight
  • flask
  • pyusb
  • apsw
  • gevent
  • pysdl2
  • coverage
  • coincurve
  • feedparser
  • pycparser
  • android
  • cython
  • zope_interface
  • ujson
  • omemo
  • argon2-cffi
  • secp256k1
  • zope
  • pyzmq
  • pygame
  • materialyoucolor
  • reportlab
  • aiohttp
  • pyogg
  • storm
  • pyjnius
  • pyicu
  • cymunk
  • setuptools
  • netifaces
  • m2crypto
  • ifaddrs
  • cffi
  • freetype-py
  • evdev
  • xeddsa
  • py3dns
  • six
  • tflite-runtime
  • regex
  • pycrypto
  • jedi
  • scrypt
  • bcrypt
  • enaml
  • pymunk
  • pyopenal
  • shapely
  • pycryptodome
  • pyzbar
  • wsaccel
  • zbar
  • pyrxp
  • ifaddr
  • psycopg2
  • pyproj
  • msgpack-python
  • pybind11
  • av
  • libtribler
  • greenlet
  • groestlcoin_hash
  • ethash

Libs

Click to view
  • librt
  • sdl2
  • libx264
  • libxml2
  • sdl2_ttf
  • sqlite3
  • libcurl
  • libshine
  • scipy
  • libtorrent
  • hostpython3
  • ffpyplayer_codecs
  • openssl
  • libbz2
  • snappy
  • libvpx
  • libexpat
  • opencv
  • genericndkbuild
  • libogg
  • brokenrecipe
  • libwebp
  • harfbuzz
  • leveldb
  • jpeg
  • openal
  • libxslt
  • sdl2_mixer
  • liblzma
  • libvorbis
  • kivy
  • vlc
  • boost
  • python3
  • libglob
  • fontconfig
  • ffmpeg
  • libgeos
  • libsecp256k1
  • libpq
  • libpcre
  • libffi
  • freetype
  • sdl2_image
  • lapack
  • av_codecs
  • icu
  • libzbar
  • libsodium
  • libmysqlclient
  • pil
  • png
  • opencv_extras
  • libzmq
  • libiconv

TODO:

  • Think how to package libs.

CC: @misl6 Feel free to improve the plan.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant