source: trunk/docs/docs_dev/source/guides/forge.rst @ 2

Last change on this file since 2 was 2, checked in by pinsard, 12 years ago

import of project infrastructure (to be cont.)

File size: 21.3 KB

Travail sur forge.ipsl.jussieu.fr

Création du projet

Olivier Thauvin a crée le projet |project_svn| avec moi comme contact et administrateur sous le compte <systemitem class="username">pinsard</systemitem>.

Je modifie le mot de passe du compte <systemitem class="username">|project_svn|@forge.ipsl.jussieu.fr</systemitem> associé à ce projet après avoir sélectionné le projet ++ guibutton |project_svn| dans la liste de mes projets https://forge.ipsl.jussieu.fr/admin/

?
.. caution::
?

mot de passe <systemitem class="username">|project_svn|@forge.ipsl.jussieu.fr</systemitem>

Le changement de mot de passe du compte <systemitem class="username">|project_svn|@forge.ipsl.jussieu.fr</systemitem> associé à ce projet après avoir sélectionné le projet <guibutton>|project_svn|</guibutton> dans la colonne de gauche de la page https://forge.ipsl.jussieu.fr/admin/" doit être accompagné par la modification dans :file:`/ipsl/forge/projet/|project_svn|/trac/conf/trac.ini` de la ligne de connections à la base de données <programlisting> database = postgres://<replaceable>projet</replaceable>:<replaceable>motdepasse</replaceable>@forge.ipsl.jussieu.fr/<replaceable>projet</replaceable>_trac </programlisting> sous peine de problème d'accès à la page <link xl:href="http://forge.ipsl.jussieu.fr/|project_svn|"/>. </para> </caution>

?

Toujours dans cette page de gestion de projet, je complète cette création en remplissant les champs <guilabel>Url:</guilabel>, <guilabel>Description</guilabel>, <guilabel>Contact</guilabel> et <guilabel>Mail</guilabel>. On constate que ces trois premières informations apparaissent dans la page d'accueil <link xl:href="http://forge.ipsl.jussieu.fr/"/>.

Création et association d'utilisateurs

Le compte de <person><personname><firstname>Jérôme</firstname> <surname>Vialard</surname></personname></person> existe (jv). Le compte de <person><personname><firstname>Praveen</firstname></personname></person> aussi (praveen).

J'ajoute tout ce petit monde aux utilisateurs du projet |project_svn|.

Travail sur <application class="software">trac</application>

Configuration de <application class="software">trac</application>

Lors de la création du projet un fichier <filename>/ipsl/forge/projets/<replaceable>projet</replaceable>/trac/conf/trac.ini</filename> donnant au projet une configuration par défaut choisie par Olivier est créé.

On doit modifier les lignes suivantes : <programlisting> link = http://trac.edgewall.com/ descr = My example project </programlisting> en mettant la même chose que dans l'url et la description du projet sous <link xl:href="http://forge.ipsl.jussieu.fr/"/> (cf. <xref linkend="travail_forge_projet"/>).

Je choisis aussi de modifier la ligne suivante <programlisting> ticket_show_details = false </programlisting> par <programlisting> ticket_show_details = true </programlisting> pour pouvoir voir les changements de tickets dans la <literal>timeline</literal> en plus des seules ouvertures et fermetures de tickets.

On pourra aussi associer un logo, une mailing list, des notification sur les tickets, etc, mais ++ pas d'urgence

<tip xml:id="copieavantmodif"> Copie avant modification ++++++++++++++++++++++++

Il peut être prudent de copier la version courante du fichier de configuration avant de faire une modification. On peut procéder ainsi <screen>

?
<prompt>$</prompt> <userinput><command>cd</command> <filename class="directory">trac/conf/</filename></userinput> <prompt>$</prompt> <userinput>fileorig=<filename>trac.ini</filename></userinput>
?
<!--++dblatex
<prompt>$</prompt> <userinput><command>cp</command> <parameter>${fileorig}</parameter> <filename>${fileorig}_$(date -u +"%Y%m%d%H%M%S")</filename></userinput>
-->
<prompt>$</prompt> <userinput>cp ${fileorig} ${fileorig}_$(date -u +"%Y%m%d%H%M%S")</userinput>
?

</screen>

</tip>

Voir l'avertissement concernant le changement de <xref linkend="motdepasse|project_svn|"/>.

Autorisations

Des permissions sont accordées par défaut lors de la création du projet.

Il faut les modifier pour éviter en particuliers des spams sur les tickets.

On commence par créer un <quote>groupe</quote> <token>developer</token> en tapant la commande suivante pour chaque contributeur (utilisateur déclaré dans <xref linkend="travail_forge_utilisateurs"/>) au projet : <screen>

?
<prompt>|project_svn|@forge$</prompt> <userinput><command>trac-admin</command> <filename class="directory">/ipsl/forge/projets/|project_svn|/trac</filename> <parameter>permission</parameter> <parameter>add</parameter> <parameter><replaceable>utilisateur</replaceable></parameter> <parameter>developer</parameter></userinput>
?

</screen>

Puis on supprime les accès aux actions sensibles aux inconnus et on n'autorise ces mêmes actions qu'aux contributeurs : <screen>

?
<prompt>|project_svn|@forge$</prompt> <userinput><command>trac-admin</command> <filename class="directory">/ipsl/forge/projets/|project_svn|/trac</filename> <parameter>permission</parameter> <parameter>remove</parameter> <parameter>authenticated</parameter> <parameter>WIKI_CREATE</parameter></userinput> <prompt>|project_svn|@forge$</prompt> <userinput><command>trac-admin</command> <filename class="directory">/ipsl/forge/projets/|project_svn|/trac</filename> <parameter>permission</parameter> <parameter>remove</parameter> <parameter>anonymous</parameter> <parameter>WIKI_CREATE</parameter></userinput> <prompt>|project_svn|@forge$</prompt> <userinput><command>trac-admin</command> <filename class="directory">/ipsl/forge/projets/|project_svn|/trac</filename> <parameter>permission</parameter> <parameter>remove</parameter> <parameter>authenticated</parameter> <parameter>WIKI_MODIFY</parameter></userinput> <prompt>|project_svn|@forge$</prompt> <userinput><command>trac-admin</command> <filename class="directory">/ipsl/forge/projets/|project_svn|/trac</filename> <parameter>permission</parameter> <parameter>remove</parameter> <parameter>anonymous</parameter> <parameter>WIKI_MODIFY</parameter></userinput> <prompt>|project_svn|@forge$</prompt> <userinput><command>trac-admin</command> <filename class="directory">/ipsl/forge/projets/|project_svn|/trac</filename> <parameter>permission</parameter> <parameter>remove</parameter> <parameter>authenticated</parameter> <parameter>TICKET_MODIFY</parameter></userinput> <prompt>|project_svn|@forge$</prompt> <userinput><command>trac-admin</command> <filename class="directory">/ipsl/forge/projets/|project_svn|/trac</filename> <parameter>permission</parameter> <parameter>remove</parameter> <parameter>anonymous</parameter> <parameter>TICKET_MODIFY</parameter></userinput> <prompt>|project_svn|@forge$</prompt> <userinput><command>trac-admin</command> <filename class="directory">/ipsl/forge/projets/|project_svn|/trac</filename> <parameter>permission</parameter> <parameter>remove</parameter> <parameter>anonymous</parameter> <parameter>TICKET_CREATE</parameter></userinput> <prompt>|project_svn|@forge$</prompt> <userinput><command>trac-admin</command> <filename class="directory">/ipsl/forge/projets/|project_svn|/trac</filename> <parameter>permission</parameter> <parameter>remove</parameter> <parameter>authenticated</parameter> <parameter>TICKET_CREATE</parameter></userinput> <prompt>|project_svn|@forge$</prompt> <userinput><command>trac-admin</command> <filename class="directory">/ipsl/forge/projets/|project_svn|/trac</filename> <parameter>permission</parameter> <parameter>add</parameter> <parameter>developer</parameter> <parameter>WIKI_ADMIN</parameter></userinput> <prompt>|project_svn|@forge$</prompt> <userinput><command>trac-admin</command> <filename class="directory">/ipsl/forge/projets/|project_svn|/trac</filename> <parameter>permission</parameter> <parameter>add</parameter> <parameter>developer</parameter> <parameter>MILESTONE_ADMIN</parameter></userinput> <prompt>|project_svn|@forge$</prompt> <userinput><command>trac-admin</command> <filename class="directory">/ipsl/forge/projets/|project_svn|/trac</filename> <parameter>permission</parameter> <parameter>add</parameter> <parameter>developer</parameter> <parameter>TICKET_ADMIN</parameter></userinput>
?

</screen>

Cette organisation facilite l'ajout d'un utilisateur. Il n'y a que son adhésion au <quote>groupe</quote> <literal>developer</literal> à faire.

On peut vérifier que la sortie de la commande suivante : <screen>

?
<prompt>|project_svn|@forge$</prompt> <userinput><command>trac-admin</command> <filename class="directory">/ipsl/forge/projets/|project_svn|/trac</filename> <parameter>permission</parameter> <parameter>list</parameter></userinput>
?

</screen> donne bien <screen> <computeroutput> User Action --------------------------- anonymous BROWSER_VIEW anonymous CHANGESET_VIEW anonymous FILE_VIEW anonymous LOG_VIEW anonymous MILESTONE_VIEW anonymous REPORT_SQL_VIEW anonymous REPORT_VIEW anonymous ROADMAP_VIEW anonymous SEARCH_VIEW anonymous TICKET_VIEW anonymous TIMELINE_VIEW anonymous WIKI_VIEW developer MILESTONE_ADMIN developer TICKET_ADMIN developer WIKI_ADMIN jv developer pinsard developer praveen developer

Available actions:
BROWSER_VIEW, CHANGESET_VIEW, CONFIG_VIEW, EMAIL_VIEW, FILE_VIEW, LOG_VIEW, MILESTONE_ADMIN, MILESTONE_CREATE, MILESTONE_DELETE, MILESTONE_MODIFY, MILESTONE_VIEW, PERMISSION_ADMIN, PERMISSION_GRANT, PERMISSION_REVOKE, REPORT_ADMIN, REPORT_CREATE, REPORT_DELETE, REPORT_MODIFY, REPORT_SQL_VIEW, REPORT_VIEW, ROADMAP_ADMIN, ROADMAP_VIEW, SEARCH_VIEW, TICKET_ADMIN, TICKET_APPEND, TICKET_CHGPROP, TICKET_CREATE, TICKET_EDIT_CC, TICKET_EDIT_DESCRIPTION, TICKET_MODIFY, TICKET_VIEW, TIMELINE_VIEW, TRAC_ADMIN, WIKI_ADMIN, WIKI_CREATE, WIKI_DELETE, WIKI_MODIFY, WIKI_VIEW

</computeroutput> </screen>

??

Wiki

La page <token>WikiStart</token> à la création du projet renseigne sur <application class="software">trac</application>. On doit remplacer cette page avec les informations concernant le projet. Ce remplacement peut se faire dans un premier temps par la modification clicodromique en étant loggué sous <link xl:href="http://forge.ipsl.jussieu.fr/|project_svn|/"/> avec le menu <menuchoice><guilabel>loggin</guilabel></menuchoice>. Pour assurer la cohérence entre <quote>guides</quote> et Wiki, les pages sont

?
créées par process. cf <xref linkend="documentation_|project_svn|_guide"/>.
?

Roadmap

La <quote>roadmap</quote> est l'ensemble des étapes d'un projet. Quatre étapes nommées <quote>milestone<replaceable>x</replaceable></quote> sont définies à la création du projet.

Il faut définir et renseigner les étapes du projet <token role="projet">|project_svn|</token> soit par clicodrome sur la page <link xl:href="http://forge.ipsl.jussieu.fr/|project_svn|/roadmap/"/> soit avec la commande <command>trac-admin</command>.

<caution> <title>Ordre des étapes</title> <para> On ne maîtrise pas l'ordre des étapes avec <userinput>trac-admin <replaceable>path</replaceable> milestone</userinput>. Elles apparaissent dans l'ordre alphanumérique. </para> </caution>

<screen>
<prompt>|project_svn|@forge$</prompt> <userinput><command>trac-admin</command> <filename class="directory">/ipsl/forge/projets/|project_svn|/trac</filename> <parameter>milestone</parameter> <parameter>rename</parameter> <parameter>milestone1</parameter> <parameter>"consolidation"</parameter></userinput> <prompt>|project_svn|@forge$</prompt> <userinput><command>trac-admin</command> <filename class="directory">/ipsl/forge/projets/|project_svn|/trac</filename> <parameter>milestone</parameter> <parameter>rename</parameter> <parameter>milestone2</parameter> <parameter>"Nouvelles fonctionnalités"</parameter></userinput> <prompt>|project_svn|@forge$</prompt> <userinput><command>trac-admin</command> <filename class="directory">/ipsl/forge/projets/|project_svn|/trac</filename> <parameter>milestone</parameter> <parameter>rename</parameter> <parameter>milestone3</parameter> <parameter>"++"</parameter></userinput> <prompt>|project_svn|@forge$</prompt> <userinput><command>trac-admin</command> <filename class="directory">/ipsl/forge/projets/|project_svn|/trac</filename> <parameter>milestone</parameter> <parameter>rename</parameter> <parameter>milestone4</parameter> <parameter>"++"</parameter></userinput>
?

</screen>

On pourra vérifier l'ensemble des étapes du projet avec la commande suivante : <screen>

?
<prompt>|project_svn|@forge$</prompt> <userinput><command>trac-admin</command> <filename class="directory">/ipsl/forge/projets/|project_svn|/trac</filename> <parameter>milestone</parameter> <parameter>list</parameter></userinput>
?

</screen>

<caution> <title>Description d'une milestone</title> <para> La création des milestones via le clicodrome sur la page <link xl:href="http://forge.ipsl.jussieu.fr/|project_svn|/roadmap/"/> permet d'ajouter une description si on y est autorisé (<literal>MILESTONE_ADMIN</literal>) ce que je ne sais pas faire avec <command>trac-admin</command>. </para> </caution>

?

Travail sur <application class="software">svn</application>

?

Organisation de l'arborescence de base de <application class="software">svn</application>

Le dépôt <application class="software">svn</application> à la création est vide. Il faut créer les répertoires conventionnels <filename class="directory">trunk</filename>, <filename class="directory">branches</filename> et <filename class="directory">tags</filename> : <screen>

?
<prompt>fplod@aedon$</prompt> <userinput><command>cd</command> <filename class="directory">/tmp/</filename></userinput> <prompt>fplod@aedon$</prompt> <userinput><command>mkdir</command> <filename class="directory">/tmp/pour_|project_svn|_svn/</filename></userinput> <prompt>fplod@aedon$</prompt> <userinput><command>cd</command> <filename class="directory">/tmp/pour_|project_svn|_svn/</filename></userinput> <prompt>fplod@aedon$</prompt> <userinput><command>svn</command> <option>checkout</option> <parameter>svn+ssh://pinsard@forge.ipsl.jussieu.fr/ipsl/forge/projets/|project_svn|/svn/</parameter> <filename class="directory">|project_svn|_ws</filename></userinput>
?
<computeroutput>Checked out revision 0.</computeroutput>

<prompt>fplod@aedon$</prompt> <userinput><command>cd</command> <filename class="directory">/tmp/pour_|project_svn|_svn/|project_svn|_ws/</filename></userinput> <prompt>fplod@aedon$</prompt> <userinput><command>svn</command> <option>mkdir</option> <filename class="directory">trunk</filename></userinput>

?
<computeroutput>A trunk</computeroutput>
<prompt>fplod@aedon$</prompt> <userinput><command>svn</command> <option>mkdir</option> <filename class="directory">branches</filename></userinput>
<computeroutput>A branches</computeroutput>
<prompt>fplod@aedon$</prompt> <userinput><command>svn</command> <option>mkdir</option> <filename class="directory">tags</filename></userinput>
<computeroutput>A tags</computeroutput>
<prompt>fplod@aedon$</prompt> <userinput><command>svn</command> <option>commit</option> </userinput>
?

<userinput><option>--message</option> <parameter>"create tags, branches and trunk directories"</parameter></userinput> <computeroutput> Adding branches Adding tags Adding trunk

Committed revision 1. </computeroutput> </screen>

On peut vouloir choisir de continuer à travailler dans ce <quote>working space</quote> mais comme il est dans <filename class="directory">/tmp/</filename>, je préfère le détruire : <screen>

?
<prompt>fplod@aedon$</prompt> <userinput><command>cd</command></userinput> <prompt>fplod@aedon$</prompt> <userinput><command>rm</command> <option>-fr</option> <filename class="directory">/tmp/pour_|project_svn|_svn/</filename></userinput>
?

</screen>

?

Importation du travail existant

Importation de mon travail

J'ai mis en place qqes outils de configuration de projet (environnement, gestion des traces, gestion des doc) : il faut donc importer ce travail sous le dépôt.

Ils sont pour l'instant dans <filename class="directory">/usr/home/fplod/incas/|project_svn|/|project_svn|_ws/</filename>.

?

Pour l'instant il n'y a aucun source dans le dépôt svn.

Je passe par une arborescence intermédiaire : <screen>

?
<prompt>fplod@aedon$</prompt> <userinput><command>mkdir</command> <option>-p</option> <filename class="directory">/tmp/pour_|project_svn|_svn/</filename></userinput> <prompt>fplod@aedon$</prompt> <userinput><command>cd</command> <filename class="directory">/tmp/pour_|project_svn|_svn/</filename></userinput> <prompt>fplod@aedon$</prompt> <userinput><command>svn</command> <option>checkout</option> <parameter>svn+ssh://pinsard@forge.ipsl.jussieu.fr/ipsl/forge/projets/|project_svn|/svn/trunk/</parameter> <filename class="directory">|project_svn|_ws</filename></userinput>
?

</screen>

Je dépose mes fichiers dans cette arborescence : <screen>

?

<prompt>fplod@aedon$</prompt> <userinput><command>cd</command> <filename class="directory">|project_svn|_ws</filename></userinput> <prompt>fplod@aedon$</prompt> <userinput><command>cp</command> <option>-rp</option> <filename>/usr/home/fplod/incas/|project_svn|/|project_svn|_ws/</filename> <filename class="directory">.</filename></userinput> <prompt>fplod@aedon$</prompt> <userinput><command>svn</command> <option>add</option> <filename>src</filename></userinput> <prompt>fplod@aedon$</prompt> <userinput><command>svn</command> <option>add</option> <filename>adm</filename></userinput>

?
?

</screen>

Je m'assure que tout à l'air ok : <screen>

?
<prompt>fplod@aedon$</prompt> <userinput><command>svn</command> <parameter>status</parameter></userinput>
?

<computeroutput> A adm A adm/install.sh A adm/guides A adm/guides/future.rst A adm/guides/bibliography.rst A adm/guides/coding_rules.rst A adm/guides/generate_tropflux.rst A adm/guides/README.rst A adm/guides/history.rst A adm/guides/data_content.rst A adm/guides/glossary.rst A adm/guides/generate_statistics.rst A adm/sphinx A adm/sphinx/conf.py A adm/sphinx/Makefile A adm/extract_rst.sh A adm/makefile A adm/index.rst A adm/index_guides.rst A src A src/dlogd.sh A src/tlogd.sh A src/elogd.sh A src/tropflux_profile.sh A src/plogd.sh </computeroutput> </screen>

Comme tout semble correct, on fait le commit et on détruit cet espace de travail temporaire : <screen>

?
<prompt>fplod@aedon$</prompt> <userinput><command>svn</command> <parameter>commit</parameter> </userinput>
?

<userinput><option>--message</option> <parameter>"first commit with original work of Francoise Pinsard"</parameter></userinput> <computeroutput> &hellip; Transmitting file data ............................ Committed revision 2. </computeroutput>

?
<prompt>fplod@aedon$</prompt> <userinput><command>cd</command></userinput> <prompt>fplod@aedon$</prompt> <userinput>rm -rf /tmp/pour_|project_svn|_svn/</userinput>
?

</screen>

L'importation est terminée.

Je pourrais détruire ces fichiers originaux de départ et les remplacer par leur versions extraites du dépôt : <screen>

?

<prompt>fplod@aedon$</prompt> <userinput><command>cd</command> <filename class="directory">/usr/home/fplod/incas/|project_svn|/|project_svn|_ws/</filename></userinput> <prompt>fplod@aedon$</prompt> <userinput><command>rm</command> <filename>src</filename></userinput> <prompt>fplod@aedon$</prompt> <userinput><command>rm</command> <filename>adm</filename></userinput>

?
?

</screen>

Je les remplace par leur versions extraites du dépôt : <screen>

?
<prompt>fplod@aedon$</prompt> <userinput><command>cd</command> <filename class="directory">/usr/home/fplod/incas/|project_svn|/|project_svn|_ws/</filename></userinput> <prompt>fplod@aedon$</prompt> <userinput><command>svn</command> <option>checkout</option> svn+ssh://pinsard@forge.ipsl.jussieu.fr/ipsl/forge/projets/|project_svn|/svn/trunk/ .</userinput>
?

</screen> .. _travail_svn_import_jv: Importation du travail de Jérôme Vialard ======================================== Jérôme a développé des shells de récupération de données : il faut donc importer son travail sous le dépôt.

Jérôme m'a envoyé ses fichiers par mail (20101123). Je les recupère dans <filename class="directory">/usr/home/fplod/incas/tropflux/tropflux_ws/src</filename>.

Je les ajoute à mon ws et je comitte <screen>

?
<prompt>fplod@aedon$</prompt> <userinput><command>svn</command> <option>add</option> <filename>get*</filename></userinput> <prompt>fplod@aedon$</prompt> <userinput><command>svn</command> <parameter>commit</parameter> </userinput>
?

<userinput><option>--message</option> <parameter>"first commit with original work of Jerome Vialard"</parameter></userinput> <computeroutput> Adding src/get_olr Adding src/get_olrnint Adding src/get_pirata_netcdf Adding src/get_rama_netcdf Adding src/get_tao_netcdf Transmitting file data ..... Committed revision 3. </computeroutput> </screen>

L'importation est terminée.

Les fichiers originaux de Jérôme ne seront plus la référence de travail à partir de maintenant (20101213).

Docutils System Messages

????????????????????????????????
Note: See TracBrowser for help on using the repository browser.