Fazendo um patch #

Você descobriu um bug ou algo mais que deseja alterar no Matplotlib .. — excelente!

Você descobriu uma maneira de corrigi-lo - ainda melhor!

Você quer nos contar sobre isso - o melhor de tudo!

A maneira mais fácil é fazer um patch ou um conjunto de patches. Aqui explicamos como. Fazer um patch é o mais simples e rápido, mas se você for fazer algo mais do que coisas simples e rápidas, considere seguir o modelo de desenvolvimento do Git .

Fazendo correções #

Visão geral #

# 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

Em seguida, envie os arquivos de patch gerados para a lista de discussão do Matplotlib - onde agradeceremos calorosamente.

Em detalhe #

  1. Diga ao git quem você é para que ele possa rotular os commits que você fez:

    git config --global user.email [email protected]
    git config --global user.name "Your Name Comes Here"
    
  2. Se você ainda não tiver um, clone uma cópia do repositório Matplotlib :

    git clone https://github.com/matplotlib/matplotlib.git
    cd matplotlib
    
  3. Faça uma 'ramificação de recursos'. Este será o local onde você trabalhará na correção do bug. É bom e seguro e deixa você com acesso a uma cópia não modificada do código no ramo principal:

    git branch the-fix-im-thinking-of
    git checkout the-fix-im-thinking-of
    
  4. Faça algumas edições e confirme-as à medida que avança:

    # 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'
    

    Observe as -amopções para commit. O msinalizador apenas sinaliza que você digitará uma mensagem na linha de comando. A abandeira - você pode simplesmente acreditar - ou ver por que a bandeira -a? .

  5. Quando terminar, verifique se você confirmou todas as suas alterações:

    git status
    
  6. Por fim, transforme seus commits em patches. Você quer todos os commits desde que ramificou a partir do mainbranch:

    git format-patch -M -C main
    

    Agora você terá vários arquivos nomeados para os commits:

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

    Envie esses arquivos para a lista de discussão do Matplotlib .

Quando terminar, para voltar à cópia principal do código, basta retornar à mainramificação:

git checkout main

Passando do patch para o desenvolvimento #

Se você achar que fez alguns patches e possui um ou mais branches de recursos, provavelmente desejará alternar para o modo de desenvolvimento. Você pode fazer isso com o repositório que você tem.

Bifurque o repositório Matplotlib no github — Fazendo sua própria cópia (bifurcação) do Matplotlib . Então:

# 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

Então você pode, se quiser, seguir o workflow de Desenvolvimento .