Skip to content

Grosser Umzug bei Taskwarrior ...

taskwarrior Wir sind gerade dabei, einen grossen Umzug zu machen. Weg von Redmine und Gitosis, hin zu Software von Atlassian, nämlich Jira als Bugtracker unter bug.tasktools.org und Stash unter git.tasktools.org.

Damit haben wir jetzt ein neues Dach für alle Projekte der Göteborg Bitfactory auf tasktools.org.

Atlassian bietet eine - wie ich finde - sehr interessante Lizenz. Wenn man die Software kauft, bekommt man den Quelltext. Open-Source-Projekte bekommen eine Gratis-Lizenz und auch den Quelltext. Damit ist die Software von Atlassian keine Open-Source-Software, aber dennoch sehr nahe dran.

Näheres über die Motive von Atlassian und das Drumherum kann man in der Episode 27 von Gitminutes hören.

Ach ja, die Taskwarrior-Webseite ist jetzt auch neu. Mir gefällt sie sehr gut.

Zuletzt werden noch die Nodes unseres eigenen Continous Integration Tools Flod auf Server umgezogen, die uns von Rackspace gratis zur Verfügung gestellt werden.

Spannende Zeiten.

Taskwarrior 2.3.0 und Taskserver 1.0.0 ...

taskwarrior Jetzt ist es endlich so weit. Taskwarrior und Taskserver sind aus dem beta-Status entlassen.

Nach knapp neun Monaten Entwicklung freuen wir uns darauf, ein wirklich grossartiges Feature anzukündigen: Die Synchronisation von Taskwarrior mit einem eigenen Taskserver.

Was sich sonst noch getan hat, seht Ihr in eigenen Artikeln für Taskwarrior und Taskserver.

Wir haben ebenfalls die Changelogs für Taskwarrior und Taskserver online.

Viel Spass!

Taskwarrior und Taskserver ...

taskwarrior Ich werde hier in zwei oder drei Teilen einmal zusammenfassen, wie man die aktuelle Taskwarrior-Version und die aktuelle Taskserver-Version zur Zusammenarbeit bewegen kann. Wie das Ganze gedacht ist, zeigt die Übersicht.

Am Anfang steht das selber Kompilieren der aktuellen Versionen.

Dazu werden neben einem C++ Compiler, cmake und make auch libuuid, gnutls, readline und die entsprechenden Development-Pakete. Die aktuellen Development-Releases von Taskwarrior und Taskserver können von der Homepage heruntergeladen oder via Git geklont werden.

$ git clone git://tasktools.org/task.git task.git
$ cd task.git
$ git checkout 2.3.0

$ cd ..

$ git clone git://tasktools.org/taskd.git taskd.git
$ cd taskd.git
$ git checkout 1.0.0

$ cd ..


Dann übersetzen wir zuerst Taskwarrior:

$ cd task.git
$ cmake .
$ make
$ sudo make install


Wenn alles gut gegangen ist, liefert task diagnostics sehr viel hilfeiches, für uns wichtig ist, dass TLS (Transport Layer Security) eingebaut ist.
$ task diagnostics | grep tls
       Caps: -pthreads +tls
  libgnutls: 3.0.28


Für den Taskserver gehen wir ähnlich vor, aber wir lassen erst Tests laufen, bevor wir installieren:

$ cd taskd.git
$ cmake .
$ make


Jetzt gibt es einen Unterschied, Tests übersetzen und ausführen:

$ cd test
$ make
$ ./run_all


Erst wenn die erfolgreich waren, ist es sinnvoll, den Taskerver zu installieren:
$ cd ..
$ sudo make install


Auch hier liefert taskd diagnostics viel hilfreiches.

Sollte etwas schief gegangen sein, werft einen Blick in die mitgelierferte INSTALL-Datei und im Fall von Taskserver zusätzlich noch in die Datei doc/operation.txt.

Ansonsten gilt wie immer: Fragen? Fragen!

Taskserver (big picture) ...

taskwarrior So, nach der zweiten Beta von Taskwarrior 2.3.0 und Taskserver 1.0.0 ist es einmal an der Zeit, die Ideen hinter der Software zu erklären. Ich werde eine kleine Artikelreihe starten, in der ich auch das Aufsetzen eines eigenen Servers näher beleuchten werde.

Achtung: Wir befinden uns noch im beta-Status und haben keine Erfahrung mit grösseren Setups oder grösseren Umgebungen. Wir empfehlen noch nicht, den Server für produktive Daten einzusetzen.

Ein lokaler Taskwarrior Nutzer (Version 2.3.0 beta2 und folgende) kann sich nur mit einem einzigen Taskserver verbinden. Für weitere Server sind separate Settings (Datenverzeichnisse, Zertifikate, User, ...) nötig. Jeder User kann einer einzigen Organisation angehören, innerhalb dieser Organisation Mitglied mehrerer Gruppen sein (ist noch nicht fertig), Vom Server gibt es ein Zertifikat und den passenden Schlüssel, mit dem der Nutzer sich verbinden kann.

Je nachdem, was User brauchen, werden noch weitere Features nachgerüstet.

Ein Taskserver (Version 1.0.0 beta2 und folgende) kann mehrere Organisationen, Gruppen (in Vorbereitung) und Nutzer hosten.

Um einen User zu einem laufenden Server hinzuzufügen, muss er angelegt und zu einer Organisation hinzugefügt werden. Um sich verbinden zu können, sind die folgenden Informationen und Dateien nötig:
  • Username in einer für Menschen lesbaren Form, zum Beispiel "Dirk Deimeke".
  • Das Passswort ist eine UUID (Unique User ID), so dass auch mehrere User gleichen Namens angelegt werden können.
  • Datei: client.cert.pem zur Identifiation als valider Client.
  • Datei: client.key.pem für die Verschlüsselung des Datentransfers.
  • Um die Verbindung aufzubauen sind noch server:port nötig.


Momentan gibt es nur ein einziges Client-Zertifikat für alle User, um die Verschlüsselung zu ermöglichen. More to come ...

Derzeit gibt es noch ein Problem, das Zertifikat auf Mobiltelefone zu bekommen. Wir arbeiten da an einem Webfrontend, mit dem sich das Telefon verbinden kann und das das generelle Usermanagement übernimmt. Derzeit ist das noch Arbeit auf der Kommandozeile.

Zur Information: Der Server wird später auch 301/302 status Codes erzeugen, so wird es möglich sein, einen User transparent auf einen anderen Server umzuziehen.

Um das mal in "Datenbank-Relationen" aufzulösen:

  • 1:n host:server (auf einem Host können mehrere Serverinstanzen laufen).
  • 1:n server:clients (gegen einen Server können sich viele Klienten verbinden).
  • 1:n server:organisations (ein Server kann mehrere Organisationen verwalten, hier wäre n:m aus Hochverfügbarkeitsgründen prima)
  • 1:n clients:users (das ist noch etwas schwierig, es gibt derzeit nur ein Client-Zertifikat, eventuell wird das mal 1:1 der n:1)
  • 1:n organisations:users (eine Organisation kann mehrere User beherbergen, später kann vielleicht ein User auch in mehreren Organisationen sein (n:m), das geht momentan nur mit verschiedenen Konfigurationsoptionen)
  • Später: 1:n users:groups (e
  • Später: 1:n orgs:groups


Was wir noch nicht wissen, ist, wie viele User ein Server verkraften kann. Wir werten zwar unseren eigenen Server aus, können aber noch keine weiteren Vermutungen anstellen.

Task Server Beta ...

taskwarrior So, endlich ist es soweit, der neue Task Server hat den beta-Status erreicht.

Zusammen mit dem Task Server ist auch Taskwarrior in einer neuen Beta-Version erschienen, die als einziges neues Feature die Kommunikation mit dem Task Server implementiert hat.

Taskwarrior 2.3.0 Beta 1 (1.2 MB)
Task Server 1.0.0 Beta 1 (120 kB)

Wir würden uns freuen, wenn möglichst viele von Euch an dem Beta-Test teilnehmen. Bitte lest die Dokumentation sorgfältig.

ACHTUNG: Das ist Beta, bitte macht regelmässig Backups von Euren Daten!

Ich werde in den nächsten Tagen mehr dazu schreiben und einen Test-Taskserver anbieten, wer dort gerne einen Account möchte, melde sich bitte bei mir.

Vramsteg 1.0.1 ...

taskwarrior Paul hat gerade Version 1.0.1 von Vramsteg veröffentlicht.

Vramsteg ist ein "commandline progress bar", also ein Fortschrittsbalken für die Kommandozeile. Er ist natürlich hoch konfigurier- und an die eigenen Bedürfnisse anpassbar.



Vramsteg gehört zu den Tasktools, den Hilfsmitteln aus dem Taskwarrior-Universum. Der Tarball ist gerade einmal 12k gross.

Taskwarrior 2.2.0 beta1 ...

taskwarrior Ein neuer beta-Zyklus hat begonnen, dieses Mal steht die Version 2.2.0 im Fokus.

Wer sich zutraut, Taskwarrior selbst zu übersetzen, ist herzlich eingeladen, mitzumachen. Dazu muss zuerst die Version, die über das Paketmanagement kommt, deinstalliert werden.

Danach helfen die folgenden Schritte:
curl -O http://www.taskwarrior.org/download/task-2.2.0.beta1.tar.gz
tar xzf task-2.2.0.beta1.tar.gz
cd task-2.2.0.beta1
cmake .
make
make install


Eine kurze Zusammenfassung gibt es hier, mehr steht im mitgelieferten ChangeLog.

Android-Client für Taskwarrior ...

taskwarrior Sujeevan Vijayakumaran legt sich ziemlich ins Zeug, einen Taskwarrior-Client für Android zu entwickeln.

Erste Ergebnisse sind vorzeigbar, aber das Projekt ist nicht alleine durch eine Person stemmbar.

Wenn Ihr mithelfen könnt und wollt, meldet Euch bitte via GitHub oder auf der Mailingliste.

Danke!

Apropos, Sujeevan werde Ihr vermutlich schon einmal virtuell über den Weg gelaufen sein, er arbeitet unter anderen bei ubuntuusers.de und freiesMagazin mit.

So geht es weiter ...

taskwarrior Wir haben einen Plan, der nicht in Stein gemeisselt ist (vor allem die Zeiten nicht), aber der eine grobe Richtung vorgibt, in die wir uns mit Taskwarrior entwickeln wollen.

Paul hat gestern dieses News Item veröffentlicht, in dem es um die direkt anstehenden Änderungen geht und was in naher Zukunft zu erwarten ist.

Vor allem ist zu sagen, dass Taskwarrior 2.2.0 in Arbeit ist, was einige Verbesserungen bringen wird, wie beispielsweise virtuelle Etiketten (Tags), bessere Projektsichten und vor allem ein Datum der letzten Änderung einer Aufgabe, das wird in Zusammenhang mit dem Taskserver wichtig. Selbstverständlich gibt es auch grosse Menge von Fehlerbehebungen und Verbesserungen bei Testfällen.

Parallel dazu wird Taskwarrior 2.3.0 entwickelt. Dieses Release wird nur ein einziges Feature bringen, nämlich Synchronisation mit dem Taskserver. Das ist ein Riesenschritt, der sehr ausführlich getestet werden muss. Damit ist klar, dass mit Taskwarrior 2.3.0 auch Taskserver 1.0.0 erscheinen wird. Der neue Taskserver wird noch nicht alle Features haben, die wir bei ihm sehen, aber wir werden ihn Stück für Stück ausbauen, so dass er seine Arbeit zuverlässig erledigt und wir nicht zu viele Baustellen auf einmal öffnen.

Der Taskserver ist momentan noch Alpha. Wenn Verschlüsselung und Dokumentation auf einem vorzeigbaren und verlässlichen Stand sind, werden wir ihn als Betaversion in die Welt entlassen.

Wenn Ihr die neuen Features testen wollt, ist es mehr denn je wichtig regelmässige Backups zu machen!

Hier noch ein paar Links zum Nachlesen:

Rekonstruieren von Daten ...

taskwarrior Übersetzt aus dem Wiki: Reconstructing data.

Wenn bei Taskwarrior eine der Datendateien pending.data oder completed.data korrupt sind, weil beispielsweise das Filesystem voll war, kann man sie aus der undo.data-Datei wieder rekonstruieren.

So geht es:

Zuerst ein Arbeitsverzeichnis erstellen, in dem ohne Datenverlust gearbeitet werden kann.
mkdir -p /tmp/rebuild/{old,new}
cd /tmp/rebuild

Anschliessend die intakte undo.data-Datei in das Verzeichnis kopieren.
cp ~/.task/undo.data /tmp/rebuild/old

Jetzt eine Konfigurations-Datei erstellen für die Rekonstruktion der Daten.
cd new
echo "data.location=." > x
echo "merge.default.uri=$PWD/../old/" >> x
echo "pull.default.uri=$PWD/../old/" >> x

Im nächsten Schritt, pending.data und completed.data aus der undo.data-Datei wieder herstellen.
task rc:x merge


Das erzeugt die folgenden Dateien, die die defekten ersetzen können (vorher ein Backup der bestehenden Dateien anlegen!).
/tmp/rebuild/new/pending.data
/tmp/rebuild/new/completed.data
/tmp/rebuild/new/undo.data