Successivo: , Precedente: , Su: Aggiunte   [Contenuti][Indice]


C.2.2 Aggiungere nuove funzionalità

Ognuno è libero di aggiungere tutte le nuove funzionalità che vuole a gawk. Comunque, se si desidera che tali modifiche siano incorporate nella distribuzione di gawk, ci sono parecchi passi da fare per rendere possibile la loro inclusione:

  1. Prima di inserire la nuova funzionalità all’interno di gawk, prendere in considerazione la possibilità di scriverla sotto forma di estensione (vedi la sezione Scrivere estensioni per gawk). Se ciò non è possibile, continuare con i passi rimanenti descritti in questa lista.
  2. Essere disposti a firmare un documento liberatorio appropriato. Se l’FSF deve poter distribuire le modifiche, queste vanno dichiarate di pubblico dominio, tramite la firma di un documento apposito, oppure attribuendo il copyright delle modifiche all’FSF. Entrambe queste azioni sono semplici da fare, e molte persone già l’hanno fatto. Se ci sono domande da fare, mettersi in contatto con me (vedi la sezione Segnalazione di problemi e bug), oppure “assign chiocciola gnu punto org”.
  3. Utilizzare l’ultima versione. È molto più semplice per me integrare modifiche se sono basate sull’ultima versione disponibile di gawk o, meglio ancora, sull’ultimo codice sorgente presente nel deposito Git. Se la versione di gawk è molto vecchia, potrei non essere affatto in grado di integrare le modifiche. (Vedi la sezione Ottenere la distribuzione di gawk, per informazioni su come ottenere l’ultima versione di gawk.)
  4. Seguire gli Standard di codifica GNU. Questo documento descrive come dovrebbe essere scritto il software GNU. Se non lo si è letto, è bene farlo, preferibilmente prima di iniziare a modificare gawk. (Gli Standard di codifica GNU sono disponibili nel sito web del Progetto GNU. Sono disponibili anche versioni in formato Texinfo, Info, e DVI.)
  5. Usare lo stile di codifica gawk. Il codice sorgente in C di gawk segue le istruzioni dello Standard di codifica GNU, con qualche piccola eccezione. Il codice è formattato usando lo stile tradizionale “K&R”, in particolare per ciò che riguarda il posizionamento delle parentesi graffe e l’uso del carattere TAB. In breve, le regole di codifica per gawk sono le seguenti:

    NOTA: Qualora fossi costretto a riformattare completamente il codice per farlo aderire allo stile di codifica usato in gawk, potrei anche decidere di ignorare del tutto le modifiche proposte.

  6. Aggiornare la documentazione. Insieme col nuovo codice, fornire nuove sezioni e/o capitoli per questo Documento. Per quanto possibile, usare il formato Texinfo, invece di fornire soltanto del testo ASCII non formattato (sebbene un semplice testo sia già meglio che nessuna documentazione). Le convenzioni da seguire in GAWK: Programmare efficacemente in AWK sono elencate dopo la parole chiave ‘@bye’ alla fine del file sorgente Texinfo. Se possibile, aggiornare anche la pagina di manuale in formato man.

    Si dovrà anche firmare un documento liberatorio relativo alle modifiche apportate alla documentazione.

  7. Inviare le modifiche come file di differenze nel formato contestuale unificato. Usare ‘diff -u -r -N’ per confrontare i sorgenti originali dell’albero di sorgenti gawk con la versione proposta. Si raccomanda di usare la versione GNU di diff o, ancora meglio, ‘git diff’ o ‘git format-patch’. Per inviare le modifiche proposte spedire l’output prodotto da diff. (Vedi la sezione Segnalazione di problemi e bug, per l’indirizzo di posta elettronica.)

    L’uso di questo formato rende semplice per me l’applicazione delle modifiche alla versione principale del sorgente di gawk (usando il programma di utilità patch). Se invece tocca a me applicare le modifiche a mano, con un editor di testo, potrei decidere di non farlo, specialmente se le modifiche sono molte.

  8. Includere una descrizione da aggiungere al file ChangeLog riguardo alla modifica da voi proposta. Questo serve a minimizzare l’attività a me richiesta, rendendo più facile per me l’accettazione delle modifiche, che diventa più semplice se si include anche questa parte nel file di differenze (nel formato diff).

Sebbene questa possa sembrare una richiesta molto esigente, si tenga presente che, anche se il nuovo codice non è opera mia, tocca poi a me manutenerlo e correggere eventuali errori. Se non è possibile per me farlo senza perderci troppo tempo, potrei anche lasciar perdere la modifica.


Successivo: , Precedente: , Su: Aggiunte   [Contenuti][Indice]