Fare contribuzione a Drupal non è cosa facile, specialmente quando hai settimane piene di impegni e trovare del tempo sembra impossibile. Poi diciamocelo, a volte ci vuole molto di più per "tirar su" l'ambiente di sviluppo locale per lavorare su una issue che risolvere la issue stessa.
L'anno scorso casualmente scopro il progetto DrupalPod che, da quanto si racconta, ha proprio lo scopo di semplificare la vita dei contributors. Beh che dire, "amore a prima vista": quando prima impiegavo ore per proporre una patch, ora riesco a sottoporne una nel giro di 20 minuti, cosa del tutto impensabile prima. Non ho parole sufficienti di ringraziamento per Shaal e tutta la communiti Drupal che si sta occupando di migliorare la contribuzione tramite DrupalPod e le issue fork.
Ma la storia non finisce qui! Ma se utilizzassi la stessa idea per i progetti dei miei clienti?
DrupalPod: Embedding DrupalPod Technology in Clients' Projects
Dopo aver visto questo webinar ad inizio anno, mi son deciso in questo ultimo mese di testare DrupalPod con un paio di progetti su cui sto lavorando ed eccovi alcuni miei commenti a caldo.
Svantaggi:
- ci vuole un po' di più tempo per fare il setup del progetto perché devi portare nel "cloud" tutte le configurazioni custom del progetto. Ad esempio, se stai lavorando su una migrazione da D7 a D9, ti devi magari appoggiare ad AWS S3 per depositare database/files del vecchio sito e fare in modo che l'ambiente generato li contenga;
- io, abituato ad utilizzare PhpStorm, mi trovo un po' impacciato con VScode che viene integrato di default. Ma con JetBrains Gateway riesco ad avere PHPStorm come se lavorassi in locale (devo sistemare il funzionamento di xDebug, ma ci siamo quasi);
- per utilizzare l'infrastruttura ti devi registrare su GitPod.io che ti offre 50h di ore gratuite di utilizzo al mese. Per ora a me sono più che sufficienti, ma se dovessi adottare questo strumento per tutti i miei progetto sicuramente dovrò pensare al piano a pagamento.
Vantaggi:
- condividere il progetto con gli altri sviluppatori/builder è immediato anche se quest'ultimi non hanno molta esperienza nel crearsi l'ambiente locale. Una volta che ti sei registrato a GitPod.io ed aggiungi a
https://gitpod.io
l'url del branch/commit del tuo progetto (che esso sia su bitbucket/github/gitlab), booom nel'arco di un paio di minuti hai l'ambiente pronto per lavorarci; - DrupalPod utilizza ddev, quindi puoi configurarti i container dei servizi utilizzati nel progetto come faresti solitamente in locale;
- la potenza di calcolo e di banda sono superiori a quelle che dispongo a casa. Ad esempio la migrazione dei dati da D7 a D9, su cui sto lavorando, lanciata in locale ci impiega circa 7 minuti, su DrupalPod meno di 2 minuti.
Conclusione
Per ora non posso affermare che utilizzerò solo DrupalPod nei i miei progetti, ma come prima esperienza lo reputo uno strumento innovativo molto interessante per semplificare l'on-boarding di sviluppatori in un progetto. Sicuramente continuerò ad utilizzare non solo per la contribuzione Drupal e, a quanto pare, non sono l'unico a trovarlo interessante: JetBrains and Gitpod: Getting Started With Remote Development in IntelliJ IDEA.
Non appena avrò altre novità, scriverò qualcosa. A presto.