Przewodnik programisty¶
Kod tego projektu jest przeznaczony dla środowiska uruchmieniowego języka Python w wersji 3.7 lub nowszej. Automatyczne testy są uruchamiane na każdym powszechnie dostępnym środowisku które spełnia to wymaganie (w chwili pisania tego dokumentu są to 3.7 i 3.8). Z powodu ograniczonej dostępności środowiska w wersji 3.8, zalecam do programowania lokalnie używać wersji 3.7, która jest dostępna zarówno w Debianie 10 (Buster) jak i Ubuntu 18.04. Dla innych wersji Ubuntu jest możliwość zainstalowania pozasystemowych wersji Pythona używając respozytorium PPA Deadsnakes. Niestety w Debianie wymaga to samodzielnej kompilacji odpowiedniej wersji z pakietu źródłowego.
Wszystko co trzeba na początek¶
Zacznij od zrobienia forka na Githubie i sklonuj go do lokalnej kopii.
$ git clone git@github.com:myname/bip.git
$ cd bip
Od tej pory wszystkie polecenia są wykonywane w katalogu lokalnej kopii.
Połącz kod w swojej kopii z repozytorium macierzystym.
$ git remote add upstream https://github.com/zgoda/bip.git
$ git fetch upstream
Utwórz środowisko wirtualne i zainstaluj podstawowe pakiety.
$ /usr/bin/python3.7 -m venv venv
$ source venv/bin/activate
$ pip install -U pip wheel
Od tej pory wszystkie polecenia są wykonywane z aktywowanym środowiskiem wirtualnym.
Zainstaluj zależności. Pakiet ma zdefiniowany tryb dev
który instaluje wiele przydatnych narzędzi programistycznych, zorientowanych w szczególności na jakość kodu. Proponuję uruchamiać flake8 .
przed każdym commitem, a najlepiej ustawić sobie linting w edytorze.
$ pip install -U -e .[dev]
W tym momencie kod powinien już być uruchamialny, ale wcześniej dobrze będzie utworzyć sobie plik z lokalnymi zmiennymi środowiskowymi .env
jak poniżej.
export FLASK_ENV="development"
export SITE_JSON="${PWD}/conf/site.json"
export DB_NAME="${PWD}/db.sqlite3"
export SECRET_KEY="losowe znaki"
Zastąp losowe znaki
czymś co jest naprawdę losowe, poniżej przykład.
$ python -c 'import os,hashlib; print(hashlib.sha256(os.urandom(64)).hexdigest())'
W tym momencie brakuje jeszcze tylko danych instytucji.
$ cp conf/site.json.example conf/site.json
Dane w przykładowym pliku powinny być wystarczające na początek.
Gratulacje, twoja kopia kodu źródłowego pakietu biuletyn-bip
jest gotowa do pracy. Baw się dobrze!