Qualität der Badeseen im Landkreis Gießen
Bevor es an die Arbeit geht, bitte vorher hier schauen ob tasks als Ready
deklariert wurden und dann daran arbeiten. Die Tags ready
und help wanted
zeigen an, dass hier gerne geholfen werden darf. Tasks die unter In Progress
stehen bitte nicht in angriff nehmen.
Um mit dem Entwickeln zu beginnen müssen über den Node Package Manager (npm
) zunächst alle Abhängigkeiten installiert werden. Diese erlauben das automatische Testen des Codes, das Compilen des SASS-Codes und das Testen der Quelltexte gegen die Sprachspezifikationen (JShint, CSSLint).
npm install
(setzt eine funktionierende Nodejs-Installation voraus)
Bevor mit der Entwicklung begonnen wird, sollte grunt watch
gestartet werden. So wird nach jeder Änderung auf Syntaxfehler etc. geprüft, sowie SASS compiled — damit ist im Browser direkt live der aktuellste Entwicklungs-Stand einsehbar.
Die Entwicklung findet im development
branch statt, master repräsentiert immer einen stabilen Zustand. git workflow
Nachdem Änderungen vorgenommen worden sind, sollte make test
ausgeführt werden und ggf. notwendige ignore
-Anweisungen für jshint hinzugefügt werden (aber nur wenn bewusst ist, was das für Auswirkungen hat!). Neuer Code ist mit Tests auszustatten, die Modulweise in ./test
zu finden sind.
Um den JavaScript-Code zu standardtisieren, muss grunt beautify
ausgeführt werden. So werden z.B. Einrückungen usw. angepasst.
Wenn alle Tests durchlaufen und der JS-Code beautified ist, kann der Code ins Remote-Repository eingepflegt werden.
Achtung: grunt deploy
ruft ebenso den beautify
-Task auf.
Wenn an den SASS-Dateien von Font-Awesome etwas angepasst wurde, müssen diese erneut in CSS umgewandelt werden, was durch grunt sass:fontawesome
erledigt werden kann. Dieser Task muss explizit aufgerufen werden und wird nicht automatisch ausgeführt.
Releases werden nach dem git workflow mit Hilfe der semantischen Versionierung versioniert. Minor-Releases reichen aus um in den master branch gemerged zu werden, patch releases jedoch sind development releases und verbleiben im development branch. Jedes Release wird mit einem Tag markiert und Major/Minor Releases werden in GitHub als solche eingetragen (mit zip).
Eine auslieferbare Kopie der App kann über grunt deploy
generiert werden. So wird ein .zip-Archiv erstellt (in dist/
), ohne die Nodejs-Abhängigkeiten, den SASS-Code, die Tests usw.
Im Verzeichnis des Quelltextes: git checkout gh-pages && git merge --no-ff master && git checkout master && git push
um zu deployen. Nicht zur staging area hinzugefügte Änderungen müssen vorher gestasht werden!
Achtung: vorher make test
ausführen und Funktion sicherstellen.
Um das Projekt an andere OK Labs anzupassen müssen lediglich die Variablen in public/js/values.js
angepasst werden. Der Footer passt sich automatisch den gegebenen Informationen bzgl. der Grid-Größe an.