Zmiany w procesie instalacji - wyjaśnienie Python Wheel - budowanie koła na bramce
Jak instalujemy teraz
Nasza aplikacja ais-dom to pakiet pythona, który dotychczas instalowaliśmy menadżerem pakietów pythona pip
poleceniem pip install ais-dom
.
Aplikacja ma wiele zależności (innych pakietów), to pip dba o to, żeby doinstalować te zależności.
Niektóre pakiety pythona mają rozszerzenia (nie-Pythonowe zależności). Są torozszerzenia lub biblioteki napisane w statycznie typowanym języku, takim jak C, C++ , a nawet Rust lub Go. Żeby zainstalować, pakiet z takimi zależnościami bramka musi albo ściągnąć skompilowany moduł na daną platformę, albo w formie Python Wheel, albo go skompilować na bramce.
Nasze obecne podejście najlepiej podsumować cytując klasyka:
To dlatego dodaliśmy na bramki kompilator do C/C++
Rust:
Go:
Są oczywiste zalety naszego obecnego podejścia. Udostępniamy kody oraz kompilatory na bramce DEV - każdy, kto umie programować, może rozwijać i ulepszać cały system… ale umówmy się, programowanie to nie jest bardzo popularny temat wśród użytkowników AIS.
Trzeba też przyznać, że nasze obecne podejście niesie ze sobą kilka uniedogodnień dla użytkowników “nie programistów”. Końcowy użytkownik nie rozumie, dlaczego instalacja trwa długo, dlaczego podczas instalacji coś się kompiluje, dlaczego trzeba instalować 844MB i mieć na bramce kompilator w Rust???
“Gwóźdź do trumny” dla obecnego modelu aktualizacji
W wersji, nad którą pracujemy, żeby zainstalować crypthography (pakiet, który mamy w zależnościach)
https://cryptography.io/
należałoby doinstalować Rust bo do zbudowania pakietu crypthography wymagany jest teraz Rust:
Rust jest wielki i na bramkach DEV1 dodawanie Rust to nie najlepszy pomysł… dlatego wybieramy inną drogę i zmieniamy proces installacji.
Nowy proces instalacji
Od kolejnej aktualizacji zaczniemy dostarczać zbudowane już pakiety na bramkę.
Z punktu widzenia użytkownika końcowego będzie tylko lepiej, bo instalacja będzie szybka, na bramce możemy zwolnić setki MB miejsca, które zajmują kompilatory.
Możliwe pytania i odpowiedzi
Na czym będziemy kompilować koła?
Na bramce PRO1
Dlaczego twórcy pakietów Python sami nie kompilują modułów?
bo
ubuntu != centos != macOS != AmigaOS != AIS
python2.6 != python2.7 != python3.9 != python3.10
Nikt nie jest w stanie skompilować pakietów pod każdą architekturę systemowo sprzętową.
Czy nie będzie już można kompilować na bramce?
Oczywiście kompilatorów nie usuniemy z repozytorium - jeżeli ktoś będzie chciał coś kodować, to zawsze może sobie doinstalować.
Czy nadal będę mógł zainstalować AIS za pomocą pip tak jak kiedyś?
Tak… ale nie będzie to już wspierane. instalacja z konsoli będzie teraz polegała na uruchomieniu skryptu, ten skrypt pobierze już zbudowane przez nas koła na bramkę - tak teraz będzie wyglądała instalacja.
Zaktualizujemy dokumentację i najnowszą wersję wydamy już “po nowemu”.
Czy jeszcze coś fajnego ta zmiana wprowadzi dla mnie?
Będize można aktualizaować bramkę offline - wystarczy pobrać paczkę na pendrive i uruchomić skrypt.
Dziękujemy za wszystkie pytania więcej informacji znajdziecie poniżej: