<chapter id="applicationwizard">

<chapterinfo>
  <authorgroup>
    <author
> <firstname
>Bernd</firstname
><surname
>Pol</surname
></author>
    <!-- ROLES_OF_TRANSLATORS -->
  </authorgroup>
</chapterinfo>

<title
>Premiers pas &mdash; l'&appwizard;</title>
<!-- FIXME (bp, 2006-06-18) This is a misnomer. It should be something like -->
<!-- Working With Projects -->
<!-- featuring the application manager as part of the New Projects section. -->

<indexterm zone="applicationwizard">
  <primary
>&appwizard;</primary
></indexterm>

<para
>Dans &kdevelop;, les travaux de développement logiciel sont organisés en <emphasis
>projets</emphasis
>. Un tel projet conserve ensemble tout ce qui appartient à une tâche de programmation complète : fichiers source, fichiers de données additionnels, toute fonction de gestion réellement nécessaire comme le système « make », ainsi que l'accès à tous les composants et tout outil supplémentaire requis pour mettre en service et pour exécuter l'application. </para>
<para
>L'organisation de tous les travaux de développement en projets vous permet de passer facilement d'une tâche globale à l'autre à la main. Ceci est très pratique si &pex; vous travaillez sur plusieurs applications en même temps comme c'est souvent le cas. Donnez l'ordre à &kdevelop; d'ouvrir le projet sur lequel vous souhaitez travailler et vous pouvez continuer dans l'environnement à l'endroit précis où vous l'aviez laissé. </para>

<sect1 id="new-projects">
<title
>Nouveaux projets</title>

<!-- TODO (bp, 2006-06-18) This whole section must be completely rewritten. -->
<!-- There is no need for a tutorial habit anymore. -->

<indexterm zone="new-projects">
  <primary
>projet</primary>
  <secondary
>nouveau</secondary
></indexterm>

<para
>Chaque fois que vous voulez lancer un nouveau projet de programmation, un nombre non négligeable de procédures formelles de configuration doit être effectué. Une structure initiale de dossiers doit être mise en place, les en-têtes initiaux et les fichiers sources fournis, le système « make » initialisé, &etc; </para>
<para
>&kdevelop; offre un moyen aisé de lancer un nouveau projet de programmation &mdash; l'<emphasis
>&appwizard;</emphasis
>. Vous trouverez l'&appwizard; dans l'élément de menu <menuchoice
><guimenu
>Projet</guimenu
> <guimenuitem
>Nouveau projet</guimenuitem
></menuchoice
>. </para>
<para
>Une seule et courte série d'étapes suffit pour démarrer un nouveau projet de programmation à l'aide de l'&appwizard; : </para>
<orderedlist>
  <listitem
><para
><link linkend="new-projects-start-type"
>Choisissez le langage de programmation</link
> que vous souhaitez utiliser et le type de l'application que vous voulez construire à partir d'un ensemble de modèles prédéfinis. </para
></listitem>
  <listitem
><para
><link linkend="new-projects-start-general"
>Indiquez des informations générales</link
> comme le nom de l'application, le dossier dans lequel l'application devra être construite, &etc; </para
></listitem>
  <listitem
><para
>Décidez si vous souhaitez utiliser un <link linkend="new-projects-start-cvs"
>système de contrôle de versions</link
>, comme &pex; CVS, et fournissez les données nécessaires si besoin est. </para
></listitem>
  <listitem
><para
>Configurez quelques modèles pour les <link linkend="new-projects-start-templates"
>en-têtes initiaux et les fichiers sources</link
> (si applicable). </para
></listitem>
  <listitem
><para
>Pour finir, donnez l'ordre à l'&appwizard; de <link linkend="new-projects-start-build"
>configurer des éléments initiaux</link
>, une structure de dossiers, des modèles d'en-têtes de démarrage et de fichiers source, ainsi que des outils de gestion comme &pex; un squelette « make » initial, &etc; </para
></listitem>
</orderedlist>
<para
>Voilà &mdash; c'est tout. L'&appwizard; a mis à votre disposition un premier ensemble fonctionnel de fichiers de programmation qui vous permet de commencer à travailler dans de bonnes conditions. </para>
<para
>Examinons tout ceci en détail à présent ... </para>

<sect2 id="new-projects-start">
<title
>Étapes initiales</title>

<indexterm zone="new-projects-start">
  <primary
>boîte de dialogue</primary>
  <secondary
>créer un nouveau projet</secondary
></indexterm>
<indexterm zone="new-projects-start">
  <primary
>projet</primary>
  <secondary
>créer un nouveau projet</secondary>
  <tertiary
>boîte de dialogue</tertiary
></indexterm>
<indexterm zone="new-projects-start">
  <primary
>projet</primary>
  <secondary
>modèles</secondary
></indexterm>
<indexterm zone="new-projects-start">
  <primary
>modèles</primary>
  <secondary
>projet</secondary
></indexterm>

<para
>Pour créer un nouveau projet dans &kdevelop;, sélectionnez <guimenuitem
>Nouveau projet</guimenuitem
> dans le menu <guimenu
>Projet</guimenu
>. La boîte de dialogue <guilabel
>Créer un nouveau projet</guilabel
> apparaît, affichant une page initiale <guilabel
>Géneral</guilabel
> : </para>

<screenshot id="screenshot-newprojectwizard">
  <mediaobject>
    <imageobject>
      <imagedata fileref="create-new-project.png" format="PNG"/>
    </imageobject>
    <caption
><para
>Boîte de dialogue initiale pour configurer un nouveau projet </para
></caption>
  </mediaobject>
</screenshot>

<para
>Comme vous le voyez, cette boîte de dialogue est divisée en une partie supérieure et une partie inférieure. Dans la partie supérieure, vous pouvez décider du langage de programmation et du type de l'application, alors que la partie inférieure contient des informations d'ordre général. </para>

<sect3 id="new-projects-start-type">
<title
>Choisissez le langage de programmation et le type de l'application</title>

<indexterm zone="new-projects-start-type">
  <primary
>projet</primary>
  <secondary
>type d'application</secondary
></indexterm>
<indexterm zone="new-projects-start-type">
  <primary
>projet</primary>
  <secondary
>langage de programmation</secondary
></indexterm>
<indexterm zone="new-projects-start-type">
  <primary
>projet</primary>
  <secondary
>langage</secondary
></indexterm>
<indexterm zone="new-projects-start-type">
  <primary
>langage</primary
></indexterm>
<indexterm zone="new-projects-start-type">
  <primary
>langage de programmation</primary
></indexterm>
<indexterm zone="new-projects-start-type">
  <primary
>application</primary>
  <secondary
>type</secondary
></indexterm>

<para
>Le côté gauche de la partie supérieure de cette boîte de dialogue est l'endroit où vous effectuez le travail de sélection. Lorsqu'elle s'affiche, vous y trouvez une liste de dossiers dont chacun porte le nom d'un langage de programmation comme : </para>

<itemizedlist>
  <listitem
><para
>Ada <indexterm>
      <primary
>Ada</primary>
      <secondary
>nouveau projet</secondary
></indexterm>
  </para
></listitem>
  <listitem
><para
>C <indexterm>
      <primary
>C</primary>
      <secondary
>nouveau projet</secondary
></indexterm>
  </para
></listitem>
  <listitem
><para
>C++ <indexterm>
      <primary
>C++</primary>
      <secondary
>nouveau projet</secondary
></indexterm>
  </para
></listitem>
  <listitem
><para
>Base de données (projets SQL) <indexterm>
      <primary
>SQL</primary>
      <secondary
>nouveau projet</secondary
></indexterm>
    <indexterm>
      <primary
>Base de données</primary>
      <secondary
>nouveau projet</secondary
></indexterm>
  </para
></listitem>
  <listitem
><para
>Fortran <indexterm>
      <primary
>Fortran</primary>
      <secondary
>nouveau projet</secondary
></indexterm>
  </para
></listitem>
  <listitem
><para
>Haskell <indexterm>
      <primary
>Haskell</primary>
      <secondary
>nouveau projet</secondary
></indexterm>
  </para
></listitem>
  <listitem
><para
>Java <indexterm>
      <primary
>Java</primary>
      <secondary
>nouveau projet</secondary
></indexterm>
  </para
></listitem>
  <listitem
><para
>PHP <indexterm>
      <primary
>PHP</primary>
      <secondary
>nouveau projet</secondary
></indexterm>
  </para
></listitem>
  <listitem
><para
>Pascal <indexterm>
      <primary
>Pascal</primary>
      <secondary
>nouveau projet</secondary
></indexterm>
  </para
></listitem>
  <listitem
><para
>Perl <indexterm>
      <primary
>Perl</primary>
      <secondary
>nouveau projet</secondary
></indexterm>
  </para
></listitem>
  <listitem
><para
>Python <indexterm>
      <primary
>Python</primary>
      <secondary
>nouveau projet</secondary
></indexterm>
  </para
></listitem>
  <listitem
><para
>Ruby <indexterm>
      <primary
>Ruby</primary>
      <secondary
>nouveau projet</secondary
></indexterm>
  </para
></listitem>
  <listitem
><para
>Shell (scripts pour le shell Bash) <indexterm>
      <primary
>Bash</primary>
      <secondary
>nouveau projet</secondary
></indexterm>
    <indexterm>
      <primary
>shell</primary>
      <secondary
>nouveau projet</secondary
></indexterm>
  </para
></listitem>
</itemizedlist>

<para
>Pour être précis, ces dossiers ne contiennent pas d'outils de programmation réels à proprement parler. En revanche, ils donnent accès à des <emphasis
>modèles</emphasis
> prédéfinis que vous pouvez employer comme point de départ pour développer dans ce langage. Pour avoir une idée de ce qui est prévu, il suffit d'ouvrir les dossiers l'un après l'autre. Ils contiennent une série de sous-dossiers sur certains, un ou plusieurs éléments simples seulement sur d'autres. Les sous-dossiers que vous voyez organisent les modèles disponibles en fonction de certaines tâches, les éléments simples nomment les modèles que vous pouvez sélectionner. </para>
<para
>Nous ne pouvons pas préciser davantage ici quelles tâches chaque modèle prévoit, mais il est facile de le découvrir. Quand vous choisissez un élément de modèle, des informations s'affichent dans les champs de droite. Le champ inférieur contient une <emphasis
>courte description</emphasis
> de ce que le modèle est supposé faire. Dans le champ supérieur, une image illustre, si disponible, le résultat de l'application que ce modèle produit si vous le compilez et l'exécutez sans le modifier. Habituellement, c'est une <emphasis
>capture d'écran</emphasis
> de la fenêtre principale que l'application affiche. </para>
<para
>Choisissez le modèle qui correspond le mieux aux objectifs de votre application comme point de départ. Saisissez ensuite les informations générales sur les propriétés dans le champ inférieur, comme expliqué dans le prochain chapitre. </para>

<formalpara>
<title
>Sélectionner un système de gestion de projet</title>
<para
>Chaque modèle est lié à un <link linkend="makesystems"
>système de gestion de projet</link
> spécifique. Il n'y a actuellement aucun moyen direct de choisir librement un tel système de gestion de projet. Il vous faut trouver un modèle qui convienne à vos besoins ou modifier votre projet en conséquence après création. </para>
</formalpara>

</sect3
> <!-- new-projects-start-type -->

<sect3 id="new-projects-start-general">
<title
>Fournir des informations générales</title>

<indexterm zone="new-projects-start-general">
  <primary
>projet</primary>
  <secondary
>propriétés</secondary
></indexterm>
<indexterm zone="new-projects-start-general">
  <primary
>propriétés</primary
></indexterm>
<indexterm zone="new-projects-start-general">
  <primary
>application</primary>
  <secondary
>nom</secondary
></indexterm>
<indexterm zone="new-projects-start-general">
  <primary
>nom</primary>
  <secondary
>application</secondary
></indexterm>
<indexterm zone="new-projects-start-general">
  <primary
>projet</primary>
  <secondary
>dossier</secondary
></indexterm>
<indexterm zone="new-projects-start-general">
  <primary
>dossier</primary>
  <secondary
>projet</secondary
></indexterm>
<indexterm zone="new-projects-start-general">
  <primary
>chemin</primary>
  <secondary
>nouveau projet</secondary
></indexterm>
<indexterm zone="new-projects-start-general">
  <primary
>projet</primary>
  <secondary
>auteur</secondary
></indexterm>
<indexterm zone="new-projects-start-general">
  <primary
>projet</primary>
  <secondary
>adresse électronique</secondary
></indexterm>
<indexterm zone="new-projects-start-general">
  <primary
>auteur</primary
></indexterm>
<indexterm zone="new-projects-start-general">
  <primary
>adresse électronique</primary
></indexterm>
<indexterm zone="new-projects-start-general">
  <primary
>projet</primary>
  <secondary
>main.cpp</secondary
></indexterm>
<indexterm zone="new-projects-start-general">
  <primary
>main.cpp</primary
></indexterm>
<indexterm zone="new-projects-start-general">
  <primary
>projet</primary>
  <secondary
>licence</secondary
></indexterm>
<indexterm zone="new-projects-start-general">
  <primary
>licence</primary
></indexterm>

<para
>La partie inférieure de la boîte de dialogue <guilabel
>Créer un nouveau projet</guilabel
> de la page <guilabel
>Général</guilabel
> est un champ encadré intitulé <guilabel
>Propriétés</guilabel
>. Indiquez ici quelques informations d'ordre général sur votre projet de façon à ce que l'&appwizard; sache comment construire la structure initiale. </para>
<formalpara>
<title
>Nom de l'application</title>
<para
>Votre application a bien entendu besoin d'un nom. Saisissez ce dernier dans le champ <guilabel
>Propriétés</guilabel
> supérieur, appelé <guilabel
>Nom de l'application</guilabel
>. Nous utiliserons <quote
>MyApp</quote
> à titre d'exemple. </para>
</formalpara>
<para
>Ce faisant, vous remarquez que l'&appwizard; refuse d'admettre des caractères spéciaux, quels qu'ils soient. Les seuls caractères admis sont : <itemizedlist>
  <listitem
><para
>les caractères en majuscules et en minuscules</para
></listitem>
  <listitem
><para
>les nombres</para
></listitem>
  <listitem
><para
>le caractère de soulignement</para
></listitem>
</itemizedlist>
</para>
<para
>Une cause notable de cette restriction est que l'&appwizard; utilise ce nom d'application comme <emphasis
>base de certains noms de classes</emphasis
> qu'il construit lors de la configuration d'un projet initial. Par conséquent, le nom de l'application doit coller aux règles du langage de programmation que vous employez. </para>
<formalpara>
<title
>Le dossier du projet</title>
<para
>Vous pouvez voir l'autre cause notable de cette restriction sur la ligne inférieure de la zone <guilabel
>Propriétés</guilabel
>. Elle est intitulée <guilabel
>Emplacement cible</guilabel
> et affiche le dossier dans lequel l'&appwizard; crée l'application. </para>
</formalpara>
<para
>Lorsque vous saisissez le nom de l'application, vous remarquez que l'&appwizard; répète votre saisie à la fin de la ligne <guilabel
>Emplacement cible</guilabel
>, en utilisant uniquement des caractères en minuscules. </para>
<para
>Par conséquent, vous devez choisir le nom de votre nouvelle application avec soin. Si vous vous retrouvez avec un dossier déjà utilisé, l'&appwizard; ne vous autorisera pas à passer à l'étape suivante et laissera le bouton <guibutton
>Suivant &gt;</guibutton
> désactivé (grisé). De plus, il vous <emphasis
>avertira</emphasis
> dans ce cas en ajoutant ( le o«ssier / fichier existe déjà) » à la fin de la ligne <guilabel
>Emplacement cible</guilabel
>. </para>

<formalpara>
<title
>Le chemin de démarrage</title>
<para
>Il y a deux manières de sélectionner un autre chemin pour votre nouvelle application. L'une consiste à choisir un autre nom. Néanmoins, ce n'est pas toujours faisable (vous pourriez &pex; installer une autre version d'une application déjà existante). À titre d'alternative, vous pouvez choisir un autre chemin vers le dossier de l'application. </para>
</formalpara>
<para
>Le champ de saisie de la deuxième ligne de <guilabel
>Propriétés</guilabel
>, dénommé <guilabel
>Emplacement</guilabel
> permet de le faire. Ce que vous saisissez correspond au <emphasis
>chemin de démarrage</emphasis
> du dossier de développement de la nouvelle application. L'&appwizard; ajoute lenom de l'application à ce chemin lorsqu'il initialise le nouveau projet. Le résultat est affiché sur la ligne <guilabel
>Emplacement cible</guilabel
> pour vous donner un meilleur contrôle sur ce qui se passe. </para>
<para
>L'&appwizard; copie une <emphasis
>valeur initiale</emphasis
> dans le champ <guilabel
>Emplacement</guilabel
> au démarrage. Celle-ci provient de ce que vous avez choisi dans le champ <guilabel
>Dossier des projets par défaut</guilabel
> pendant les <link linkend="setup-general"
>étapes générales de configuration</link
>. Dans notre cas, &kdevelop; est configuré pour utiliser <filename class="directory"
>/home/devel/projets/</filename
> comme chemin initial pour les nouveaux projets. </para>
<para
>Modifiez le contenu du champ <guilabel
>Emplacement</guilabel
> de façon à ce que le dossier de développement d'application affiché sur la ligne <guilabel
>Emplacement cible</guilabel
> soit unique. </para>
<!--TODO add tab description Project Options -->
<note
><para
>Veillez à ce que le chemin que vous saisissez dans le champ <guilabel
>Emplacement</guilabel
> existe déjà. Sinon, vous ne serez pas en mesure de passer à l'étape suivante. L'&appwizard; vous <emphasis
>avertira</emphasis
> à propos des chemins non existants en ajoutant ( non va«lable)  à la fin» de la ligne <guilabel
>Emplacement cible</guilabel
>. </para
></note>

<screenshot id="screenshot-createnewprojectoptions">
  <mediaobject>
    <imageobject>
      <imagedata fileref="createnewprojectoptions.png" format="PNG"/>
    </imageobject>
    <caption
><para
>Configurer un nouveau projet pour CVS </para
></caption>
  </mediaobject>
</screenshot>

<formalpara>
<title
>Informations personnelles</title>
<para
>Les champs suivants ne sont pas aussi cruciaux. Saisissez simplement votre nom (&cad; le nom de la personne responsable de l'application) dans le champ <guilabel
>Auteur</guilabel
> ainsi qu'une adresse électronique valable dans le champ <guilabel
>Adresse électronique</guilabel
> de façon à ce que les utilisateurs puissent vous communiquer leurs réactions sur l'application. </para>
</formalpara>

<note>
<orderedlist>
  <listitem
><para
>L'&appwizard; remplit ces champs avec certaines valeurs par défaut, provenant des préréglages d'adresses électroniques du &centreConfiguration;. Si ces valeurs par défaut dans les champs <guilabel
>Créer un nouveau projet</guilabel
>, <guilabel
>Auteur</guilabel
> et <guilabel
>Adresse électronique</guilabel
> ne conviennent pas, jetez un coup d'œil à la configuration de votre courrier dans le &centreConfiguration;. </para
></listitem>
  <listitem
><para
>L'&appwizard; intégrera ces informations dans les modèles du programme de démarrage, si applicable. Dans les programmes C++ de &kde;, &pex;, vous les trouverez au début du fichier source <filename
>main.cpp</filename
>. </para
></listitem>
  <listitem
><para
>De tous les champs, <guilabel
>Adresse électronique</guilabel
> est <emphasis
>optionnel</emphasis
>, illustrant le fait que tous les développeurs ne peuvent pas avoir accès à l'internet. Vous pouvez laisser ce champ vide si vous le souhaitez et continuer néanmoins. </para
></listitem>
</orderedlist>
</note>

<formalpara>
<title
>Infos de version et de licence</title>
<para
>Saisissez pour finir un numéro de version de départ pour votre nouvelle application dans le champ <guilabel
>Version</guilabel
>, et choisissez la licence sous laquelle vous souhaitez que votre application soit placée dans l'onglet <guilabel
>Licence</guilabel
>. </para>
</formalpara>

<para
>Si vous sélectionnez un type d'application pour lequel l'&appwizard; fournit des modèles de textes sources courants (&pex;, C/C++), vous pouvez voir le texte de notification sur la troisième page de cette boîte de dialogue <guilabel
>Créer un nouveau projet</guilabel
> (reportez-vous au chapitre <link linkend="new-projects-start-templates"
>Fournir des modèles de sources et d'en-têtes</link
>). </para>
<para
>Si vous avez sélectionné « Personnalisée » dans l'onglet <guilabel
>Licence</guilabel
>, prévoyez un texte de licence qui vous est propre. </para>

<note
><para
>Les informations de version et de licence seront également intégrées dans les modèles de départ dans un format approprié que fournit le type d'application que vous avez choisi. </para
></note>

<para
>Une fois que avez correctement saisi toutes ces informations, cliquez sur le bouton <guibutton
>Suivant &gt;</guibutton
> pour continuer, comme décrit dans les chapitres suivants. </para>
</sect3
> <!-- new-projects-start-general -->

</sect2
> <!-- new-projects-start -->

<sect2 id="new-projects-start-cvs">
<title
>Fournir des informations sur le système de versions</title>

<indexterm zone="new-projects-start-cvs">
  <primary
>CVS</primary>
  <secondary
>nouveau projet</secondary
></indexterm>
<indexterm zone="new-projects-start-cvs">
  <primary
>projet</primary>
  <secondary
>CVS</secondary
></indexterm>
<indexterm zone="new-projects-start-cvs">
  <primary
>base de données</primary>
  <secondary
>CVS</secondary
></indexterm>
<indexterm zone="new-projects-start-cvs">
  <primary
>version</primary>
  <secondary
>base de données</secondary
></indexterm>
<indexterm zone="new-projects-start-cvs">
  <primary
>version</primary>
  <secondary
>CVS</secondary
></indexterm>

<para
>Dans une seconde étape, l'&appwizard; vous conduit à la page <guilabel
>Système de contrôle des versions</guilabel
> dans laquelle vous pouvez décider du système de contrôle de versions que vous souhaitez utiliser. </para>

<note
><para
>Cette description se concentre sur les besoins pour la seule création d'un projet. Pour plus d'informations sur &CVS;, reportez-vous au chapitre <link linkend="cvs"
>Utilisation de &CVS;</link
> ci-dessous. </para
></note>

<formalpara>
<title
>Aucun système de contrôle de versions souhaité</title>
<para
>Initialement, « Aucun » est sélectionné dans l'onglet <guilabel
>Système de contrôle de versions</guilabel
> : la page sera donc vide en principe. Si vous ne voulez pas utiliser de système de contrôle de versions, il suffit de cliquer sur le bouton <guibutton
>Suivant &gt;</guibutton
> et de continuer. </para>
</formalpara>

<formalpara>
<title
>Utilisation de &CVS;</title>
<para
>Dans le cas contraire, sélectionnez à nouveau le système de contrôle de versions que vous souhaitez employer dans l'onglet <guilabel
>Système de contrôle des versions</guilabel
>. Pour notre exemple, il s'agit de « &CVS; ». Si vous choisissez ce dernier, l'&appwizard; réaffiche la page, montrant à présent une série de champs qu'il vous faut remplir. </para>
</formalpara>

<screenshot id="screenshot-newproject-cvs">
  <mediaobject>
    <imageobject>
      <imagedata fileref="create-new-project-cvs.png" format="PNG"/>
    </imageobject>
    <caption
><para
>Configurer un nouveau projet pour CVS </para
></caption>
  </mediaobject>
</screenshot>

<para
>Un système de contrôle de versions tel que &CVS; (qui signifie C oncurr«ent Versions System », système de versions concurrentes) enregistre des copies des fichiers des projets sélectionnés dans une sorte de base de données. Si vous utilisez &CVS;, vous pouvez entre autres déposer sur le serveur (faire un « commit ») ces fichiers ou les importer dans le dossier de votre projet (faire un c heckou«t », ou les mettre à jour (faire un « update »). Notez en particulier que les fichiers contenus dans la base de données du système de versions sont enregistrés de manière structurée qui vous permet de toujours revenir à un état de développement antérieur si besoin est. En outre, &CVS; permet à un grand nombre de développeurs de collaborer assez facilement sur un gros projet (tel que &kdevelop;) sans perturber le travail de chacun d'eux. </para>

<indexterm zone="new-projects-start-cvs-root">
  <primary
>CVS</primary>
  <secondary
>racine</secondary
></indexterm>
<indexterm zone="new-projects-start-cvs-root">
  <primary
>racine</primary>
  <secondary
>CVS</secondary
></indexterm>
<indexterm zone="new-projects-start-cvs-root">
  <primary
>CVS</primary>
  <secondary
>local</secondary
></indexterm>
<indexterm zone="new-projects-start-cvs-root">
  <primary
>CVS</primary>
  <secondary
>distant</secondary
></indexterm>
<indexterm zone="new-projects-start-cvs-root">
  <primary
>CVS local</primary
></indexterm>
<indexterm zone="new-projects-start-cvs-root">
  <primary
>:local:</primary
></indexterm>
<indexterm zone="new-projects-start-cvs-root">
  <primary
>CVS</primary>
  <secondary
>:local:</secondary
></indexterm>

<formalpara id="new-projects-start-cvs-root">
<title
>Racine de &CVS;</title>
<para
>&CVS; doit <emphasis
>gérer</emphasis
> la base de données du système de versions qu'il garde de vos fichiers de projets. Pour ce faire, il conserve certaines informations spéciales de la base de données dans un dossier propre, appelé <emphasis
>&CVS; root</emphasis
>. La première étape pour configurer &CVS; pour votre nouveau projet consiste donc à indiquer à &kdevelop; où se trouve cette racine. </para>
</formalpara>

<para
><emphasis
>Local &CVS; root.</emphasis
> Il y a deux possibilités  essentielles. Soit vous souhaitez utiliser une base de données &CVS; <emphasis
>locale</emphasis
>, soit une base de données hébergée sur un <emphasis
>serveur distant</emphasis
>. Si vous développez pour vous-même, vous pouvez être amené à employer la base de données &CVS; comme une sorte de système de sauvegarde sur votre propre ordinateur. Habituellement, celle-ci est installée à la racine de votre dossier personnel et porte le nom <filename
>cvsroot</filename
>. Voici à quoi elle ressemble : </para>
<para
><userinput
><filename class="directory"
>/home/devel/cvsroot</filename
></userinput
> (où <filename
>devel</filename
> désigne simplement l'utilisateur d évelop«pement , juste »à titre d'exemple) </para>

<note
><para
>En fait, il s'agit d'une forme abrégée. Pour être exact, la racine du &CVS; local devra être adressée à l'aide du préfixe <computeroutput
>:local:</computeroutput
>. La forme abrégée n'est autorisée que dans les cas où le nom de fichier commence par une barre oblique (<computeroutput
>/</computeroutput
>). Le nom complet dans notre exemple de racine du &CVS; local ressemblera exactement à : <filename class="directory"
>:local:/home/devel/ cvsroot</filename
> </para
></note>

<para
>Saisissez le nom du dossier de la racine &CVS; pour lequel votre système a été configuré dans le champ <guilabel
>Racine du référentiel CVS</guilabel
>. En principe, vous pouvez choisir n'importe quel nom, voire utiliser de multiples bases de données &CVS;, mais il est préférable de coller à la racine du &CVS; dès lors qu'elle est configurée. </para>
<para
><emphasis
>Initialiser une nouvelle racine &CVS;.</emphasis
> S'il n'existe pas encore de racine &CVS;, &kdevelop; peut ordonner au système &CVS; d'en créer une à votre place dans le dossier donné. Cochez simplement la case <guilabel
>Dossier racine pour l'initialisation</guilabel
> sous le champ <guilabel
>Racine du référentiel CVS</guilabel
>. </para>
<note
><para
>Comme nous l'avons vu, &kdevelop; ne <emphasis
>commande</emphasis
> le système &CVS; que pour initialiser une nouvelle racine &CVS;. Il n'a aucune action par lui-même dans ce dossier. Heureusement, &CVS; est assez intelligent pour vérifier si le dossier racine du &CVS; existe déjà. Donc, il n'y a aucun risque si vous avez coché <guilabel
>Dossier racine pour l'initialisation</guilabel
> par inadvertance sur un dosser racine &CVS; déjà existant. </para
></note>

<para
><emphasis
>Racine du &CVS; distant.</emphasis
> Parfois, il faut conserver la base de données du &CVS; sur un serveur distant, en particulier lorsque plusieurs développeurs travaillent sur le même projet. Saisissez alors l'URL racine du &CVS; de ce serveur dans le champ <guilabel
>Racine du référentiel CVS</guilabel
>. Par exemple, pour accéder au serveur &CVS; de &kde; : </para>
<para
><userinput
><filename class="directory"
>:pserver:monlogin@cvs.kde.org:/home/kde</filename
></userinput
> (où <filename
>monlogin</filename
> désigne le nom de connexion configuré dans votre compte &CVS; &kde;) </para>

<indexterm zone="new-projects-start-cvs-remote">
  <primary
>CVS distant</primary
></indexterm>
<indexterm zone="new-projects-start-cvs-remote">
  <primary
>:pserver:</primary
></indexterm>
<indexterm zone="new-projects-start-cvs-remote">
  <primary
>:ext:</primary
></indexterm>
<indexterm zone="new-projects-start-cvs-remote">
  <primary
>CVS</primary>
  <secondary
>:local:</secondary
></indexterm>
<indexterm zone="new-projects-start-cvs-remote">
  <primary
>CVS</primary>
  <secondary
>:pserver:</secondary
></indexterm>
<indexterm zone="new-projects-start-cvs-remote">
  <primary
>CVS</primary>
  <secondary
>:ext:</secondary
></indexterm>

<formalpara id="new-projects-start-cvs-remote">
<title
>Types de serveurs &CVS; distants</title>
<para
>Il y a essentiellement deux types de serveurs &CVS; distants largement répandus : le serveur <emphasis
>pserver</emphasis
> qui fonctionne selon un protocole non crypté avec mot de passe sécurisé, et le serveur <emphasis
>ext</emphasis
> qui fait intervenir un transfert de données cryptées rsh ou ssh. On les distingue par le préfixe d'&URL; qu'ils utilisent : </para>
</formalpara>
<para>
<filename
>:pserver:</filename>
</para>
<para
>pour le s erveur« protégé par mot de passe », de type non crypté, et </para>
<para>
<filename
>:ext:</filename>
</para>
<para
>pour un type de serveur crypté rsh ou ssh. Par exemple </para>
<para>
<userinput
><filename class="directory"
>:ext:<replaceable
>mylogin</replaceable
>@cvs.cervisia.sourceforge.net:/cvsroot/cervisia</filename
></userinput>
</para>
<para
>accède à la racine &CVS; de l'outil de gestion &CVS; <application
>Cervisia</application
> bien connu, sur le serveur de SourceForge. </para>
<para
>Pour bénéficier d'un serveur crypté rsh ou ssh pour un accès &CVS;, indiquez à &kdevelop; le protocole de cryptage à utiliser. Il suffit de saisir <userinput
>rsh</userinput
> ou <userinput
>ssh</userinput
> dans le champ <guilabel
>CVS_RSH</guilabel
> de la page <guilabel
>Système de contrôle des versions</guilabel
>, <guilabel
>Créer un nouveau projet</guilabel
>. </para>

<note
><para
>Il y a une mise en garde si vous utilisez un serveur crypté pour &CVS; depuis &kdevelop;. Consultez le chapitre <link linkend="cvs"
>Utilisation de &CVS;</link
> pour les détails. </para
></note>

<indexterm zone="new-projects-start-cvs-repository">
  <primary
>CVS</primary>
  <secondary
>référentiel</secondary
></indexterm>
<indexterm zone="new-projects-start-cvs-repository">
  <primary
>référentiel</primary>
  <secondary
>CVS</secondary
></indexterm>

<formalpara id="new-projects-start-cvs-repository">
<title
>Le référentiel &CVS;</title>
<para
>Jusqu'ici, vous avez indiqué à &kdevelop; où réside la racine &CVS; qui gère la base de données du sytème de versions et la manière d'y accéder. Indiquez-lui à présent sous quel nom vous souhaitez que &CVS; enregistre vos fichiers de projet dans cette base de données. L'endroit qui contiendra vos fichiers de projets dans &CVS; est appelé <emphasis
>référentiel</emphasis
>. </para>
</formalpara>
<para
>En principe, vous pouvez choisir n'importe quel nom pour le référentiel &CVS; de vos fichiers de projets, du moment qu'il adhère aux spécifications de nommage d'un fichier. Néanmoins, la plupart des développeurs utilisent simplement le nom de l'application elle-même. Comme &CVS; crée un dossier portant son nom dans la racine du &CVS;, vous le retrouverez plus facilement si vous lui laissez le nom de l'application. </para>
<para
>Saisissez juste le nom du référentiel de votre choix dans le champ <guilabel
>Référentiel CVS</guilabel
> de la page <guilabel
>Système de contrôle des versions</guilabel
>, <guilabel
>Créer un nouveau projet</guilabel
>. Dans notre exemple, il s'agit de : <userinput
>MonApp</userinput
> </para>

<warning
><para
><emphasis
>Veillez à ne pas employer un référentiel qui existe déjà !</emphasis
> Le système &CVS; ne signale rien à propos des fichiers en double, mais supprime en bloc tout ce qui ne produit pas un conflit formel. Vous bouleverserez tout ! </para
></warning>

<formalpara>
<title
>Les champs restants</title>
<para
>Il ne reste plus beaucoup de choses à faire. L'&appwizard; a déjà configuré les champs restants à votre place. Dans le détail : </para>
</formalpara>
<para
>Le champ <guilabel
>Fournisseur</guilabel
> n'est employé que pour des raisons de compatibilité. Vous pouvez coller au f ournis«seur  par déf»aut que l'&appwizard; place ici. </para>
<para
>Le champ <guilabel
>Message</guilabel
> vous permet de commenter le contenu initial de &CVS;. Placez-y le texte de votre choix ou contentez-vous de coller le n ouveau« projet » par défaut que l'&appwizard; a placé ici. </para>
<para
>Le <guilabel
>Marqueur pour la version de diffusion</guilabel
> contient le nom qui marque l'état initial de votre projet. Ce type de <emphasis
>marqueur</emphasis
> désigne un certain stade au sein du référentiel &CVS;, grâce auquel vous pourrez accéder utérieurement à cet état de votre développement. (Vous trouverez d'autres détails dans le chapitre <link linkend="cvs"
>Utilisation de &CVS;</link
>.) </para>
<para
>L'&appwizard; a placé un marqueur d émarre«r » par défaut ici, qui est une proposition intéressante. Contentez-vous d'y adhérer. </para>

<note>
<para
>Si l'une quelconque de ces informations est erronée, &kdevelop; n'en saura d'ordinaire rien jusqu'au moment de la construction du projet. C'est le système &CVS; qui découvrira ces erreurs lorsqu'il essaiera de construire le référentiel. Vous devez donc garder un œil sur la fenêtre <guilabel
>Messages</guilabel
> de &kdevelop; quand le projet est créé, lors de l'étape finale de configuration. Si quoi que ce soit était erroné avec &CVS;, vous verriez, dans la plupart des cas, un message d'erreur comme celui-ci : </para>

<screen
><computeroutput>
* cd '/home/devel/test' &amp;&amp; cvs -d '/home/devel/mycvsroot' \
  import -m 'new project' '' 'vendor' 'start' &amp;&amp;\
  sh /opt/kde3/share/apps/kdevcvs/buildcvs.sh . '' \
  '/home/devel/mycvsroot'
* cvs [import aborted]: /home/devel/mycvsroot/CVSROOT: No such file or
  directory
* *** Exited with status: 1 ***
</computeroutput
></screen>

<para
>Si ceci se produit, il faut soit configurer manuellement &CVS; (&kdevelop; devra avoir réussi à initialiser vos fichiers de projets à ce moment), soit supprimer le dossier du projet et redémarrer avec <guimenuitem
>Nouveau projet</guimenuitem
> dans le menu <guimenu
>Projet</guimenu
>. </para>
</note>

<para
>Après avoir saisi toutes les informations relatives à &CVS;, cliquez sur le bouton <guibutton
>Suivant &gt;</guibutton
> pour continuer. </para>

<note
><para
>Pour corriger une erreur sur la page <guilabel
>Créer un nouveau projet</guilabel
> précédente, il suffit de cliquer sur le bouton <guibutton
>&lt; Précédent</guibutton
>. Comme l'&appwizard; mémorise vos réglages sur la page actuelle, vous pourrez aisément continuer lorsque vous reviendrez. </para
></note>

</sect2
> <!-- new-projects-start-cvs -->

<sect2 id="new-projects-start-templates">
<title
>Fournir des modèles d'en-têtes / de sources</title>

<para
>La prochaine étape vous amène à une série de pages où vous pouvez configurer des informations courantes que vous souhaitez inclure dans vos fichiers sources et vos fichiers d'en-tête, si la tâche à la main le permet. </para>
<para
>Les modèles d'en-têtes et de sources sont fournis pour les applications C et C++, chacun sur sa propre page. Pour d'autres langages, il ne peut y avoir que des modèles de sources. Et dans certains cas, vous trouverez même cette page de modèles vide. </para>
<para
>Si la page est utilisée, l'&appwizard; remplit quelques commentaires d'en-têtes standard qui, pour une application basée sur du C++, pourrait ressembler à ceci : </para>

<screen
><computeroutput
><literal>
/***************************************************************************
 *   Copyright (C) 2003 by Votre Nom                                       *
 *   vous@vous.com                                                           *
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU General Public License as published by  *
 *   the Free Software Foundation; either version 2 of the License, or     *
 *   (at your option) any later version.                                   *
 *                                                                         *
 *   This program is distributed in the hope that it will be useful,       *
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
 *   GNU General Public License for more details.                          *
 *                                                                         *
 *   You should have received a copy of the GNU General Public License     *
 *   along with this program; if not, write to the                         *
 *   Free Software Foundation, Inc.,                                       *
 *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
 ***************************************************************************/
</literal
></computeroutput
></screen>

<para
>D'autres modèles fournissent des informations similaires dans un format approprié aux définitions du langage de programmation que vous souhaitez utiliser. </para>
<para
>Comme vous l'avez sans doute remarqué, le gestionnaire d'applications a immédiatement saisi les informations que vous avez fournies sur la première page <guilabel
>Général</guilabel
> de la boîte de dialogue <guilabel
>Créer un nouveau projet</guilabel
>, notamment le contenu des champs <guilabel
>Auteur</guilabel
> et <guilabel
>Adresse électronique</guilabel
>. De plus, les informations de licence correctes ont été insérées en fonction de votre choix dans l'onglet <guilabel
>Licence</guilabel
>. </para>

<sect3 id="new-projects-start-templates-edit">
<title
>Comment modifier les modèles</title>

<indexterm zone="new-projects-start-templates-edit">
  <primary
>modèles</primary>
  <secondary
>projet</secondary>
  <tertiary
>modifier</tertiary
></indexterm>
<indexterm zone="new-projects-start-templates-edit">
  <primary
>projet</primary>
  <secondary
>modèles</secondary>
  <tertiary
>modifier</tertiary
></indexterm>

<para
>Les modèles que vous avez configurés dans la boîte de dialogue <guilabel
>Créer un nouveau projet</guilabel
> seront traités ultérieurement chaque fois que vous ordonnez à &kdevelop; de configurer un nouveau source et/ou fichier d'en-tête. Les informations que vous avez fournies ici seront inclues au début sous la forme d'un en-tête de documentation, avant que les parties de code ne commencent. </para>
<para
>Vous n'êtes pas limité au texte pur cependant. &kdevelop; connaît plusieurs variables qui vous permettent d'inclure des informations réelles dans le fichier. L'&appwizard; n'a en fait pas utilisé de telles variables pour insérer les informations d'<guilabel
>Auteur</guilabel
>, d'<guilabel
>Adresse électronique</guilabel
> et de <guilabel
>Licence</guilabel
> dans le texte du modèle initial. </para>

<variablelist>
<varlistentry>
<term
>Inclure des informations sur des fichiers &doxygen;</term>
<listitem>
<para
>Si, par exemple, vous souhaitez que la documentation de l'&API; construite par &doxygen; affiche des informations complémentaires sur le contenu du fichier dans sa liste de noms de fichiers, vous pouvez inclure les lignes suivantes dans le modèle de fichier source : </para>
<screen
><computeroutput>
/**
 * \file $MODULE$.cpp
 * \brief (placer une courte description ici).
 **/
</computeroutput
></screen>
<para
>Chaque fois que vous créez un nouveau fichier source, &kdevelop; remplace la variable <computeroutput
>$MODULE$</computeroutput
> par le corps du nom du fichier récemment créé. Par exemple, si vous avez créé une nouvelle classe C++ nommée <classname
>UnSimpleTest</classname
>, vous verrez les lignes suivantes dans le fichier <filename
>unsimpletest.cpp</filename
> : </para>
<screen
><computeroutput>
/**
 * \file asimpletest.cpp
 * \brief (placer une courte description ici).
 **/
</computeroutput
></screen>
<para
>Vous devrez encore ajouter la courte description après le mot-clé « \brief », mais une partie de ce travail est automatiquement effectuée à votre place. </para>
</listitem>
</varlistentry>

<varlistentry>
<term
>Le fichier texte de la licence</term>
<listitem>
<para
>Comme autre exemple, vous pourriez inclure un conseil explicite au texte de la licence que vous souhaitez employer dans le modèle. Utilisez la variable <computeroutput
>$LICENSEFILE$</computeroutput
> pour ce faire et ajoutez par exemple cette ligne : </para>

<screen
><computeroutput>
//   Voir $LICENSEFILE$ pour le texte complet de la licence.
</computeroutput
></screen>
<para
>L'&appwizard; remplace la variable <computeroutput
>$LICENSEFILE$</computeroutput
> par le nom du fichier dans lequel se trouve la licence complète, à savoir : </para>
<screen
><computeroutput>
//   Voir COPYING pour le texte complet de la licence.
</computeroutput
></screen>
<para
>pour la licence <acronym
>GPL</acronym
> ou </para>
<screen
><computeroutput>
//   Voir LICENSE.BSD pour le texte complet de la licence.
</computeroutput
></screen>
<para
>Si vous avez décidé de placer votre application sous l'égide de la licence <acronym
>BSD</acronym
>. </para>
<para
>&kdevelop; connaît bien sûr d'autres variables. Reportez-vous à la section <link linkend="newfiles-edittemplates"
>Édition des modèles</link
> dans le chapitre <link linkend="editing"
>Édition des outils</link
> pour savoir ce qui est possible. </para>
</listitem>
</varlistentry>
</variablelist>

<note
><para
>Les modèles que vous définissez ici entreront en vigueur uniquement après que l'&appwizard; a créé le nouveau projet. Vous trouverez ces informations au début des fichiers que vous avez créés vous-même dans le processus de développement. Lors de la création des fichiers initiaux, l'&appwizard; utilise quelques modèles standard prédéfinis. Vous devrez adapter manuellement ces fichiers initiaux à vos besoins. </para
></note>

</sect3
> <!-- new-projects-start-templates-edit -->
</sect2
> <!-- new-projects-start-templates -->

<sect2 id="new-projects-start-build">
<title
>Construire les fichiers initiaux du projet</title>

<indexterm zone="new-projects-start-build">
  <primary
>projet</primary>
  <secondary
>nouveau</secondary>
  <tertiary
>construire</tertiary
></indexterm>
<indexterm zone="new-projects-start-build">
  <primary
>projet</primary>
  <secondary
>construction initiale</secondary
></indexterm>

<para
>Presque tout est fait à présent. Sur la dernière page des modèles, le bouton <guibutton
>Suivant &gt;</guibutton
> aura changé pour désormais lire <guibutton
>Terminer</guibutton
>. </para>
<para
><emphasis
>Réfléchissez bien avant de cliquer dessus !</emphasis
> Vous avez encore la possibilité de tout revoir en cliquant à plusieurs reprises sur le bouton <guibutton
>&lt; Précédent</guibutton
>. Comme l'&appwizard; mémorise toutes les informations que vous avez saisies jusqu'ici, il est recommandé de prendre le temps de revenir en arrière encore une fois. Au cas où vous utilisez &CVS; en local, n'oubliez pas de cocher deux fois le nom du <emphasis
>référentiel &CVS;</emphasis
> (il ne devrait pas y avoir déjà de sous-dossier de ce nom dans le dossier racine de &CVS; &mdash; si tel est le cas, essayez un autre nom de référentiel). </para>
<para
>Si jamais vous ne souhaitez pas que le nouveau projet soit construit, interrompez la boîte de dialogue <guilabel
>Créer un nouveau projet</guilabel
> par le bouton <guibutton
>Annuler</guibutton
>. Sinon, cliquez sur <guibutton
>Terminer</guibutton
> et surveillez dans la fenêtre <guilabel
>Messages</guilabel
> la manière dont l'&appwizard; lance le projet. </para>
<para
>Pour utiliser un système de contrôle de versions (&CVS;), il y a deux exécutions en fait. L'&appwizard; construit d'abord les dossiers et les fichiers du projet, puis appelle le programme &CVS; qui redémarre la fenêtre <guilabel
>Messages</guilabel
> avec son propre contenu. Si une erreur quelconque se produit dans l'une de ces exécutions, le processus s'arrête, affichant un message d'erreur approprié dans la fenêtre. </para>

<note
><para
>Dans de nombreux cas, quand votre nouveau projet a été configuré de cette manière, &kdevelop; charge automatiquement le(s) fichier(s) source(s) d'un ou plusieurs modules importants de base, de façon à pouvoir commencer à travailler. (Les modules sources à afficher seront affichés &mdash;s'il y a lieu bien sûr &mdash; tout dépend du modèle initialement sélectionné dans l'&appwizard;.) </para
></note>

<para
>N'oubliez pas de vérifier d'abord ce que l'&appwizard; a fourni. Par exemple,vous pouvez être amené à changer les informations d'en-tête initiales en fonction de vos propres modèles. Vous les trouverez habituellement dans un sous-dossier <filename class="directory"
>modèles</filename
>, dans votre dossier de projet. Quelques opérations de copies simples suffiront le plus souvent. </para>
<para
>Il est ensuite conseillé de <emphasis
>compiler le projet initial</emphasis
> avant de tenter de changer du code. Dans la plupart des cas, cette compilation initiale devrait être possible. Par conséquent, vous pouvez rattraper si le projet a été réellement configuré en fonction de vos besoins. Dans le cas contraire, supprimez simplement le dossier du projet (dans votre racine &CVS; local également si vous en utilisez une) puis redémarrez. </para>

<warning id="defaultbuild-warning"
> <!-- ### remove this when "default" works again -->

  <indexterm zone="defaultbuild-warning">
    <primary
>configuration de la construction par défaut</primary>
    <secondary
>avertissement</secondary
></indexterm>
  <indexterm zone="defaultbuild-warning">
    <primary
>configurations de la construction</primary>
    <secondary
>avertissement de la construction par défaut</secondary
></indexterm>
  <indexterm zone="defaultbuild-warning">
    <primary
>avertissement</primary>
    <secondary
>configuration de la construction par défaut</secondary
></indexterm>

  <para
>Avant de compiler votre nouveau projet pour la première fois, jetez un coup d'œil à <menuchoice
><guimenu
>Projet</guimenu
> <guimenuitem
>Configuration de construction</guimenuitem
></menuchoice
>. S'il y a trois sélections affichées : <guimenuitem
>par défaut</guimenuitem
>, <guimenuitem
>optimisée</guimenuitem
> et <guimenuitem
>débogage</guimenuitem
>, avec <guimenuitem
>débogage</guimenuitem
> sélectionné, collez à celui-ci sans hésiter ou utilisez <guimenuitem
>optimisée</guimenuitem
> à la place. </para>
  <para
>En raison de certaines restrictions dans l'installation actuelle de autoconf/automake, vous ne devez <emphasis
>en aucun cas</emphasis
> compiler dans la configuration <guimenuitem
>par défaut</guimenuitem
>. Cette opération corromprait certains paramètres internes du dossier, amenant <command
>configure</command
> à réagir quand vous essaierez de l'utiliser dans la configuration de construction <guimenuitem
>optimisée</guimenuitem
> ou <guimenuitem
>débogage</guimenuitem
> par la suite. </para>
  <para
>(Ceci ne s'applique qu'à ces capacités de multisélection. Si le type d'application que vous avez choisi prévoit uniquement une configuration de construction <guimenuitem
>par défaut</guimenuitem
>, vous devrez bien sûr utiliser cette dernière.) </para>
</warning>

</sect2
> <!-- new-projects-start-build -->

</sect1
> <!-- new-projects -->

<sect1 id="projects-configure">
<title
>Configurer des projets</title>

<para
>(... à écrire ...)</para>

</sect1>

</chapter
> <!-- applicationwizard -->
