1. Uma Contribuição Passo a Passo¶
Nota
Embora a Documentação-QGIS seja usada para demonstrar os processos, todos os comandos e passos mostrados abaixo também se aplicam ao QGIS-Website.
Se você está lendo essas linhas, certamente é porque você está desejano contribuir com a redação da documentação do QGIS e está buscando saber como fazê-lo. Você veio ao lugar certo! O presente documento irá guiar você através dos diferentes caminhos para atingir este objetivo, mostrando a você os passos principais a seguir, os truques que você pode usar e as armadilhas que você deve saber a respeito.
Para qualquer ajuda, não hesite em perguntar através de um comentário no relatório de problema que você está tentando consertar ou escrever à lista da comunidade e time do QGIS <https://lists.osgeo.org/mailman/listinfo/qgis-community-team>`_. Mais detalhes em Participe da Documentação.
Vamos agora mergulhar no processo.
As fontes da documentação são armazenadas usando o sistema de controle de versões git e estão disponíveis no GitHub em https://github.com/qgis/QGIS-Documentation. Há dois modos principais, não mutuamente exclusivos, de modificar esses arquivos:
1.1. Usando a interface web do GitHub¶
A interface web GitHub permite você fazer o seguinte:
editar arquivos
Pré-visualize e envie suas mudanças
faça uma solicitação para ter suas mudanças inseridas no repositório principal
criar, atualizar ou deletar partes
Se você ainda não está familiarizado com o vocabulário do git e do GitHub, talvez você queira ler o projeto do GitHub Hello-world para aprender um vocabulário básico e ações que serão usadas abaixo.
Nota
Se você estiver consertando um problema relatado
Se você está fazendo mudanças para consertar um problema <https://github.com/qgis/QGIS- Documentation/issues>`_, adicione um comentário para o relatório do problema para assigná-lo a você. Isso irá evitar que mais de uma pessoa trabalhe no mesmo problema.
1.1.1. 1. Fork Documentação-QGIS¶
Assuming you already have a GitHub account, you first need to fork the source files of the documentation.
Navegue pela página QGIS-Documentation repository e clique no botão no canto superior direito.
Na sua conta GitHub você encontrará o repositório da Documentação-QGIS (https://github.com/<YourName>/QGIS-Documentation
). Este repositório é uma cópia do repositório de Documentação-QGIS oficial onde você tem acesso completo de gravação e você pode fazer mudanças sem afetar a documentação oficial.
1.1.2. 2. Faça mudanças¶
Há diferentes formas de contribuir para a documentação do QGIS. Nós mostramos elas separadamente abaixo, mas você pode alternar entre um processo e outro sem nenhum problema.
1.1.2.1. Alternative 1: Use the Edit on GitHub
shortcut¶
Pages on the QGIS documentation website can be edited quickly and easily by clicking on the
Edit on GitHub
link at the top right of each page.
Isso abrirá o arquivo no ramo
qgis:master
com uma mensagem no topo da página dizendo a você que você não tem acesso para escrever neste repositório e que suas mudanças serão aplicadas a uma novo ramo do seu repositório.Faça suas mudanças. Uma vez que a documentação é escrita usando a sintaxe reStructureText, dependendo das suas mudanças, talvez você precise se basear em writing guidelines.
When you finish, make a short comment about your changes and click on Propose changes. This will generate a new branch (
patch-xxx
) in your repository.After you click on Propose changes, github will navigate to the Comparing changes page.
Se você terminou de fazer mudanças, salte para Compare changes na seção Share your changes via Pull Request abaixo.
Se há mudanças adicionais que você queira fazer antes de enviá-las ao QGIS, siga os seguintes passos:
Navigue até seu fork de QGIS-Documentation (
https://github.com/<YourName>/QGIS-Documentation
)Clique em e procure pelo branch
patch-xxx
. Selecione esta correção de branch. O botão agora vai dizer Branch: patch-xxxVá para Modify files abaixo.
Nota
The Edit on GitHub
shortcut is also available in the drop-down
menu at the bottom of the left sidebar.
1.1.2.2. Alternativa 2: Crie um ramo ad hoc no seu repositório de documentação¶
Você pode editar arquivos diretamente do seu fork da Documentação QGIS .
Clique em no canto superior esquerdo do seu repositório bifurcado do QGIS- Documentation e digite um nome exclusivo no campo de texto para criar um novo branch. O nome do novo branch deve estar relacionado ao problema que você pretende corrigir. O botão agora deve dizer Branch: branch_name
Dica
Faça suas alterações em um ad hoc branch, nunca no master
branch
Por convenção, evite fazer mudanças no seu ramo master
exceto quando você mescla as modificações do ramo master
do qgis/QGIS-Documentation
na sua cópia do repositório da Documentação-QGIS. Ramos separados permitem que você trabalhe em múltiplos problemas ao mesmo tempo sem interferir em outros ramos. Se você cometer um erro você sempre poderá deletar um ramo e começar novamente criando um novo ramo a partir do ramo principal.
1.1.3. 3. Modifique arquivos¶
Navegue pelos arquivos de origem do seu fork do QGIS-Documentation até o arquivo que precisa ser modificado
Faça suas modificações seguinte writing guidelines
Quando você terminar, navegue para o quadro Enviar Alterações na parte inferior da página, faça um comentário curto sobre suas mudanças e clique em Commit Changes para enviar suas alterações direto para o seu ramo. Assegure-se de que Commit directly to the branch_name branch. está selecionado.
Repita os passos anteriores para qualquer outro arquivo que necessita ser atualizado para corrigir o problema
1.1.5. 5. Delete seu ramo mesclado¶
Você pode deletar seu ramo após suas mudanças serem mescladas. Deletar ramos velhos evita que você tenha ramos inúteis e desatualizados no seu repositório.
1.2. Usando as ferramentas de linha de comando Git¶
A interface da web do GitHub é uma maneira fácil de atualizar o repositório de documentação do QGIS com suas contribuições, mas não oferece ferramentas para:
group your commits and clean your change history
conserte possíveis conflitos com o repositório principal
construa a documentação para testar suas mudanças
Você precisa instalar git no seu disco rígido para ter acesso a ferramentas mais avançadas e poderosas e ter uma cópia local do repositório. Algumas ferramentas básicas que você pode precisar com frequência estão mostrados abaixo. Você também terá regras importantes para respeitar, mesmo se optar pela interface da web.
Nos exemplos de código abaixo, as linhas que começam com $
mostram comandos que você deve digitar enquanto #
são comentários.
1.2.1. Repositório local¶
Agora você está pronto para obter um clone local do seu repositório da Documentação QGIS.
Você pode clonar seu repositório QGIS usando o URL da web da seguinte maneira:
# move to the folder in which you intend to store the local repository
$ cd ~/Documents/Development/QGIS/
$ git clone https://github.com/<YourName>/QGIS-Documentation.git
A linha de comando anterior é apenas um exemplo. Você deve adaptar o caminho e a URL do repositório, substituindo <YourName>
pelo seu nome de usuário.
Verifique o seguinte:
# Enter the local repository
$ cd ./QGIS-Documentation
$ git remote -v
origin https://github.com/<YourName>/QGIS-Documentation.git (fetch)
origin https://github.com/<YourName>/QGIS-Documentation.git (push)
$ git branch
* master
origin é o nome do repositório remoto do seu repositório QGIS-Documentation.
master é o default main branch. Você nunca deve usá-lo para contribuir! Nunca!
Alternatively you can clone your QGIS repository using the SSH protocol:
# move to the folder in which you intend to store the local repository
$ cd ~/Documents/Development/QGIS/
$ git clone git@github.com:<YourName>/QGIS-Documentation.git
Dica
Permission denied (publickey) error?
Se você receber um erro de permissão negada (chave pública) com o comando anterior, pode haver um problema com sua chave SSH. Consulte Ajuda do GitHub para mais detalhes.
Verifique o seguinte se você usou o protocolo SSH:
# Enter the local repository
$ cd ./QGIS-Documentation
$ git remote -v
origin git@github.com:<YourName>/QGIS-Documentation.git (fetch)
origin git@github.com:<YourName>/QGIS-Documentation.git (push)
$ git branch
* master
You can start to work here but in the long term process you will get a lot of issues when you will push your contribution (called Pull Request in github process) as the master branch of the qgis/QGIS-Documentation repository will diverge from your local/remote repository. You then need to keep track of the main remote repository and work with branches.
1.2.2. Adicione um outro repositório remoto¶
Para poder acompanhar o trabalho no projeto principal, adicione um novo repositório remoto no seu repositório local. Este novo repositório remoto é o repositório Documentação QGIS do projeto QGIS:
$ git remote add upstream https://github.com/qgis/QGIS-Documentation.git
$ git remote -v
origin https://github.com/<YourName>/QGIS-Documentation.git (fetch)
origin https://github.com/<YourName>/QGIS-Documentation.git (push)
upstream https://github.com/qgis/QGIS-Documentation.git (fetch)
upstream https://github.com/qgis/QGIS-Documentation.git (push)
Da mesma forma, você pode usar o protocolo SSH para adicionar um repositório remoto ao seu repositório local:
$ git remote add upstream git@github.com:qgis/QGIS-Documentation.git
$ git remote -v
origin git@github.com:<YourName>/QGIS-Documentation.git (fetch)
origin git@github.com:<YourName>/QGIS-Documentation.git (push)
upstream git@github.com:qgis/QGIS-Documentation.git (fetch)
upstream git@github.com:qgis/QGIS-Documentation.git (push)
Agora você tem a escolha entre dois repositórios remotos:
origin para colocar seu branch local em seu repositório remoto
upstream to merge (if you have right to do so) your contribution to the official one OR to update your master branch of local repository from the master branch of the official repository.
Nota
upstream é apenas um rótulo, um tipo de nome padrão, mas você pode chamá-lo como quiser.
1.2.3. Atualize sua ramificação base¶
Antes de trabalhar em uma nova contribuição, você sempre deve atualizar seu branch principal em seu repositório local. Supondo que você esteja disposto a enviar alterações à documentação de teste, execute as seguintes linhas de comando:
# switch to master branch (it is easy to forget this step!)
$ git checkout master
# get "information" from the master branch in the upstream repository
# (aka qgis/QGIS-Documentation's repository)
$ git fetch upstream master
# merge update from upstream/master to the current local branch
# (which should be master, see step 1)
$ git merge upstream/master
# update **your** remote repository (aka <YourName>/QGIS-Documentation)
$ git push origin master
Agora você tem seus repositórios locais e remotos que têm seu master
branch atualizado com o master
branch oficial da Documentação QGIS. Você pode começar a trabalhar em sua contribuição.
Nota
Mude o branch se desejar contribuir para o documento lançado
Along with the testing documentation, we continue to fix issues in the
latest release, meaning
that you can also contribute to it. Follow the previous section sample code,
replacing master
with the corresponding branch of the latest documentation.
1.2.4. Contribua para o seu branch de produção¶
Now that your base branch is updated, you need to create a dedicated branch in which you add your contribution. Always work on a branch other than the base branch! Always!
# Create a new branch
$ git checkout -b myNewBranch
# checkout means go to the branch
# and -b flag creates a new branch if needed, based on current branch
# Let's check the list of existing branches (* indicates the current branch)
$ git branch
master
release_2.18
...
* myNewBranch
# You can now add your contribution, by editing the concerned file(s)
# with any application (in this case, vim is used)
$ vim myFile
# once done
$ git add myFile
$ git commit
Algumas palavras sobre os comandos commit/push:
Tente commit apenas uma contribuição (alteração atômica), ou seja, resolver apenas um problema
tente explicar com cuidado o que você muda no título do seu commit e na descrição. A primeira linha é um título e deve começar por uma letra maiúscula e ter 80 caracteres, não termina com um
.
. Seja conciso. Sua descrição pode ser mais longa, terminar com um.
e você poderá fornecer muito mais detalhes.use um
#
com um número para se referir a um problema. Marque o item comCorrigir
se você corrigir o ticket: seu commit fechará o ticket.
Agora que suas alterações foram salvas e commited no seu local branch, você precisa enviá-las ao seu repositório remoto para criar uma pull request:
$ git push origin myNewBranch
1.2.6. Limpe seu repositório local e remoto¶
After your PR has been merged into the official QGIS-Documentation, you can delete your branch. If you work a lot this way, in few weeks you will get a lot of unuseful branches. So keep your repository clean this way:
# delete local branch
$ git branch -d myNewBranch
# Remove your remote myNewBranch by pushing nothing to it
$ git push origin :myNewBranch
E não se esqueça de atualizar o branch master
no seu repositório local!
1.3. Leituras adicionais¶
Além da interface da web do Github e das ferramentas de linha de comando git mostradas acima, também existem aplicativos da GUI que você pode usar para criar e gerenciar suas contribuições para a documentação.
Quando as alterações na pull request apresentam conflito com as alterações recentes enviadas para o branch de destino, os conflitos precisam ser resolvidos antes que a mescla seja possível:
se o conflito estiver relacionado a poucas linhas concorrentes, um botão :guilabel:`Resolv conflicts’ está disponível na página de pull request do Github. Pressione o botão e resolva o problema, conforme explicado em https://help.github.com/articles/resolving-a-merge-conflict-on-github/
se o conflito envolver substituição de nome ou remoção de arquivos, você precisará resolvê-lo usando as linhas de comando git. Normalmente, você deve primeiro refazer sua ramificação sobre a ramificação de destino usando a chamada
git rebase targetBranch
e corrigir os conflitos relatados. Leia mais em https://help.github.com/articles/resolving-a-merge-conflict-using-the-command-line/
Às vezes, no final do processo de revisão, você pode acabar com as alterações divididas em vários commits que não valem necessariamente a pena. As linhas de comando do Git ajudam a compactar essas confirmações para um número menor e mensagens de confirmação mais significativas. Alguns detalhes em https://help.github.com/articles/using-git-rebase-on-the-command-line/