Hvordan utvikle på uka.no

Uka.no utvikles i git. For mer informasjon om git og grunnleggende bruk oppfordres følgende node: git

Grafisk designer? uno grafisk profil

Hvordan sette opp en utviklings-instans

Start med å klone uno-repoet fra /home/cassarossa/itk/felles/git/ukano (eller uno_apps) til et sted du finner passende. Det er også en fordel å legge seg selv til i gruppene uka-dev og uka-web før du begynner å utvikle.

Sett deretter opp et virtual environment og installer avhengigheter:

  virtualenv -p $(which python3) --system-site-packages venv && source venv/bin/activate      # lager og aktiverer venv
  pip3 install -r requirements_dev.txt                                                        # Installer avhengighetene som trengs for å starte og utvikle på uka.no

Følg så "Sette opp utviklings-instans" delen av oppskriften medlemsdb2, hvordan utvikle. Bytt ut "samfundet" og "mdb2.samfundet" med "uka" overalt.

Deretter må vi sette opp en uWSGI instans. Det enkleste er å kopiere noen andres config, følge det som står i uWSGI-noden.

Vi må så legge til en ny konfigurasjonsfil, som (stort sett) skal inneholde de Django relaterte instillingene som er unike for din utviklings-instans.

Start med å kopiere noen andres local.py fil. Denne filen kan bli funnet i uno/settings/. Bytt ut BASE_URL med URLen til din utviklingsinstans, og pass på at databasen som blir definert i den samme filen er en dev-database.

Kjør tilslutt:

 python manage.py collectstatic 
Denne kommandoen samler hovedsaklig alle de statiske filene på et sted, slik at de blir lettere for Apache å håndtere. I utviklingsmiljøet vil dette vanligvis derimot ikke være nødvendig, ettersom Django selv håndterer disse filene.

Hvordan sette opp en lokal utviklingsinstans

Dersom du skal utvikle lokalt kan du hoppe over delen med virtual environment, og bare installere pakkene med

 pip3 install -r requirements_dev.txt 
. Da trenger du ikke å aktivere venvet eller forholde deg til det i det hele, men dette vil installere pakkene rett på PC'en din, og vil overskrive dine pakker hvis du har dem installert fra før. Hvis du er usikker - bruk venv

Begynn med å opprette et virtual environment

  virtualenv -p /usr/bin/python3 venv # Opprett et virtual environmentet kalt «venv»
  source venv/bin/activate              # Aktiver virtual environmentet
  pip3 install -r requirements_dev.txt       # Installer avhengighetene som trengs for å starte og utvikle på uka.no
Dersom du er på egen pc, pass på at du har python3-dev
apt install python3-dev

Husk å aktivere virtual environment hver gang du skal utvikle.

Ettersom enkelte instillinger er spesifike for din utviklingsinstans, må du deretter opprette en fil som inneholder lokale instillinger.

  cp uno/settings/local_devel.py uno/settings/local.py
Fyll ut seksjonene i local.py merket med «# TODO» før du fortsetter.

Opprett deretter databasen ved å kjøre

  python3 manage.py migrate

Dersom du ikke bruker sqllite, kan du se bort fra det følgende. Siden vi i noen tilfeller ikke ønsker å bruke mdb2_dev, kan du opprette noen mock-Billig tabeller ved å kjøre

  python manage.py dbshell
  .read local_dev_sql/billig_tables.sql

For å samle de statiske filene som uka.no trenger må du så kjøre

  python manage.py collectstatic

For å så starte en lokal server som serverer uka.no kan du kjøre

  python manage.py runserver

Når du har utviklet det du vil

Det første du må gjøre er å forsikre deg om at ditt utviklings-tre er oppdatert med det offisielle uno-treet.

bruker@maskin:~/dev/uno$ git commit -m "En flott beskrivelse av endringene jeg har gjort"
bruker@maskin:~/dev/uno$ git pull
bruker@maskin:~/dev/uno$ git push

Er det konflikter eller andre endringer under pull/push, løs opp og commit.

Prøv å gjøre commit-meldingene dine rimelig informative! Bare «merge fra –bruker» er veldig lite nyttig, prøv å få med i korte trekk hva som faktisk er skjedd.

Utrulling på uka.no

Utrulling gjøres ved hjelp av et fabric script som automatisk ssh-er til cirkus, puller master fra repoet, kjører kommandoene som trengs (collect static og migrate), kjører tester og restarter uwsgi.

Fra roten av din instans av repoet, kjør:

fab deploy

og svar på spørsmålene den stiller.

Manuell utrulling på uka.no

Start med å ssh-e til cirkus. Gjør deretter dette:

bruker@cirkus:~$ cd /var/www/uka.no/www/uno
bruker@cirkus:~$ git pull

Det vil til tider også være nødvendig å reloade uWSGI, ettersom dette blant annet reloader hele Django-configen.

Manuell utrulling på uka.no

Triks for å debugge litt når applikasjonen din kjører på uWSGI. Du ønsker ofte å printe litt til stderr for å finne ut av ting. Da kan det være lurt å importere sys, og slenge på file=sys.stderr i print-funksjonen din.

import sys

print("Jeg havner i uwsgi-loggen (:", file=sys.stderr)

Troubleshoot

Om <instans>.apps.uka.no/admin gir deg bad redirect, betyr det mest sannsynlig at man ikke har bruker i databasen. For å opprette bruker kan man bruke komandoen: python manage.py shell derretter:

from uno.authentication.models import User
me = User(username=<ditt brukernavn>,first_name=<ditt navn>,last_name=<ditt etternavn>)
me.save()

Lenker: Start, uka-no

Epost: itk@samfundet.no | Telefon: 992 15 925 | Sist endret: 2022-05-21 18:42 | Revisjon: 66 (historie, blame) | Totalt: 1905 kB | Rediger