Sync, hook e integrazioni
L'ultimo passo: portare Taskwarrior fuori dalla singola macchina, automatizzarne i comportamenti con script, e collegarlo agli altri strumenti del tuo flusso di lavoro.
Tre ponti verso il resto del mondo
Sync. Dalla versione 3 il sistema di sincronizzazione è stato riscritto da zero ed è basato su Taskchampion. Il vecchio Taskserver/taskd non è più supportato. Le tre opzioni attualmente disponibili sono: un TaskChampion sync server self-hosted (HTTP), un bucket di cloud storage AWS S3 (o S3-compatibile) o Google Cloud Storage, oppure un file locale (utile soprattutto per test). I dati vengono cifrati lato client con una passphrase: anche chi gestisce il server o il bucket non può leggere i tuoi task.
Attenzione a una trappola comune: non sincronizzare
la cartella ~/.task/ con Dropbox, Google Drive o iCloud Drive,
come si faceva talvolta con la 2.x. Con il database SQLite della 3.x questa
pratica può corrompere i dati e non è ufficialmente supportata.
Hook. Sono script eseguiti automaticamente in punti
precisi del ciclo di vita di un task: on-add,
on-modify, on-launch, on-exit. Possono
bloccare l'operazione, modificarla, o produrre effetti collaterali. Scritti
in qualunque linguaggio: bash, python, ruby, quello che vuoi.
Integrazioni. Esistono plugin per Vim/Neovim (taskwiki, taskwarrior.nvim), Emacs (taskwarrior.el), oltre a Timewarrior — il fratello tracker di tempo di Taskwarrior — che si collega via hook in modo nativo.
Configurare la sync, un hook utile, e Timewarrior
Una configurazione minimale verso un TaskChampion sync server: serve un URL, un client ID (un UUID che identifica te) e una passphrase di cifratura (qualunque stringa segreta, deve essere identica su tutte le macchine):
In alternativa al sync server, puoi configurare AWS S3 o Google Cloud
Storage con task config sync.aws.* oppure sync.gcp.*
— i dettagli sono nella man task-sync.
Passiamo agli hook. Esempio: un on-add che impedisce di creare
task senza progetto, per forzare un minimo di disciplina:
Per Timewarrior esiste un hook ufficiale: on-modify.timewarrior.
Quando avvii un task con task 5 start, Timewarrior inizia
automaticamente a tracciare il tempo. Quando lo fermi o lo completi, ferma il
tracking. Risultato: tempo registrato senza alzare un dito,
pronto per essere fatturato o analizzato.
Il binomio Taskwarrior + Timewarrior è il punto di arrivo
Se arrivi a questo punto del corso, configura l'integrazione con
Timewarrior subito. È letteralmente cinque minuti (il pacchetto Timewarrior
include l'hook pronto, basta copiarlo in ~/.task/hooks/ e dargli
permessi di esecuzione). Da quel momento in poi:
task 7 startavvia il task e il timertask 7 stopferma entrambitimew summary :weekti dice quanto hai lavorato per ogni progetto- I tag del task diventano automaticamente tag di Timewarrior
Smetti di pensare al tracking del tempo come a un'attività separata: diventa un effetto collaterale del semplice lavorare sui task. Per chi fattura a ore, per chi vuole analizzare dove va il proprio tempo, o per chi semplicemente vuole capire se la propria stima delle cose corrisponde alla realtà, questo è il finale di partita.