

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](migration.md).

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 plans personnalisés
<a name="custom-bp-concepts"></a>

Voici quelques concepts et termes que vous devez connaître lorsque vous travaillez avec des plans personnalisés dans CodeCatalyst.

**Topics**
+ [Projet Blueprint](#blueprint-project-concept)
+ [Plans spatiaux](#space-blueprints-concept)
+ [Catalogue de plans spatiaux](#blueprint-catalog-concept)
+ [Synthèse](#synthesis-concept)
+ [Resynthèse](#resynthesis-concept)
+ [Options partielles](#partial-options-concept)
+ [Projen](#projen-concept)

## Projet Blueprint
<a name="blueprint-project-concept"></a>

Un projet de plan vous permet de développer et de publier des plans dans votre espace. Un référentiel source est créé au cours du processus de création du projet, et le nom du référentiel est celui que vous avez choisi lors de la saisie **des détails des ressources du projet**. Au cours du processus de création du plan, si vous choisissez de générer une version du flux de travail, un flux de publication est créé dans votre plan avec le plan Blueprint **Builder**. Le flux de travail publie automatiquement votre dernière version.

## Plans spatiaux
<a name="space-blueprints-concept"></a>

Vous pouvez consulter et gérer tous les plans depuis le tableau des **plans d'espace** lorsque vous accédez à la section **Plans** de votre espace. Une fois les plans publiés dans votre espace, ils sont disponibles sous forme de plan d'espace à ajouter et à supprimer du catalogue de plans de votre espace. Vous pouvez également gérer les autorisations de publication et supprimer des plans dans la section **Blueprints** de votre espace. Pour de plus amples informations, veuillez consulter [Afficher les détails, les versions et les projets d'un plan personnalisé](view-bp.md).

## Catalogue de plans spatiaux
<a name="blueprint-catalog-concept"></a>

Vous pouvez consulter tous les plans personnalisés ajoutés à partir du catalogue de plans d'un espace. C'est ici qu'un membre de l'espace peut choisir votre plan personnalisé pour créer un nouveau projet. Ce catalogue est différent du CodeCatalyst catalogue, qui contient déjà des plans disponibles pour tous les membres de l'espace. Pour de plus amples informations, veuillez consulter [Création d'un projet complet avec des CodeCatalyst plansCréation d'un projet complet avec des plans](project-blueprints.md).

## Synthèse
<a name="synthesis-concept"></a>

La synthèse est le processus de génération d'un ensemble de CodeCatalyst projets qui représente le code source, la configuration et les ressources d'un projet. Le bundle est ensuite utilisé par les opérations de l'API de CodeCatalyst déploiement pour le déployer dans un projet. Le processus peut être exécuté localement lors du développement de votre plan personnalisé afin d'émuler la création de projets sans avoir à créer un projet dans. CodeCatalyst Les commandes suivantes peuvent être utilisées pour effectuer une synthèse :

```
yarn blueprint:synth             # fast mode
yarn blueprint:synth --cache     # wizard emulation mode
```

Le plan commence par appeler la `blueprint.ts` classe principale avec cette option fusionnée`defaults.json`. Un nouveau bundle de projets est généré sous le `synth/synth.[options-name]/proposed-bundle/` dossier. La sortie inclut l'ensemble de projets généré par un plan personnalisé, compte tenu des options que vous avez définies, y compris les [options partielles](#partial-options-concept) que vous avez peut-être configurées.

## Resynthèse
<a name="resynthesis-concept"></a>

La resynthèse est le processus qui consiste à régénérer un plan avec différentes options de plan ou des versions de plan de projets existants. En tant qu'auteur d'un plan, vous pouvez définir des stratégies de fusion personnalisées dans le code du plan personnalisé. Vous pouvez également définir des limites de propriété dans un `.ownership-file` pour spécifier dans quelles parties de la base de code un plan peut être mis à jour. Bien que le plan personnalisé puisse proposer des mises à jour`.ownership-file`, les développeurs de projets utilisant le plan personnalisé peuvent déterminer les limites de propriété de leurs projets. Vous pouvez exécuter la resynthèse localement, la tester et la mettre à jour avant de publier votre plan personnalisé. Utilisez les commandes suivantes pour effectuer une resynthèse :

```
yarn blueprint:resynth             # fast mode
yarn blueprint:resynth --cache     # wizard emulation mode
```

Le plan commence par appeler la `blueprint.ts` classe principale avec cette option fusionnée`defaults.json`. Un nouveau bundle de projets est généré sous le `synth/resynth.[options-name]/` dossier. La sortie inclut l'ensemble de projets généré par un plan personnalisé, compte tenu des options que vous avez définies, y compris les [options partielles](#partial-options-concept) que vous avez peut-être configurées.

Les contenus suivants sont créés après les processus de synthèse et de resynthèse :
+ **proposed-bundle** - Le résultat de la synthèse lorsqu'elle est exécutée avec de nouvelles options pour la version du plan cible.
+ **existing-bundle** - Une maquette de votre projet existant. S'il n'y a rien dans ce dossier, il est généré avec le même résultat que lui`proposed-bundle`.
+ **ancestors -bundle** - Une maquette de ce que votre plan générerait s'il était exécuté avec une version antérieure, des options antérieures ou une combinaison des deux. S'il n'y a rien dans ce dossier, il est généré avec le même résultat que le`proposed-bundle`.
+ **resolved-bundle** - Le bundle est toujours régénéré et utilise par défaut une fusion à trois voies entre le, et le. `proposed-bundle` `existing-bundle` `ancestor-bundle` Ce bundle fournit une émulation de ce qu'une resynthèse produirait localement.

Pour en savoir plus sur les ensembles de sortie Blueprint, consultez. [Génération de fichiers par resynthèse](merge-strategies-lm.md#three-way-merge-lm)

## Options partielles
<a name="partial-options-concept"></a>

Vous pouvez ajouter des variantes d'`src/wizard-configuration/`options sans avoir à énumérer l'intégralité de l'`Options`interface, et les options sont fusionnées en haut du `defaults.json` fichier. Cela vous permet d'adapter les scénarios de test à des options particulières.

**Exemple :**

`Options`interface :

```
{
  language: "Python" | "Java" | "Typescript",
  repositoryName: string
  ...
}
```

Fichier `defaults.json` :

```
{
  language: "Python",
  repositoryName: "Myrepo"
  ...
}
```

Tests de configuration supplémentaires :
+ 

  ```
  #wizard-config-typescript-test.json
  {
    language: "Typescript",
  }
  ```
+ 

  ```
  #wizard-config-java-test.json
  {
    language: "Java",
  }
  ```

## Projen
<a name="projen-concept"></a>

Projen est un outil open source que les plans personnalisés utilisent pour rester à jour et cohérents. Les plans sont fournis sous forme de packages Projen, car ce framework vous permet de créer, de regrouper et de publier des projets, et vous pouvez utiliser l'interface pour gérer les configurations et les paramètres d'un projet.

Vous pouvez utiliser Projen pour mettre à jour les plans à grande échelle, même après leur création. L'outil Projen est la technologie sous-jacente à la synthèse du plan qui génère un ensemble de projets. Projen est propriétaire de la configuration d'un projet, et cela ne devrait pas avoir d'impact sur vous en tant qu'auteur du plan. Vous pouvez exécuter `yarn projen` pour régénérer la configuration de votre projet après avoir ajouté des dépendances, ou vous pouvez modifier les options du `projenrc.ts` fichier. Projen est également l'outil de génération sous-jacent pour les plans personnalisés afin de synthétiser un projet. Pour plus d'informations, consultez la [ GitHub page du projet](https://github.com/projen/projen). Pour en savoir plus sur l'utilisation de Projen, consultez la documentation de [Projen](http://projen.io/).