View a markdown version of this page

Concepts de package - Amazon CodeCatalyst

Amazon n' CodeCatalyst est plus ouvert aux nouveaux clients. Les clients existants peuvent continuer à utiliser le service normalement. Pour de plus amples informations, veuillez consulter Comment effectuer une migration depuis CodeCatalyst.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Concepts de package

Voici quelques concepts et termes à connaître lors de la gestion, de la publication ou de la consommation de packages dans CodeCatalyst.

Colis

Un package est un ensemble qui inclut à la fois le logiciel et les métadonnées nécessaires à l'installation du logiciel et à la résolution des dépendances éventuelles. CodeCatalyst prend en charge le format de package npm.

Un package comprend :

  • Un nom (par exemple, webpack le nom d'un package npm populaire)

  • Un espace de noms facultatif (par exemple, @types dans@types/node)

  • Un ensemble de versions (par exemple,1.0.0,1.0.1,1.0.2)

  • Package-level métadonnées (par exemple, balises npm dist)

Espaces de noms de packages

Certains formats de packages prennent en charge les noms de packages hiérarchiques afin d'organiser les packages en groupes logiques et d'éviter les collisions de noms. Les packages portant le même nom peuvent être stockés dans des espaces de noms différents. Par exemple, npm prend en charge les portées et le package npm @types/node a une portée @types et un nom de. node Il existe de nombreux autres noms de packages dans le @types scope. Dans CodeCatalyst, la portée (« types ») est appelée espace de noms du package, et le nom (« nœud ») est appelé nom du package. Pour les packages Maven, l'espace de noms du package correspond au Maven GroupID. Le package Maven org.apache.logging.log4j:log4j possède un GroupID (espace de noms du package) org.apache.logging.log4j et l'ArtifactId (nom du package). log4j Certains formats de packages tels que Python ne prennent pas en charge les noms hiérarchiques avec un concept similaire à npm scope ou Maven GroupID. Si vous n'avez aucun moyen de regrouper les noms de packages, il peut être plus difficile d'éviter les collisions de noms.

Versions de package

Une version de package identifie la version spécifique d'un package, telle que@types/node@12.6.9. Le format et la sémantique du numéro de version varient selon les formats de package. Par exemple, les versions des packages npm doivent être conformes à la spécification Semantic Versioning. Dans CodeCatalyst, une version de package comprend l'identifiant de version, les métadonnées au niveau de la version du package et un ensemble de ressources.

Assets

Un actif est un fichier individuel stocké dans lequel CodeCatalyst est associé à une version de package, tel qu'un fichier npm ou un .tgz fichier Maven POM ou JAR.

Référentiels de packages

Un référentiel de CodeCatalyst packages contient un ensemble de packages, qui contiennent des versions de packages, chacune correspondant à un ensemble de ressources. Les référentiels de packages sont polyglottes, ce qui signifie qu'un seul référentiel peut contenir des packages de n'importe quel type pris en charge. Chaque référentiel de packages expose des points de terminaison pour récupérer et publier des packages à l'aide d'outils tels que les NuGet CLI (nuget,dotnet), la npm CLI, la CLI Maven (mvn) et les CLI Python (et). pip twine Pour plus d'informations sur les quotas de packages dans CodeCatalyst, y compris le nombre de référentiels de packages pouvant être créés dans chaque espace, consultezQuotas pour les colis.

Vous pouvez lier un référentiel de packages à un autre en le définissant comme un dépôt en amont. Lorsqu'un référentiel est défini comme un référentiel en amont, vous pouvez utiliser n'importe quel package en amont ainsi que tous les référentiels en amont supplémentaires de la chaîne. Pour de plus amples informations, veuillez consulter Référentiels en amont.

Les référentiels Gateway sont un type spécial de référentiel de packages qui extrait et stocke les packages provenant des autorités de packages externes officielles. Pour de plus amples informations, veuillez consulter Référentiels de passerelle.

Référentiels en amont

Vous pouvez l'utiliser CodeCatalyst pour créer une relation en amont entre deux référentiels de packages. Un référentiel de packages est en amont d'un autre lorsque les versions de packages qu'il contient sont accessibles depuis le point de terminaison du référentiel de packages du référentiel en aval. Grâce à une relation en amont, le contenu des deux référentiels de packages est efficacement fusionné du point de vue d'un client.

Par exemple, si un gestionnaire de packages demande une version de package qui n'existe pas dans un référentiel, il CodeCatalyst recherchera la version du package dans les référentiels en amont configurés. Les référentiels en amont sont recherchés dans l'ordre dans lequel ils ont été configurés, et une fois qu'un package est trouvé, la recherche CodeCatalyst s'arrête.

Référentiels de passerelle

Un référentiel de passerelle est un type spécial de référentiel de packages connecté à une autorité de package officielle externe prise en charge. Lorsque vous ajoutez un référentiel de passerelle en tant que référentiel en amont, vous pouvez consommer des packages provenant de l'autorité de package officielle correspondante. Votre référentiel en aval ne communique pas avec le référentiel public, mais tout est intermédiaire par le référentiel passerelle. Les packages consommés de cette manière sont stockés à la fois dans le référentiel de passerelle et dans le référentiel en aval qui a reçu la demande d'origine.

Les référentiels Gateway sont prédéfinis, mais ils doivent être créés dans chaque projet pour être utilisés. La liste suivante contient tous les référentiels de passerelles qui peuvent être créés CodeCatalyst et l'autorité de package à laquelle ils sont connectés.

  • npm-public-registry-gateway fournit des packages npm depuis npmjs.com.

  • maven-central-gateway fournit des packages Maven à partir du référentiel Maven Central.

  • google-android-gateway fournit des packages Maven de Google Android.

  • commonsware-gateway fournit des packages Maven provenant de. CommonsWare

  • gradle-plugins-gateway fournit des packages Maven à partir de Gradle Plugins.

  • nuget-gallery-gateway fournit NuGet des packages depuis la Galerie. NuGet

  • pypi-gateway fournit des packages Python à partir de l'index des packages Python.