Site onderhoud

Het website onderhoud is opgezet naar het model van een open source software project.

  • De source is beschikbaar, onder andere in een versie beheer systeem.

  • Met die source kun je en mag je aan de slag.

  • Er is een mailinglist voor discussie.

Het idee is om een laag drempelig project te zijn vooral ter leringe ende vermaecke. De uitnodiging is dan ook om te doen, kom vooral met vragen. Vragen zijn het begin van wijsheid.

Op overzicht onderhoud vind je de korte versie van wat hier beschreven is.

Download

De download van de source kan op twee manieren. Door een tarball op te halen of door middel van versie beheer programma.

Tarball

De URL van de tarball is http://losc.nl/Breda/loscweb.tar.gz Om een download vanaf de command line te doen type je

wget http://losc.nl/Breda/loscweb.tar.gz

Uitpakken van de .tar.gz kan d.m.v.

gunzip loscweb.tar.gz
tar xf loscweb.tar

Als je GNU tar hebt, dan kan het in een regel

tar xzf loscweb.tar.gz

Voor een nieuwe versie begin je weer bij wget.

Source Code Management

Met een Source Code Management is het ophalen, uitpakken en up-to-date houden stukken makkelijker. Minst je de software ervoor ge-installeerd hebt. Loscweb maakt gebruik van de software git

Ophalen en uitpakken van de source kan nu in 1 regel:

git clone http://losc.nl/Breda/loscweb/.git

Een nieuwe versie ophalen doe je door in de loscweb directory de volgende commando’s uit te voeren:

git checkout master
git pull

Bouw

Om de webpagina’s te genereren ga je in de loscweb directory staan en daar doe je

./configure
make

Het resultaat staat in de website/ directory.

Nu

webbrowser website/index.html

Of bijvoorbeeld

firefox /home/karin/loscweb/website/index.html

om het resultaat lokaal te zien.

Source

In website/ vindt je de source files, ze hebben de extensie .txt Die bronbestanden worden met asciidoc omgezet naar html.

Update website

Een update maken, een bijgewerkte versie maken, van de website is een prachtkans om ervaring op te doen met een Open Source project.

Vindt de juiste source file, breng daar jouw gewenste verandering aan. Bouw het project opnieuw ( make ) Controleer het effect van jouw wijziging. Meldt jou verandering aan de mailinglist.

Diezelfde handelingen nog een keer puntsgewijs

  • vindt source file

  • edit

  • make

  • check and double check

  • Communiceer

Vragen m.b.t. aanvullingen, tips en commentaar over de site graag per E-Mail via de losc Breda mailing list zodat iedereen in de gelegenheid is hierop te reageren. Het aanleveren van complete pagina’s mag ook. De .txt file moet dan wel verder verwerkt worden en daar gaat de rest van deze pagina over.

Source Code Management

Het gereedschap wat aan het gebruiken zijn heet Source Code Management. De specifieke die hier gebruikt wordt heet git. Daar is heel veel over te vertellen. Hier gaan we er vlug doorheen.

edit files
git diff # wijzigingen tonen
edit files
git diff # nog een keer wijzigingen tonen
git add files
git commit
# je bent in EDITOR
# type in wat je gewijzigd hebt
# bewaar ( "save" ) en sluit editor
# er volgt nog wat output
git format-patch HEAD~1

Er is dan een bestand, 00*.patch, wat er ongeveer zo een inhoud heeft:

commit a39901c8da55b6c6cf5b96f8e9d07e765023784d
Author: Will <will@example.com>
Date:   Mon Nov 3 22:26:59 2014 +0100

   Aankondiging bijeenkomst 18 december 2014

diff --git a/website/meetings.txt b/website/meetings.txt
index 30021e1..4e12f7e 100644
--- a/website/meetings.txt
+++ b/website/meetings.txt
@@ -2,8 +2,10 @@

De volgende bijeenkomst:

-*Donderdag 23 oktober  2014*
-19:30-22:30 uur
+IMPORTANT: *Donderdag 18 december 2014*
+19:30-22:30 uur +
+Dit is dan wel de derde donderdag van de even maand december, +
+want de vierde donderdag van die maand is het namelijk de Eerste Kerstdag.


En zal gaan over

Dat ging voor een eerste keer met git werken vanaf de command line zeker snel. Op https://openhatch.org/missions/git staat trainingsmateriaal. Of oefen hier verder.

Punt waar je nu moet zijn, is dat er een unified diff van je wijzigingen is. Dus een tekstbestand met daarin --- bestandsnaam, +++ bestandsnaam, @@ regelnummer informatie @@, wat omliggende regels, regels die weggehaald zijn (min-teken aan het begin), regels die toegevoegd zijn (plus-teken aan het begin), wat omliggende regels.

Stuur de unified diff naar de mailinglist.

Op de ML wordt de diff dan beoordeelt. En als ie goedgenoeg is, dan gaat ie de centrale repository in. In de regel is dat het geval, want we weten dat verandering verbetering kan zijn. Vandaar dat we verandering stimuleren om zo verbetering te bereiken.

Commit privilege

Als we wat goede diffs van je gezien hebben dan wordt dat beloond met commit privilege. Dat betekent dat je zelf je wijzigingen aan de centrale repository kunt en mag toevoegen.

Wat je daar voor moet aanleveren is je public ssh key. ( Is te generen m.b.v. ssh-keygen ) Die sleutel wordt op server gelegd. Passen doet de key echter alleen op de SSH poort, de HTTP poort blijft read only.

Git is per repository in te stellen hoe ie moet lezen en hoe te schrijven. Toen je git clone http://losc.nl/Breda/loscweb/.git deed werd lezen reeds op HTTP ingesteld. Blijf dat vooral doen en zeer zeker melden als HTTP read niet werkt.

Instellen van SSH write gebeurd m.b.v.

git config url."cp@november.losc.nl:~/Breda/loscweb".pushInsteadOf \
  http://losc.nl/Breda/loscweb/.git

In de file .git/config in je lokale repository van loscweb is dat terug te lezen als

[url "cp@november.losc.nl:~/Breda/loscweb"]
      pushInsteadOf = "http://losc.nl/Breda/loscweb/.git"

Met git push gaan nu je wijzigingen naar de centrale repository.

De eerste git push over SSH zal vragen of je server november.losc.nl wilt vertrouwen c.q. herkent. Server november is te herken aan de SSH fingerprint

5e:7d:a0:24:e4:fb:f8:4a:99:e2:ac:3b:16:43:41:32.

Daarmee is verder vertrouwen op te bouwen.

Push

Voorbeeld:

$ git push
Counting objects: 18, done.
Compressing objects: 100% (14/14), done.
Writing objects: 100% (14/14), 1.85 KiB, done.
Total 14 (delta 6), reused 0 (delta 0)
To cp@november.losc.nl:~/Breda/loscweb
   315508f..e9c5339  master -> master
$

failed to push some refs

Mocht de push niet lukken, dan is het de moeite waard om eerst een pull te doen.

$ git push
To cp@november.losc.nl:~/Breda/loscweb
 ! [rejected]        master -> master (non-fast forward)
error: failed to push some refs to 'cp@november.losc.nl:~/Breda/loscweb'
$ git pull
remote: Counting objects: 7, done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 4 (delta 3), reused 0 (delta 0)
Unpacking objects: 100% (4/4), done.
From cp@november.losc.nl:~/Breda/loscweb
   4c90189..fd5aa51  master     -> origin/master
Merge made by recursive.
 scripts/novembercronjob |    8 +++++---
 1 files changed, 5 insertions(+), 3 deletions(-)
stappers@viggo:/usr/src/loscweb_cp
$ git push
Counting objects: 10, done.
Compressing objects: 100% (6/6), done.
Writing objects: 100% (6/6), 799 bytes, done.
Total 6 (delta 4), reused 0 (delta 0)
To cp@november.losc.nl:~/Breda/loscweb
   fd5aa51..cdb5e7f  master -> master
$

Hoe komen nu de wijzigingen op de website te staan. cp_proces.

Gitserver

De gitserver is beschreven op gitserver.