Videreutvikling
Sette opp utviklingsmiljø
Installer GNU Make, GCC, Git, Python 3 og andre avhengigheter:
sudo apt install build-essential
sudo apt install git
sudo apt install python3 python3-pip python3-distutils python3-dev
sudo apt install postgresql-client libpq-dev
sudo apt install libjpeg-dev zlib1g-dev
sudo apt install libldap2-dev libsasl2-dev
sudo apt install libxml2-dev libxslt1-dev
Hvis det skal gjøres endringer i CSS-en må også Sass CSS precompiler og npm installeres:
sudo apt install sassc
sudo apt install npm
Støtte for å kompilere Tikz-figurer til SVG/PNG trenger også full LaTeX-installasjon (lualatex, pdflatex, ekstra fonter og pdf2svg) og GraphicsMagick:
sudo apt install texlive-full pdf2svg graphicsmagick
Installer Pipenv:
pip3 install --user --upgrade pip
pip3 install --user --upgrade pipenv
Pass på at pipenv ligger i $PATH
:
export PATH="$HOME/.local/bin:$PATH"
Hent en kopi av repoet og initialiser Python-environmentet:
git clone git@github.com:imfdrift/wagtail /opt/wagtail
cd wagtail
pipenv sync --dev
Konfigurere utviklingsmiljø
Wagtail henter innstillinger fra fila .env
i toppkatalogen.
Kopier eksempelfila env.example
til .env
og tilpass innholdet.
Defaultinnstillingene er stort sett OK, men merk at
DEBUG=True
er nødvendig
for at manage.py runserver
skal fungere ordentlig (servere staticfiles).
Se Django settings for en fullstendig oversikt over aktuelle innstillinger samt defaultinnstillinger.
Hvis Feide-innlogging er påskrudd, må det legges til applikasjonsinnstillinger inne i Django admin-grensesnittet Se Konfigurasjon av Feide-innlogging.
Bruk av utviklingsmiljø
For å aktivere Python-environmentet:
pipenv shell
Første gangs initialisering av databasen:
./manage.py migrate
./manage.py createsuperuser
./manage.py createcachetable
Start testserver:
./manage.py runserver
Linting av koden (må gjøres fra inne i src/
-katalogen, fordi .pylintrc
ligger der):
pylint artikkel/
Deaktivere Python-environmentet:
exit
Hvis utviklingsmiljøet er på en annen maskin enn du kjører browseren på (for eksempel utviklingsmiljø på en Linux-VM og browser på lokal laptop), logg inn på utviklingsboksen med:
ssh -L 8000:localhost:8000
og bruk http://localhost:8000/ på lokal maskin.
Unngå å kjøre manage.py runserver 0.0.0.0:8000
og bruke http://utviklingsboks:8000/,
da dette sender passord i klartekst (spesielt uheldig hvis USE_LDAP_AUTH
er påskrudd).
Oppgradering av Python-pakker
For å sjekke om noen av pakkene vi bruker inneholder rapporterte sikkerhetshull:
pipenv check
For å oppgradere til nyeste versjon av Python-pakkene,
innenfor versjonsbegrensningene angitt i Pipfile
:
pipenv update
pipenv update
oppgraderer Python-environmentet, og skriver ut nye
Pipenv
og Pipenv.lock
-filer. Commit så disse til repoet:
git add Pipenv Pipenv.lock
git commit
Bygge dokumentasjon
For å kompilere dokumentasjonen i docs/
, kjør:
make docs
Dokumentasjonen havner i docs/_build/html/
.
Denne katalogen er unntatt fra repoet.
Bygge CSS
For å kunne kompilere CSS må bootstrap og fontawesome først lastes ned:
make download
For å kompilere CSS, kjør:
make css
Hovedfila heter css/main.scss
, og denne inkluderer de andre filene
som utgjør stilarkene. (CSS for hver innholdsblokk er skilt ut i egne filer.)
I motsetning til dokumentasjonen ligger resultatfilene i repoet, slik at man ikke trenger å laste ned bootstrap/fontawesome og kompilere CSS-en hver gang man gjør endringer i koden.
CSS-koden for fargelegging av programkode i CodeBlock er automatisk generert ut fra pygments sine stilark. For å regenerere pygments-relatert CSS (f.eks etter oppgradering av pygments), kjør:
make -C css clean pygments
etterfulgt av make css
for å oppdatere hovedfila.
Se css/Makefile
for detaljer.