Skip to content
Snippets Groups Projects
Commit 07a33c57 authored by jan.bednarik's avatar jan.bednarik
Browse files

Basic readme and makefile

parent c5dd3294
No related branches found
No related tags found
No related merge requests found
Makefile 0 → 100644
#!/usr/bin/make -f
PYTHON = python
VENV = .venv
PORT = 8006
help:
@echo "Setup:"
@echo " venv Setup virtual environment"
@echo " install Install dependencies to venv"
@echo " install-hooks Install pre-commit hooks"
@echo " hooks Run pre-commit hooks manually"
@echo ""
@echo "Application:"
@echo " run Run the application on port ${PORT}"
@echo " shell Run Django shell"
@echo ""
@echo "Database:"
@echo " migrations Generate migrations"
@echo " migrate Run migrations"
@echo ""
venv: .venv/bin/python
.venv/bin/python:
${PYTHON} -m venv ${VENV}
install: venv
${VENV}/bin/pip install -r requirements/base.txt
install-hooks:
pre-commit install --install-hooks
hooks:
pre-commit run -a
run: venv
${VENV}/bin/python manage.py runserver ${PORT}
shell: venv
${VENV}/bin/python manage.py shell_plus
migrations: venv
${VENV}/bin/python manage.py makemigrations
migrate: venv
${VENV}/bin/python manage.py migrate
.PHONY: help venv install install-hooks hooks run shell
.PHONY: migrations migrate
# EOF
README.md 0 → 100644
# Maják
Maják je CMS pro Pirátské weby. Postavený je na [Wagtail](https://wagtail.io/).
## Vývoj
Pro vývoj je definován pomocný `Makefile` pro časté akce.
### Lokální instalace a spuštění
#### Vytvoření virtualenv pro instalaci závislostí
Vytvoř virtualenv:
$ make venv
Vytvoří virtualenv ve složce `.venv`. Předpokládá že výchozí `python` v terminálu
je Python 3. Pokud tomu tak není, použijte třeba [Pyenv](https://github.com/pyenv/pyenv)
pro instalaci více verzí Pythonu bez rizika rozbití systému.
#### Aktivace virtualenvu
Před prací na projektu je třeba aktivovat virtualenv. To bohužel nejde dělat
pomocí nástroje `make`. Je třeba zavolat příkaz:
$ source .venv/bin/activate
Můžete asi na to vytvořit alias pro shell. Do `~/.bash_profile` nebo `~/.zshrc`
nebo jiného konfiguračního souboru dle vašeho shellu přidejte:
alias senv='source .venv/bin/activate'
A pak můžete virtualenv aktivovat pouze jednoduchým voláním:
$ senv
Pro sofistikovanější řešení, které vám aktivuje virtualenv při změně adresáře na
adresář s projektem, slouží nástroj [direnv](https://direnv.net/).
Deaktivace virtualenvu se dělá příkazem:
$ deactivate
#### Instalace závislostí
V aktivovaném virtualenvu spusťte:
$ make install
To nainstaluje Pythonní závislosti pro vývoj projektu na lokále.
#### Nastavení environment proměnných
Nastav environment proměnné (viz konfigurace výše). Pro jednoduchost doporučujeme
použít [direnv](https://direnv.net/), který nastaví environment proměnné pro vývoj
při změně adresáře na adresář s projektem.
### Management projektu
#### Migrace databáze
Aplikuj migrace databáze:
$ make migrate
Při změně modelů vygeneruj migrace pomocí:
$ make migrations
#### Spuštění development serveru
Django development server na portu `8003` se spustí příkazem:
$ make run
Poté můžete otevřít web na adrese [http://localhost:8003](http://localhost:8003)
#### Django shell
Django shell používající `shell_plus` z Django extensions spustíte:
$ make shell
### Code quality
K formátování kódu se používá [black](https://github.com/psf/black). Doporučujeme
ho nainstalovat do vašeho editoru kódu, aby soubory přeformátoval po uložení.
Přeformátování kódu nástrojem `black` je součástí `pre-commit` hooks (viz níže).
Součástí `pre-commit` hooků je také automatické seřazení importů v Pythonních
souborech nástrojem [isort](https://github.com/timothycrosley/isort/).
### Pre-commit hooky
Použivá se [pre-commit](https://pre-commit.com/) framework pro management git
pre-commit hooks.
Máte-li pre-commit framework [nainstalovaný](https://pre-commit.com/#installation)
spusttě příkaz:
$ make install-hooks
Ten naisntaluje hooky pro projekt. A poté při každém commitu dojde k požadovaným
akcím na změněných souborech.
Ručně se dají hooky na všechny soubory spustit příkazem:
$ make hooks
## Upgrade závislostí
K upgrade se používají [pip-tools](https://github.com/jazzband/pip-tools) (`pip install pip-tools`):
$ cd requirements/
$ pip-compile -U base.in
Tím se vygenerují `base.txt`.
wagtail
django-extensions
#
# This file is autogenerated by pip-compile
# To update, run:
#
# pip-compile base.in
#
asgiref==3.2.7 # via django
beautifulsoup4==4.6.0 # via wagtail
certifi==2020.4.5.1 # via requests
chardet==3.0.4 # via requests
django-extensions==2.2.9 # via -r base.in
django-modelcluster==5.0.1 # via wagtail
django-taggit==1.2.0 # via wagtail
django-treebeard==4.3.1 # via wagtail
django==3.0.5 # via django-taggit, django-treebeard, djangorestframework, wagtail
djangorestframework==3.11.0 # via wagtail
draftjs-exporter==2.1.7 # via wagtail
html5lib==1.0.1 # via wagtail
idna==2.9 # via requests
l18n==2018.5 # via wagtail
pillow==6.2.2 # via wagtail
pytz==2019.3 # via django, django-modelcluster, l18n
requests==2.23.0 # via wagtail
six==1.14.0 # via django-extensions, html5lib, l18n
sqlparse==0.3.1 # via django
unidecode==1.1.1 # via wagtail
urllib3==1.25.8 # via requests
wagtail==2.8.1 # via -r base.in
webencodings==0.5.1 # via html5lib
willow==1.3 # via wagtail
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment