Envoyer les modifications du code

Cette page décrit la procédure complète d'envoi d'une modification de code au Projet Open Source (AOSP), y compris comment demander un examen et suivre vos modifications.

AOSP s'appuie sur Gerrit, un système de revue de code Web pour les projets qui utilisent Git.

Signer les contrats de licence des contributeurs

Avant d'apporter des modifications de code pour AOSP, vous devez lire Contrats de licence et en-têtes du contributeur et signez l'un des accords suivants:

Démarrer une branche

Pour chaque modification de code que vous souhaitez apporter, procédez comme suit:

  1. Démarrez une nouvelle branche dans le dépôt Git correspondant. Une branche n'est pas une copie des fichiers d'origine ; il s'agit d'un pointeur vers un commit spécifique, la création de branches locales et le passage de l'une à l'autre en une opération légère. Par à l'aide de branches, vous pouvez identifier les changements les uns des autres. Exécutez cette commande pour commencez une branche:

    repo start BRANCH_NAME
    

    Vous pouvez démarrer plusieurs branches indépendantes simultanément un dépôt de clés. La branche BRANCH_NAME se trouve localement dans votre et n'est pas inclus sur Gerrit ni dans l'arborescence source finale. Les branches sont également spécifiques au projet dans lequel vous vous trouvez. Par conséquent, si vous devez modifier fichiers de différents projets pour une même modification, vous avez besoin d'une branche dans chaque projet où vous modifiez des fichiers.

  2. (Facultatif) Vérifiez que la branche a été créée:

    repo status .
    

    La branche que vous venez de créer doit s'afficher. Exemple :

    project frameworks/native/                      branch mynewbranch
    

Effectuez et testez votre modification

Pour effectuer et tester votre modification, procédez comme suit:

  1. Pour vous assurer de travailler avec le codebase le plus récent, effectuez une synchronisation de tout le codebase:

    repo sync
    

    Si vous rencontrez des conflits lors de la synchronisation, reportez-vous aux étapes 2 à 4 de Résoudre les conflits de synchronisation

  2. Recherchez le code à modifier. Pour trouver du code, pensez à utiliser Recherche de code Android Vous pouvez utiliser Android Google Recherche de code pour afficher le code source AOSP tel qu'il est présenté lorsque vous utilisez Pour en savoir plus, consultez Premiers pas avec Google Recherche de code Pour afficher tout le code de la branche main dans la recherche de code Android, procédez comme suit : accéder à https://cs.android.com/android/platform/superproject/main

  3. Modifiez ou ajoutez des fichiers sources. Pour toute modification apportée:

  4. Développez Android.

  5. Testez votre build.

Préparer et valider votre modification

Un commit est l'unité de base du contrôle des révisions dans Git. Il se compose d'un instantané de la structure du répertoire et du contenu des fichiers pour l'ensemble du projet. Pour valider votre modification, procédez comme suit:

  1. Par défaut, Git enregistre les modifications que vous apportez, mais ne les suit pas. À pour demander à Git de suivre vos modifications, vous devez les marquer ou les préparer une inclusion dans un commit. Exécutez la commande suivante pour préparer la modification:

    git add -A
    

    Cette commande permet de suivre les modifications que vous avez apportées aux fichiers.

  2. Prenez les fichiers dans la zone de préproduction, et validez-les ou stockez-les en local base de données:

    git commit -s
    

    Par défaut, un éditeur de texte s'ouvre et vous êtes invité à fournir une de commit.

  3. Fournissez un message de commit au format suivant:

    • Ligne 1: titre Fournissez un résumé d’une ligne de la modification (50 caractères maximum). Pensez à utiliser des préfixes pour décrire la zone que vous avez modifiée, suivis par une description de la modification que vous avez apportée dans ce commit, comme ceci : Exemple contenant un changement d'interface utilisateur:

      ui: Removes deprecated widget
      
    • Ligne 2: ligne vide. Faites suivre le titre avec une ligne vide.

    • Ligne 3: Corps. Fournissez une longue description en dur en 72 caractères maximum. Décrivez quel problème le changement résout et comment. Bien que le corps facultatif, il est utile pour d’autres personnes qui ont besoin de se référer au changement. Veillez à inclure une brève note de toutes les hypothèses ou informations générales qui peuvent être importantes lorsqu'un autre contributeur travaille sur cette fonctionnalité.

    Pour lire un blog sur les bonnes descriptions de commit (avec des exemples), consultez Comment écrire un message de commit Git.

  4. Enregistrez le commit.

Un identifiant de modification unique, ainsi que votre nom et votre adresse e-mail, qui ont été fournies pendant repo init, sont automatiquement ajoutées à votre message de commit.

Importer la modification pour examen

Après avoir validé votre modification dans votre historique Git personnel, importez-la dans Gerrit:

  1. Exécutez la commande suivante pour importer tous vos commits dans tous projets:

    repo upload
    

    Toutes les modifications apportées à l'ensemble des projets sont incluses dans l'importation.

    Vous êtes invité à exécuter des scripts de hook.

  2. Appuyez sur a, puis sur Entrée.

    Vous êtes invité à approuver l'importation:

    Upload project frameworks/native/ to remote branch main:
    branch BRANCH_NAME ( 1 commit, Wed Aug 7 09:32:33 2019 -0700):
           ff46b36d android codelab change
    to https://android-review.googlesource.com/ (y/N)?
    
  3. Appuyez sur y, puis sur Entrée pour approuver l'importation.

Vous devriez recevoir un message semblable à remote: SUCCESS.

Demander un examen

Après une importation réussie, Repo vous fournit un lien vers les modifications que vous avez apportées dans Gerrit. Cliquez sur le lien pour afficher vos modifications sur le serveur d'examen, ajouter des commentaires, ou demander des réviseurs spécifiques pour votre modification. Toutes les modifications apportées au code doivent par les propriétaires de code appropriés. Pour demander un examen:

  1. Dans Gerrit, cliquez sur SUGGEST OWNERS (SUGGÉRER DES PROPRIÉTAIRES) :

    Suggérer un lien de propriétaire dans Gerrit

    Figure 1 : Suggérer un lien de propriétaire dans Gerrit.

    La boîte de dialogue de l'examinateur s'affiche. Cette boîte de dialogue contient la liste des propriétaires de code peut examiner votre modification.

  2. Cliquez sur un propriétaire du code pour l'ajouter à votre avis.

    Le bouton ENVOYER est activé.

  3. (Facultatif) Saisissez l'adresse e-mail de la personne à qui vous souhaitez envoyer la demande de validation. le changement.

  4. (Facultatif) Cliquez sur +1 à côté de "Envoi automatique" pour envoyer automatiquement la modification. une fois que vous avez reçu les approbations. Si vous ne cliquez pas sur ce bouton, un employé Google doit envoyer la modification pour vous.

  5. Cliquez sur ENVOYER pour envoyer la modification pour examen.

Les propriétaires de code examinent les modifications apportées à votre code et vous envoient des commentaires pour de résoudre ou d'approuver les modifications.

Déterminer l'état d'une modification

Pour déterminer l'état des fichiers concernés par votre modification, vérifiez les à côté des fichiers dans la modification:

  • (coche) icône): approuvée par le propriétaire du code
  • (icône en forme de croix): Non approuvé par le propriétaire du code
  • (horloge) icône): en attente d'approbation par le propriétaire du code

La figure suivante montre les icônes d'état appliquées aux fichiers lors d'une modification:

Exemple de fichiers avec des icônes montrant l'approbation du propriétaire du code

Figure 2. Exemple de fichiers avec des icônes indiquant l'approbation du propriétaire du code

Résoudre les commentaires et importer une modification de remplacement

Si un réviseur demande à modifier votre mise à jour, vous peut modifier votre commit dans Git, ce qui entraîne un nouveau correctifset sur le même le changement.

Pour traiter les commentaires et modifier votre modification:

  1. Suivez les étapes 2 à 4 de la section Effectuer et tester votre modification.

  2. Exécutez les commandes suivantes pour modifier votre modification:

    git add -A
    git commit --amend
    
  3. Importez votre modification.

Lorsque vous importez la modification modifiée, celle-ci remplace la version originale sur Gerrit et dans votre historique Git local.

Résoudre les conflits de synchronisation

Si d'autres modifications sont apportées à l'arborescence source qui entrent en conflit avec le vôtre, vous recevez un message indiquant que vous avez des conflits. Pour résoudre les conflits:

  1. Assurez-vous d'utiliser le code le plus récent:

    repo sync .
    

    La commande repo sync récupère les mises à jour du serveur source, puis tente de rebaser automatiquement votre HEAD sur le nouveau HEAD distant.

  2. Si la rebase automatique échoue, effectuez une rebase manuelle:

    repo rebase .
    
  3. Résoudre les conflits de fusion. Si vous n'avez pas de méthode préférée pour résoudre des conflits de fusion, vous pouvez utiliser git mergetool pour résoudre manuellement les conflits entre les fichiers.

  4. Une fois les fichiers en conflit corrigés, exécutez cette commande pour : appliquer les nouveaux commits:

    git rebase --continue
    

Envoyer la modification

Une fois que votre envoi est passé par les processus d'examen et de validation, un examinateur Google doit envoyer le code à votre place. Autre les utilisateurs peuvent exécuter repo sync pour récupérer la mise à jour dans leur environnement clients.

Une fois votre envoi fusionné, vous pouvez consulter le Intégration continue Android pour surveiller l'intégration de vos envois dans l'arborescence.