Ciclo della proposta di un nuovo componente

weppos January 16th, 2008

Se dopo aver letto il post dedicato a come contribuire allo Zend Framework avete deciso che è arrivato il momento di proporre un nuovo componente, probabilmente potreste essere interessati nell’approfondire il Proposal Lifecycle, ovvero l’iter alla quale è sottoposto ogni nuovo componente.

Anche se tra le vostre intenzioni non c’è la proposta di un nuovo componente, aspettate a cambiare canale!
Questo post potrebbe interessarvi comunque, cari lettori curiosi, per tenere sotto controllo una libreria che avete addocchiato tra le nuove proposte o per scoprire meglio come cresce e si sviluppa un progetto con una portata internazionale come lo Zend Framework.

Il seguente diagramma illustra graficamente l’iter di una nuova proposta.

Proposal Lifecycle

Scrittura della proposta

Il primo passo per un nuovo componente è… proporlo!
L’autore, sia esso un componente del team di sviluppo o un utente, scrive la propria proposta seguendo il template Zend_Magic a disposizione partendo dalla pagina Zend Framework Proposals.

Una volta che la progettazione della proposta è completa, l’autore indica il componente come pronto per essere discusso.

Analisi della community

Ho già sottolineato più volte l’importanza della community nella vita dello Zend Framework.
Anche la creazione di un nuovo componente è soggetta a critiche degli utenti. Le critiche, i commenti ed i feedback servono all’autore per migliorare il design della proposta ed affinarla prima che venga analizzata dal core team.

Analisi del core team

Una volta che la proposta risulta matura, opportunamente disegnata e pronta per “la sentenza ufficiale”, un componente del core team di Zend analizza la proposta ed esprime il giudizio finale che può portare sostanzialmente a tre strade:

  1. la proposta è accettata
  2. la proposta è accettata a determinate condizioni
  3. la proposta è rifiutata.

Nel terzo caso, la proposta viene spostata nell’elenco delle proposte rifiutate con la motivazione che ha decretato la scelta.
Negli altri due casi la proposta può essere affidata al laboratorio, all’incubatrice o finire direttamente in core.

Laboratorio

Una proposta incompleta, il cui design non è ancora chiaro ma che ha potenzialità per essere inclusa in Zend Framework, viene assegnata al laboratorio.

Nel laboratorio il componente ha diritto ad uno spazio nel repository SVN per continuare lo sviluppo. La proposta verrà rivalutata non appena raggiunto un livello di maturità adeguato.

Incubatrice

L’incubatrice è il livello precedente all’integrazione della libreria nella distribuzione ufficiale del framework.
Nell’incubatrice una proposta, ma a questo punto è meglio chiamarlo il componente, ha diritto ad una collocazione nel repository SVN ufficiale ed un posto nell’issue tracker ufficiale.

Per abbandonare lo stadio di incubator e passare a core, un componente deve avere raggiunto i seguenti requisiti:

  • maturità del codice
  • una copertura degli unit test almeno dell’80% del codice
  • adeguata documentazione

Quando il componente ha raggiunto questi requisiti, un membro del core team procede alla revisione finale e, in caso positivo, allo spostamento della libreria e materiale correlato in core.

Core

Un componente parte della core library di Zend Framework ha raggiundo il suo più alto grado di maturità ed è disponibile in qualsiasi download ufficiale del framework.

Sebbene si tratti di un traguardo, è bene considerare che anche i componenti presenti nel core del framework sono soggetti ad aggiornamenti, revisioni e cambiamenti.
Un componente nel core, inoltre, è soggetto a maggiore attenzione ma anche maggiore regolamentazione. Ad esempio, le modifiche devono sempre prestare attenzione a non rompere la compatibilità con versioni precedenti del codice, salvo rare eccezioni, e la soglia minima di accettabilità di un componente core non deve mai essere superata anche in seguito a modifiche.

In conclusione

Il core team di Zend Framework dedica molta cura ed attenzione all’evoluzione del framework e delle sue librerie affinché il livello di qualità del risultato finale sia sempre all’altezza delle aspettative.
Il tempo finale tra la scrittura di un componente e la sua promozione in core può durare anche un anno, dunque non siate frettolosi!

Trackback URI | Comments RSS

Leave a Reply