Hvordan utvikle på MDB2

MDB2 utvikles i git, konvertert fra bzr vinteren 2012. For mer informasjon om git og grunnleggende bruk oppfordres følgende node: git

Lag en lokal kopi

Først tar vi en klone av master-branchen.

bruker@maskin:~/dev$ git clone /home/cassarossa/itk/felles/git/mdb2

Opprett mdb2/include/config.local.php etter malen under (husk å bruke mdb2_dev til utvikling!)

<?php
/* MedlemsDB2
 * © 2004-2007 ITK, Studentersamfundet i Trondhjem <itk@samfundet.no>
 *
 * Description:
 *	Configuration and initialization.
 */

// Debug mode
// 0 - Debug off, use for production
// 2 - Debug on, use for development
$config['debug'] = 2;

// Mail address for error logging
$config['error_mail'] = "bruker@samfundet.no";
$config['adressa_mail'] = "bruker@samfundet.no";
$config['semester'] = "10";

// Database
$db_type = 'pgsql';
$db_host = 'sql.samfundet.no';
$db_port = 5432;
$db_name = 'mdb2_dev';
$db_user = 'mdb2web';
$db_pass = '';

?>

Sjekk inn som vanlig etter hver endring osv. Husk små commits! Vanlig arbeidsflyt:

bruker@maskin:~/dev/mdb2$ vim foo.php
gjør endring
bruker@maskin:~/dev/mdb2$ git commit -a
skriv commitmelding
bruker@maskin:~/dev/mdb2$ vim bar.pl
gjør endring
bruker@maskin:~/dev/mdb2$ git commit -a
ad infidum
bruker@maskin:~/dev/mdb2$ git push

Oppsett for sending av commit-eposter

Det er veldig greit for andre å følge med på utvikling som skjer ved at man sender epost når man koder noe nytt. Dette kan gjøres veldig greit ved å legge inn en epost-hook i git-configen din. (Det er allerede en sentral hook for når du pusher til stable.)

bruker@maskin:~/dev/mdb2$ ln -s /home/cassarossa/itk/felles/git/post-commit-email .git/hooks/post-commit
bruker@maskin:~/dev/mdb2$ git config hooks.mailinglist itk-mdb@samfundet.no
bruker@maskin:~/dev/mdb2$ echo mdb2.$USER > .git/description

Det vil da bli sendt en epost hver du commiter noe til det aktuelle arkivet.

Sette opp utviklings-instans

Man setter gjerne opp en utviklings-instans på cirkus, og vi ønsker en url alá http://hermansc.mdb2.samfundet.no

Det er dog noen steg vi må igjennom for få dette til:

Apache-konfigurasjon

Kopier en fungerende config fra en annen på cirkus. De ligger i /etc/apache2/sites-available/ Endre brukernavnet i configen til deg selv, og pass på at DocumentRoot er riktig. NB! Hvis du planlegger å serve filene fra hjemmeområdet er det lurt på dobbeltsjekke at hjemmemappen din har permisson +x.

For å legge til denne i sites-enabled bruker vi følgende:

bruker@maskin:~$ sudo a2ensite hermansc.mdb2.samfundet.no

Bind

Vi ønsker å få DNS til å peke riktig, og må legge dette inn i bind sin config.

bruker@maskin:~$ vim /etc/bind/pz/samfundet.no

Find de linjene hvor andre har mdb2 DNS records og legg deg selv til.

Ser nok slik ut:

hermansc.mdb2   IN      CNAME   cirkus

Husk også å oppdatere serialen øvest i filen. Den er på form årstall måned dato <number>.

Hvor du endrer number om det er flere som har endret filen samme dag. Så eksempelvis 2011102400 er en gyldig serial.

Deretter signerer du sonen og reloader du BIND ved:

bruker@maskin:~$ cd /etc/bind/pz
bruker@maskin:~$ sudo zonesigner samfundet.no
bruker@maskin:~$ sudo systemctl reload bind9

Deretter reloader vi configen til Apache:

bruker@maskin:~$ sudo systemctl reload apache2

Verifiser at du får opp utviklingsmiljøet ditt ved å gå til http://brukernavn.mdb2.samfundet.no

Kerberos

Du har kanskje gjort det allerede, og innsett at passord/brukernavnet ditt ikke virker. Vi må sette opp egen Kerberos-keytab for utviklings-instansen din.

Under kan det være greit å godta defaults. Følg det som står i "Opprette Kerberos-keytab" i itkaclbruk-artikkelen

Deretter må vi endre slik at siden bruker din egen keytab, istedenfor medlem.samfundet.no sin. Den enkleste måten å gjøre dette på er å endre filnavn for lokal apache config fra .htaccess til f.eks. .htaccess-local (siden .htaccess-filene i repoet er satt til å bruke medlem.samfundet.no sin keytab), og å legge inn autentisering for hele /admin i vhost-configen. Dette gjør du ved å passe på at dette ligger i /etc/apache2/sites-available/mdb2-bruker.samfundet.no (endre til riktig navn for mdb2-bruker.keytab):

    <Location /admin/>
        AuthType Kerberos
        KrbAuthRealms AD.SAMFUNDET.NO
        Krb5Keytab /etc/apache2/krb5/bruker.mdb2.keytab
        AuthName "Samfundets medlemsdatabase"
        require itkacl /web/medlemsdb
    </Location>

    AccessFileName .htaccess.local

Hvis du gjorde siste punkt er du nå ferdig. Hvis du isteden ønsker å bruke normale .htaccess-filer, og ikke endre navn på de, må du isteden endre alle .htaccess filer i ditt lokale repo, slik at de bruker riktig Kerberos oppsett. Problematisk nok er det ganske mange av dem, og vi finner alle ved:

bruker@maskin:~/dev/mdb2$ find . -name .htaccess

Deretter ønsker vi å endre alle instanser av medlem.keytab til mdb2-hermansc.keytab og gjør følgende for å endre alle mann alle:

bruker@maskin:~/dev/mdb2$ find . -name .htaccess | xargs sed -i 's/medlem.keytab/hermansc.mdb2.keytab/'

Du skal ikke commite disse .htaccess-filene til repo. Når du kjører pull kan du ikke ha endringer som ikke er commited, så du må derfor kjøre git stash (etter du har commited alle andre filer) før du puller. Etter pull kjører du git stash pop for å få tilbake de endrede .htaccess-filene.

Voilá

Når du har utviklet det du vil

Det første du må gjøre er å forsikre deg om at det ikke er endringer i det offisielle MDB2-treet som har skjedd mens du utviklet, så kjør en update av mainline og gjør en merge fra mainline:

bruker@maskin:~/dev/mdb2$ git commit
skriv inn commitmelding
bruker@maskin:~/dev/mdb2$ git pull
bruker@maskin:~/dev/mdb2$ 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.

Produksjonssetting

Nå som MDB2-treet er i orden, kan du ssh-e til cirkus, som hoster MDB, og sette den nye versjonen i produksjon:

bruker@cirkus:~$ sudo su - mdb2
bruker@cirkus:~$ cd /var/www/samfundet.no/medlem
bruker@cirkus:~$ git pull

Produksjonssetting av Kortsys

Kortsys2s filer ligger på brukeren rita sitt hjemmeområde. På cassarossa:

bruker@cassarossa:~> sudo su - rita;
rita@cassarossa:~> cd ~/mdb2
rita@cassarossa:~> git pull

Voila.

Eldre/legacy informasjon

Satt ned hit etter konvertering til git, vinteren 2012:

Vi har et offisielt MDB2-repository som inneholder den kopien medlem.samfundet.no til en hver tid skal kjøre. Brukeren «mdb2» har dette treet to steder; en på cassarossa:/home/cassarossa/itk/mdb2/mdb2.bzr, og en på cirkus:/var/www/samfundet.no/medlem (som er medlem.samfundet.no). (Det ligger en symlink til sistnevnte på /home/cassarossa/itk/mdb2/web.)

Katalogen ~mdb2/mdb2 er det gamle baz-arkivet, som av sikkerhetsmessige og historiske årsaker ligger igjen. På samme måte er cirkus:/var/www/samfundet.no/mdb2/mdb2.baz det gamle baz-treet.

Lenker: Start, arch, atir, billig v1, hvordan utvikle, billig, hvordan utvikle, kortsys2, medlemsdb2, medlemsdb2rapporter, medlemsdb2unix, uka-no, hvordan utvikle

Mail: itk@samfundet.no | Telefon: 992 15 925 | Sist endret: 2018-04-07 12:38 | Revisjon: 44 (historie, blame) | Totalt: 1420 kB | Rediger