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 collectstaticDenne 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.noDersom 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.pyFyll 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()
Epost: itk@samfundet.no | Telefon: 992 15 925 | Sist endret: 2022-05-21 18:42 | Revisjon: 66 (historie, blame) | Totalt: 1905 kB | Rediger