Piste de sortie

Qu’est-ce qu’une piste ?

Bloom demande à l’utilisateur d’entrer des informations de configuration lors de la première publication de packages. Il est avantageux de stocker ces configurations dans le référentiel de version afin que nous n’ayons pas à entrer manuellement des configurations qui ne changeront pas pour les versions ultérieures.

Étant donné que certaines configurations différeront lors de la publication du package pour différentes distributions ROS, bloom utilise des pistes de publication pour stocker les configurations à publier par distribution. Par convention, vous devez créer des pistes avec le même nom que la distribution ROS pour laquelle vous publiez.

Toutes les configurations de piste de version sont stockées dans tracks.yaml sur la branche principale de votre référentiel de version.

Configurations de piste

Les configurations de piste sont expliquées plus en détail avec les invites de bloom.

URL du référentiel de versions

Il s’agit de l’URL de votre référentiel de version et doit être de la forme https://github.com/ros2-gbp/my_repo-release.git si votre référentiel de version est hébergé sur ros2-gbp.

No reasonable default release repository url could be determined from previous releases.
Release repository url [press enter to abort]:

Collez l’URL de votre référentiel de versions et appuyez sur Entrée.

Bloom peut également vous demander d’initialiser le nouveau référentiel, comme suit :

Freshly initialized git repository detected.
An initial empty commit is going to be made.
Continue [Y/n]?

Appuyez simplement sur Entrée pour accepter la valeur par défaut de oui.

Nom du référentiel

Le nom du référentiel est trivial, mais il est recommandé de le définir sur le nom de votre projet.

Repository Name:
   upstream
      Default value, leave this as upstream if you are unsure
   <name>
      Name of the repository (used in the archive name)
   ['upstream']:

Tapez le nom de votre projet (par exemple, my_project) et appuyez sur Entrée.

URI du référentiel en amont

Le dépôt en amont est le dépôt où se trouve votre code source. Il s’agit très probablement d’un lien https vers votre projet hébergé sur un service d’hébergement git tel que GitHub ou GitLab.

Upstream Repository URI:
   <uri>
      Any valid URI. This variable can be templated, for example an svn url
      can be templated as such: "https://svn.foo.com/foo/tags/foo-:{version}"
      where the :{version} token will be replaced with the version for this release.
   [None]:

Assurez-vous d”utiliser l’adresse https (par exemple, https://github.com/my_organization/my_repo.git) et non l’adresse ssh.

Type de VCS en amont

Il s’agit du type de système de contrôle de version (VCS) de l”Upstream Repository URI. Vous devez spécifier le type de vcs que votre référentiel utilise, parmi svn, git, hg ou tar.

Upstream VCS Type:
   svn
      Upstream URI is a svn repository
   git
      Upstream URI is a git repository
   hg
      Upstream URI is a hg repository
   tar
      Upstream URI is a tarball
   ['git']:

La plupart des référentiels utiliseront git, mais certains référentiels hérités pourraient utiliser hg ou svn.

Version

Il s’agit de la version du package que vous publiez. (ex. 1.0.3)

Version:
   :{ask}
      This means that the user will be prompted for the version each release.
      This also means that the upstream devel will be ignored.
   :{auto}
      This means the version will be guessed from the devel branch.
      This means that the devel branch must be set, the devel branch must exist,
      and there must be a valid package.xml in the upstream devel branch.
   <version>
      This will be the version used.
      It must be updated for each new upstream version.
   [':{auto}']:

Définir ceci sur :{auto} (la configuration par défaut et recommandée) déterminera automatiquement la version à partir du fichier package.xml de la branche de développement.

Définir ceci sur :{ask} fera apparaître une invite demandant la version chaque fois que vous exécutez une version avec bloom.

Étiquette de version

La balise de version fait référence à la balise ou à la branche à partir de laquelle vous souhaitez importer le code.

Release Tag:
   :{version}
      This means that the release tag will match the :{version} tag.
      This can be further templated, for example: "foo-:{version}" or "v:{version}"

      This can describe any vcs reference. For git that means {tag, branch, hash},
      for hg that means {tag, branch, hash}, for svn that means a revision number.
      For tar this value doubles as the sub directory (if the repository is
      in foo/ of the tar ball, putting foo here will cause the contents of
      foo/ to be imported to upstream instead of foo itself).
   :{ask}
      This means the user will be prompted for the release tag on each release.
   :{none}
      For svn and tar only you can set the release tag to :{none}, so that
      it is ignored.  For svn this means no revision number is used.
   [':{version}']:

Définir ceci sur :{version} (la configuration par défaut et recommandée) fera correspondre la balise de version à la balise de version.

Une configuration moins courante consiste à définir ceci sur un nom de branche pour toujours extraire cette branche au moment de la publication du projet en amont.

Alternativement, si vous souhaitez être invité à saisir une balise différente à chaque fois que vous effectuez une publication, saisissez :{ask}. :{ask} est utile si le projet en amont a de fréquentes versions étiquetées et que vous souhaitez vous référer à la nouvelle étiquette à chaque fois que vous publiez.

Branche de développement en amont

La branche de développement en amont est le nom de la branche dans votre dépôt en amont. Si vous utilisez des branches distinctes pour chaque distribution ROS, ce champ sera différent pour chaque piste de version. Il est utilisé pour déterminer la version du package que vous publiez lorsque Version est défini sur :{auto}.

Upstream Devel Branch:
   <vcs reference>
      Branch in upstream repository on which to search for the version.
      This is used only when version is set to ':{auto}'.
   [None]:

Pour libérer d’une branche appelée rolling, entrez rolling. Laisser ceci sur None entraînerait la détermination de la version à partir de la branche par défaut de votre référentiel (ce n’est pas recommandé).

Distribution ROS

Il s’agit de la distribution dans laquelle vous prévoyez de publier le paquet.

ROS Distro:
   <ROS distro>
      This can be any valid ROS distro, e.g. indigo, kinetic, lunar, melodic
   ['indigo']:

Si vous envisagez de publier dans ROS Rolling, entrez rolling.

Répertoire des correctifs

Il s’agit du répertoire où se trouvent tous les correctifs supplémentaires aux versions.

Patches Directory:
   <path in bloom branch>
      This can be any valid relative path in the bloom branch. The contents
      of this folder will be overlaid onto the upstream branch after each
      import-upstream.  Additionally, any package.xml files found in the
      overlay will have the :{version} string replaced with the current
      version being released.
   :{none}
      Use this if you want to disable overlaying of files.
   [None]:

L’ajout de correctifs supplémentaires à une version est une fonctionnalité rarement utilisée. Pour presque tous les packages, cela devrait être laissé par défaut None.

Publier l’URL push du référentiel

Release Repository Push URL:
   :{none}
      This indicates that the default release url should be used.
   <url>
      (optional) Used when pushing to remote release repositories. This is only
      needed when the release uri which is in the rosdistro file is not writable.
      This is useful, for example, when a releaser would like to use a ssh url
      to push rather than a https:// url.
   [None]:

Peut être laissé par défaut dans la plupart des cas.