:B~ Contribuire al progetto

1~contributing-to-project Contribuire al progetto

When submitting a contribution, please clearly identify its copyright holder
and include any applicable licensing statement. Note that to be accepted,
the contribution must be licensed under the same license as the rest of the
documents, namely, GPL version 3 or later.

I contributi al progetto, come traduzioni e patch, sono estremamente
benvenuti. Chiunque può eseguire il commit direttamente sul repository;
tuttavia chiediamo di inviare le modifiche più corpose in mailing list, per
poterne prima discutere. Per maggiori informazioni vedere la sezione
{Contatti}#contact.

The ${project} uses Git as version control system and source code
management. As explained in {Git repositories}#git-repositories there are
two main development branches: *{debian}* and *{debian-next}*. Everybody can
commit to the debian-next branches of the live-boot, live-build,
live-config, live-images, live-manual and live-tools repositories.

Tuttavia ci sono alcune restrizioni. Il server rifiuta:

_* push non fast-forward,

_* commit merge,

_* aggiunta o rimozione di tag e branch.

Anche se tutti i commit possono essere corretti, chiediamo di usare il buon
senso ed eseguire buoni commit con dei buoni messaggi.

_* Si scrivano messaggi costituiti da frasi in inglese esaurienti e utili,
inizianti con una lettera maiuscola e terminanti con un punto. Solitamente
cominceranno con la forma
"Fixing/Adding/Removing/Correcting/Translating/...". 

_* Scrivere buoni messaggi nei commmit. La prima riga deve contenere un
sunto accurato del contenuto del commit in quanto verrà incluso nel
changelog. Se si necessita di aggiungere ulteriori spiegazioni, scriverle
sotto lasciando una riga vuota dopo la prima e quindi un'altra vuota dopo
ogni paragrafo. Le righe non devono superare gli 80 caratteri.

_* Eseguire commit atomici, ovvero non mescolare cose non inerenti tra loro
nello stesso commit ma farne uno per ogni modifica apportata.

2~ Applicare le modifiche

Per eseguire il push ai repository è necessario seguire la seguente
procedura. Verrà usato live-manual come esempio per cui rimpiazzalo con il
nome del repository su cui si vuole lavorare. Per informazioni dettagliare
su come modificare live-manual si veda {Contribuire a questo
documento}#how-to-contribute.

_* Prelevare la chiave pubblica:

code{

 $ mkdir -p ~/.ssh/keys
 $ wget http://debian-live.alioth.debian.org/other/keys/git@debian-live.alioth.debian.org -O ~/.ssh/keys/git@debian-live.alioth.debian.org
 $ wget http://debian-live.alioth.debian.org/other/keys/git@debian-live.alioth.debian.org.pub -O ~/.ssh/keys/git@debian-live.alioth.debian.org.pub
 $ chmod 0600 ~/.ssh/keys/git@debian-live.alioth.debian.org*

}code

_* Aggiungere la seguente sezione alla propria configurazione di
openssh-client:

code{

 $ cat >> ~/.ssh/config << EOF
 Host debian-live.alioth.debian.org
     Hostname debian-live.alioth.debian.org
     User git
     IdentitiesOnly yes
     IdentityFile ~/.ssh/keys/git@debian-live.alioth.debian.org
 EOF

}code

_* Scaricare tramite ssh un clone del manuale:

code{

 $ git clone ssh://git.debian.org/git/debian-live/live-manual.git
 $ cd live-manual && git checkout debian-next

}code

_* Assicurarsi di avere impostato autore e indirizzo email:

code{

  $ git config user.name "John Doe"
  $ git config user.email john@example.org

}code

*{Importante:}* Notare che tutte le modifiche vanno eseguite sul ramo *{debian-next}*.

_* Apportare le modifiche. In questo esempio si scrive prima una nuova
sezione che si occupa di applicare patch e quindi prepararla al commit
aggiungendo i file e scrivendo il messaggio in questo modo:

code{

 $ git commit -a -m "Adding a section on applying patches."

}code

_* Inviare il commit al server:

code{

 $ git push

}code

2~translation-of-manpages Translation of man pages

You can also contribute to the project working on the translation of the man
pages for the different live-* packages that the project maintains. The
procedure is different depending on whether you are starting a translation
from scratch or continue working on an already existing one:

_* Working on an already existing translation

If you want to maintain the translation of an already existing language you
have to make your changes to your #{manpages/po/${LANGUAGE}/*.po}# file or
files and then run #{make rebuild}# from inside the #{manpages/}#
directory. This will update the actual man pages in
#{manpages/${LANGUAGE}/*}#

_* Starting a new translation from scratch

In order to add a new translation of any of the project's man pages you have
to follow a similar procedure. It could be summarized as follows:

_2* Open the #{manpages/pot/}# file or files in your favourite editor, such
as /{poedit}/, and save it as a .po file in
#{manpages/po/${LANGUAGE}/}#. (You will have to create your #{${LANGUAGE}/}#
directory).

_2* Run #{make rebuild}# from inside the #{manpages/}# directory to create
the #{manpages/${LANGUAGE}/}# files which will contain the actual man pages.

Remember that you will have to add all the directories and files, then make
the commit and finally push to the git server.

