Faire un patch #

Vous avez découvert un bogue ou quelque chose d'autre que vous souhaitez modifier dans Matplotlib .. — excellent !

Vous avez trouvé un moyen de le réparer - encore mieux !

Vous voulez nous en parler - le meilleur de tous!

Le plus simple est de créer un patch ou un ensemble de patchs. Ici, nous expliquons comment. Faire un correctif est le plus simple et le plus rapide, mais si vous allez faire autre chose que de simples choses rapides, veuillez plutôt envisager de suivre le modèle Git pour le développement .

Faire des patchs #

Aperçu #

# tell git who you are
git config --global user.email [email protected]
git config --global user.name "Your Name Comes Here"
# get the repository if you don't have it
git clone https://github.com/matplotlib/matplotlib.git
# make a branch for your patching
cd matplotlib
git branch the-fix-im-thinking-of
git checkout the-fix-im-thinking-of
# hack, hack, hack
# Tell git about any new files you've made
git add somewhere/tests/test_my_bug.py
# commit work in progress as you go
git commit -am 'BF - added tests for Funny bug'
# hack hack, hack
git commit -am 'BF - added fix for Funny bug'
# make the patch files
git format-patch -M -C main

Ensuite, envoyez les fichiers de correctifs générés à la liste de diffusion Matplotlib — où nous vous remercierons chaleureusement.

En détail #

  1. Dites à git qui vous êtes afin qu'il puisse étiqueter les commits que vous avez faits :

    git config --global user.email [email protected]
    git config --global user.name "Your Name Comes Here"
    
  2. Si vous n'en avez pas déjà un, clonez une copie du dépôt Matplotlib :

    git clone https://github.com/matplotlib/matplotlib.git
    cd matplotlib
    
  3. Créez une "branche de fonctionnalité". Ce sera là que vous travaillerez sur votre correction de bogue. C'est agréable et sûr et vous laisse accès à une copie non modifiée du code dans la branche principale :

    git branch the-fix-im-thinking-of
    git checkout the-fix-im-thinking-of
    
  4. Effectuez quelques modifications et validez-les au fur et à mesure :

    # hack, hack, hack
    # Tell git about any new files you've made
    git add somewhere/tests/test_my_bug.py
    # commit work in progress as you go
    git commit -am 'BF - added tests for Funny bug'
    # hack hack, hack
    git commit -am 'BF - added fix for Funny bug'
    

    Notez les -amoptions de commit. Le mdrapeau signale simplement que vous allez taper un message sur la ligne de commande. Le adrapeau - vous pouvez simplement croire en vous - ou voir pourquoi le drapeau -a ? .

  5. Lorsque vous avez terminé, vérifiez que vous avez validé toutes vos modifications :

    git status
    
  6. Enfin, transformez vos commits en patchs. Vous voulez tous les commits depuis que vous avez créé une branche depuis la mainbranche :

    git format-patch -M -C main
    

    Vous aurez maintenant plusieurs fichiers nommés pour les commits :

    0001-BF-added-tests-for-Funny-bug.patch
    0002-BF-added-fix-for-Funny-bug.patch
    

    Envoyez ces fichiers à la liste de diffusion Matplotlib .

Lorsque vous avez terminé, pour revenir à la copie principale du code, revenez simplement à la mainbranche :

git checkout main

Passer du correctif au développement #

Si vous constatez que vous avez fait quelques correctifs et que vous avez une ou plusieurs branches de fonctionnalités, vous souhaiterez probablement passer en mode développement. Vous pouvez le faire avec le référentiel que vous avez.

Forkez le dépôt Matplotlib sur github — Créez votre propre copie (fork) de Matplotlib . Alors:

# checkout and refresh main branch from main repo
git checkout main
git pull origin main
# rename pointer to main repository to 'upstream'
git remote rename origin upstream
# point your repo to default read / write to your fork on github
git remote add origin [email protected]:your-user-name/matplotlib.git
# push up any branches you've made and want to keep
git push origin the-fix-im-thinking-of

Ensuite, vous pouvez, si vous le souhaitez, suivre le workflow de développement .