Videreutvikling =============== .. _sette_opp_utviklingsmiljo: 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_utviklingsmiljo: 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 :envvar:`DEBUG=True ` er nødvendig for at ``manage.py runserver`` skal fungere ordentlig (servere staticfiles). Se :ref:`djangosettings` for en fullstendig oversikt over aktuelle innstillinger samt defaultinnstillinger. Hvis :ref:`feide` er påskrudd, må det legges til applikasjonsinnstillinger inne i Django admin-grensesnittet Se :ref:`feide_konfigurasjon`. 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 :envvar:`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 :ref:`CodeBlock` er automatisk generert ut fra :ref:`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.