Předělání všeho, co používalo requirements.txt

This commit is contained in:
Jonas Havelka 2025-12-16 21:15:32 +01:00
parent 0d14f56dc9
commit 9e7122b516
6 changed files with 27 additions and 19 deletions

View file

@ -1,4 +1,4 @@
FROM python:3.9.18-slim-bullseye
FROM python:3.11.2-slim-bullseye
# set work directory
WORKDIR /usr/mamweb-docker
@ -16,10 +16,7 @@ RUN apt-get update && apt-get install -y \
imagemagick \
netcat \
postgresql-client
RUN pip install --upgrade pip
COPY ./requirements.txt .
COPY ./constraints.txt .
RUN pip install -r requirements.txt
RUN pip install --upgrade pip setuptools
# allow correct locales
RUN sed -i '/cs_CZ.UTF-8/s/^# //g' /etc/locale.gen && \
@ -31,6 +28,11 @@ ENV LC_ALL cs_CZ.UTF-8
# copy project
COPY . .
# Install dependencies
RUN pip install --upgrade .
RUN pip install --upgrade --group dev
RUN pip install --upgrade --group doc
# create test data once db is ready
RUN chmod +x /usr/mamweb-docker/docker_entrypoint.sh
ENTRYPOINT ["/usr/mamweb-docker/docker_entrypoint.sh"]

View file

@ -51,10 +51,6 @@ checklinks.sh
-------------
„Týrací“ skript na kontrolu, že nic, kam se lze proklikat na webu, nehází chybu.
constraints.txt
---------------
Obsahuje omezení na :ref:`requirements.txt`.
convert_spaces_to_tabs.sh
-------------------------
Skript na změnu odsazování.
@ -81,6 +77,14 @@ README.md
---------
Většina je spíš zbytek po bývalých webařích.
requirements.txt
----------------
Seznam balíčků, které jsou potřeba pro běh mamwebu. (Cílem je vytvoření virtualenvu se všemi těmito balíčky, např. pomocí daného příkazu v :ref:`Makefile`.)
pyproject.toml
--------------
Popis Pythoního projektu, tedy například seznam balíčků, které jsou potřeba pro běh mamwebu. (Cílem je vytvoření virtualenvu se všemi těmito balíčky, např. pomocí daného příkazu v :ref:`Makefile`.)
uv.lock + .python-version
-------------------------
Pokud používáš uv, tak je to soubor s verzemi balíčků + Pythonu, které jsou potřeba pro běh mamwebu.
dockerfile-compose.yml + docker_entrypoint.sh + Dockerfile
----------------------------------------------------------
Soubory pro Docker.

View file

@ -75,7 +75,7 @@ Skripty pro lokální vývoj
^^^^^^^
``make/install_web`` (nebo ekvivalentně ``make/install``)
Vytvoří virtualenv a nainstaluje do něj závislosti webu podle ``requirements.txt``. Následně popíše, jak vyrobit zbytek lokálního webu.
Vytvoří virtualenv a nainstaluje do něj závislosti webu podle ``pyproject.toml``. Následně popíše, jak vyrobit zbytek lokálního webu.
``make/run``
Spustí lokální web (ekvivalentní s ``./manage.py runserver``)
``make/schema``

View file

@ -62,9 +62,9 @@ se do ní (``cd mamweb``)
O zprovoznění webu se stará skript ``make/install_web``, stačí ho spustit. Ten
vytvoří virtualenv (neexistuje-li) a nainstaluje do něj závislosti webu (podle
souboru ``requirements.txt``).
souboru ``pyproject.toml``).
.. FIXME: Novowebaři zmínka o requirements.txt tady moc nepomůže, to má být na
.. FIXME: Novowebaři zmínka o pyproject.toml tady moc nepomůže, to má být na
stránce o celkové stavbě repozitáře a stacku…
Následně je potřeba nahrát další data do databáze, což uděláš pomocí příkazů

View file

@ -16,7 +16,7 @@ Základ webu
===========
- ``python3`` Ideálně Python 3.9, jenž je na Gimlim
- ``python3-pip`` pro instalaci dalších Pythoních balíčků podle ``requirements.txt``
- ``python3-pip`` pro instalaci dalších Pythoních balíčků podle ``pyproject.toml``
- ``python3-venv``
- ``gcc`` kompilace Pythoních knihoven ze zdrojových distribucí (sdist), možná (neotestováno) jde jako alternativu použít ``python3-wheel`` a stahovat bdists
- ``python3-dev`` taktéž
@ -45,7 +45,7 @@ Dokumentace
===========
- ``make`` pro zbuildění
- Pythoní balíčky podle příslušné části ``requirements.txt``
- Pythoní balíčky podle příslušné části ``pyproject.toml``
Vývojové nástroje
=================
@ -57,7 +57,7 @@ Vývojové nástroje
- ``ssh``
- ``graphviz`` pro vygenerování schématu
- ``rsync``
- ``ipython3`` hezčí interaktivní shell (stačí z ``requirements.txt``)
- ``ipython3`` hezčí interaktivní shell (stačí z ``pyproject.toml``)
Potenciální usnadnění života
============================

View file

@ -8,7 +8,9 @@ ensure_venv
# Aktualizace toolchainu
pip install --upgrade pip setuptools
# Instalace závislostí webu
pip install -r requirements.txt --upgrade
pip install --upgrade .
pip install --upgrade --group dev
pip install --upgrade --group doc
# XXX: Připomínka z původního Makefile:
echo 'Pro vygenerování tesdat spusť ./manage.py testdata