Usando o git para manipular o código-fonte do site web
Trabalhando no repositório Git
Vamos direto ao assunto — nesta seção você aprenderá como criar uma cópia local do repositório main, como manter esse repositório atualizado e como enviar seu trabalho. Também explicaremos como trabalhar nas traduções.
Obtenha uma cópia local
Primeiro, instale o Git. Em seguida, configure o Git e insira seu nome e endereço de e-mail. Se você é um(a) usuário(a) novo(a) do Git, provavelmente é uma boa ideia primeiro ler a documentação geral do Git.
Seu próximo passo é clonar o repositório (em outras palavras: fazer uma cópia local dele). Existem duas maneiras para fazer isso:
- Registre uma conta em https://salsa.debian.org e habilite o acesso
SSH fazendo o upload de uma chave SSH pública para sua conta no Salsa. Veja
as páginas de ajuda do Salsa
para mais detalhes. Então você pode clonar o repositório
webwml
usando o seguinte comando:git clone git@salsa.debian.org:webmaster-team/webwml.git
- Como alternativa, você pode clonar o repositório usando o protocolo HTTPS.
Lembre-se de que isso criará o repositório local, mas você não poderá enviar
as alterações diretamente dessa maneira:
git clone https://salsa.debian.org/webmaster-team/webwml.git
Dica: clonar todo o repositório webwml
requer o
download de aproximadamente 1,3 GB de dados, o que pode ser bastante se você
estiver em uma conexão de Internet lenta ou instável. Portanto, é possível
definir uma profundidade mínima para um download inicial menor:
git clone git@salsa.debian.org:webmaster-team/webwml.git --depth 1
Depois de obter um repositório utilizável (raso), você pode aprofundar a cópia local e, eventualmente, convertê-la em um repositório local completo:
git fetch --deepen=1000 # aprofunda o repo para mais 1000 commits git fetch --unshallow # busca todos os commits ausentes, converte o repositório para um completo
Você também pode obter apenas um subconjunto das páginas:
git clone --no-checkout git@salsa.debian.org:webmaster-team/webwml.git
cd webwml
git config core.sparseCheckout true
- Crie o arquivo
.git/info/sparse-checkout
dentro do diretóriowebwml
para definir o conteúdo que você deseja obter. Por exemplo, se deseja recuperar apenas os arquivos base, traduções do inglês, catalão e espanhol, o arquivo será dessa forma:/* !/[a-z]*/ /english/ /catalan/ /spanish/
- A seguir, poderá obter o repo:
git checkout --
Envie as mudanças locais
Mantenha seu repo local atualizado
A cada poucos dias (e definitivamente antes de começar algum trabalho de edição!) você deve fazer um
git pull
para obter quaisquer arquivos do repositório que foram alterados.
É altamente recomendável manter seu diretório de trabalho Git local limpo antes
de executar git pull
e começar a editar alguns arquivos.
Se você tiver alterações que não foram feitos commit, ou commits locais que não
estão presentes no repositório remoto no branch atual, executar
git pull
criará automaticamente merge commits ou até mesmo falhará
devido a conflitos. Por favor, considere manter seu trabalho inacabado em
outro branch ou usar comandos como git stash
.
Nota: O Git é um sistema de controle de versão distribuído (não centralizado). Isso significa que quando você fizer o commit das alterações, elas serão armazenadas apenas em seu repositório local. Para compartilhá-los com outras pessoas, você também precisará enviar suas alterações para o repositório central no Salsa.
Exemplo: editando alguns arquivos
Vejamos um exemplo mais prático e uma sessão de edição típica.
Estamos assumindo que você obteve uma
cópia local do repositório usando
git clone
. Seus próximos passos são:
git pull
- Agora você pode começar a editar e fazer alterações nos arquivos.
- Quando terminar, faça o commit de suas alterações em seu repositório
local:
git add caminho/para/os/arquivos git commit -m "Sua mensagem de commit"
- Se você tiver acesso ilimitado de escrita no
repositório remoto
webwml
, poderá enviar suas alterações diretamente para o repositório no Salsa:git push
- Se não tiver acesso direto de escrita ao repositório
webwml
, envie suas alterações com um merge request ou entre em contato com outros(as) desenvolvedores(as) para obter ajuda.
Fechando bugs do Debian Bugs com commits no Git
Se você incluir Closes: #
nnnnnn no conteúdo do log do
seu commit, então o bug de número #
nnnnnn será fechado
automaticamente quando você enviar suas alterações. A forma precisa disso é a
mesma que
na política Debian.
Links com HTTP/HTTPS
Muitos sites web do Debian suportam SSL/TLS, por favor use links com HTTPS sempre que possível e sensato. No entanto, alguns sites web Debian/DebConf/SPI/etc não têm suporte a HTTPS ou usam apenas o CA SPI (e não um CA SSL confiável para todos os navegadores). Para evitar causar mensagens de erro para usuários(as) não Debian, por favor não crie links para esses sites usando HTTPS.
O repositório Git rejeitará commits contendo links HTTP simples para sites web do Debian que suportam HTTPS, ou contendo links HTTPS para sites web Debian/DebConf/SPI que são conhecidos por não suportarem HTTPS ou usarem certificados assinados apenas pela SPI.
Trabalhando as traduções
As traduções devem sempre ser mantidas atualizadas com o arquivo em inglês
correspondente. O cabeçalho translation-check
nos arquivos de
tradução é usado para rastrear em qual versão do arquivo em inglês a tradução
atual foi baseada. Se você alterar os arquivos traduzidos, precisará atualizar
o cabeçalho translation-check
para corresponder ao hash do commit
Git da alteração correspondente no arquivo em inglês. Você pode identificar o
hash com o seguinte comando:
git log caminho/para/arquivo/em/inglês
Se você fizer uma nova tradução de um arquivo, por favor use o script
copypage.pl
.
Ele cria um template para seu idioma, incluindo o cabeçalho de tradução
correto.
Alterações de tradução com smart_change.pl
smart_change.pl
é um script projetado para tornar mais fácil
atualizar arquivos originais e suas traduções juntos. Existem duas maneiras de
usá-lo, dependendo das alterações que você está fazendo.
Veja como usar smart_change.pl
e como atualizar os cabeçalhos
translation-check
quando estiver trabalhando em arquivos
manualmente:
- Faça as alterações nos arquivos originais e faça o commit das suas alterações.
- Atualize as traduções.
- Execute
smart_change.pl -c COMMIT_HASH
(use o hash do commit das alterações nos arquivos originais). Ele pegará as alterações e atualizará os cabeçalhos dos arquivos traduzidos. - Revise as alterações (por exemplo, com
git diff
). - Faça o commit das alterações de tradução.
Como alternativa, você pode trabalhar com expressões regulares para fazer várias alterações nos arquivos em uma única passagem:
- Execute
smart_change.pl -s s/FOO/BAR/ origfile1 origfile2 ...
- Revise as alterações (por exemplo, com
git diff
). - Faça o commit dos arquivos originais.
- Execute
smart_change.pl origfile1 origfile2
(ou seja, sem o regexp desta vez). Ele agora apenas atualizará os cabeçalhos dos arquivos traduzidos. - Por fim, faça o commit das alterações de tradução.
É certo que isso requer um pouco mais de esforço do que o primeiro exemplo, pois envolve dois commits, mas é inevitável devido à maneira como os hashes do Git funcionam.
Acesso de escrita ao repositório Git
O código-fonte do site web do Debian é gerenciado com o Git e localizado em https://salsa.debian.org/webmaster-team/webwml. Por padrão, convidados(as) não têm permissão para enviar os commits para o repositório de código-fonte. Se você deseja contribuir com o site web do Debian, precisa de algum tipo de permissão para obter acesso de escrita no repositório.
Acesso ilimitado de escrita
Se você precisa de acesso ilimitado de escrita no repositório, por exemplo, se está prestes a se tornar um(a) contribuidor(a) frequente, por favor, solicite o acesso de escrita através da interface web https://salsa.debian.org/webmaster-team/webwml após fazer login na plataforma do Salsa do Debian.
Se você é novo(a) no desenvolvimento do site web do Debian e não tem experiência anterior, por favor envie um e-mail para debian-www@lists.debian.org e se apresente antes de solicitar acesso ilimitado de escrita. Seja gentil e nos conte mais sobre você, por exemplo, em qual parte do site web planeja trabalhar, quais idiomas fala, e também se há outro(a) membro(a) da equipe do Debian que pode atestar por você.
Merge Requests
Não é necessário obter acesso ilimitado de escrita no repositório — você sempre pode enviar um merge request e permitir que outros(as) desenvolvedores(as) revisem e aceitem seu trabalho. Por favor, siga o procedimento padrão para solicitações de merge requests fornecido pela plataforma Salsa GitLab por meio de sua interface web e leia os dois documentos a seguir:
Por favor observe que os merge requests não são monitoradas por todos(as) os(as) desenvolvedores(as) do site web. Portanto, pode levar algum tempo até que receba algum feedback. Se quer saber se sua contribuição será aceita ou não, por favor envie um e-mail para a lista de discussão debian-www e peça uma revisão.
Obtendo notificações
Se você está trabalhando no site web do Debian, provavelmente quer saber o
que está acontecendo no repositório webwml
. Há duas maneiras de se
manter atualizado(a): notificações de commit e notificações de merge request.
Recebendo notificações de commit
Configuramos o projeto webwml
no Salsa para que os commits
sejam mostrados no canal IRC #debian-www.
Se deseja receber notificações sobre commits no repo webwml
por e-mail, por favor assine o pseudopacote www.debian.org
via
tracker.debian.org e ative a
palavra-chave vcs
, seguindo estes passos (apenas uma vez):
- Abra um navegador web e vá para https://tracker.debian.org/pkg/www.debian.org.
- Assine o pseudopacote
www.debian.org
(você pode autenticar via SSO ou registrar um e-mail e senha, se ainda não estiver usando o tracker.debian.org para outros propósitos). - Vá para https://tracker.debian.org/accounts/subscriptions, depois
em
>modify keywords
, marquevcs
(se não estiver marcado) e salve. - A partir de agora, você receberá e-mails quando alguém fizer commit no
repositório
webwml
.
Recebendo notificações de Merge Request
Se deseja receber e-mails de notificação sempre que houver novos merge
requests enviadas para o repositório webwml
no Salsa, você pode
configurar suas opções de notificação na interface web seguindo estas etapas:
- Faça login na sua conta do Salsa e vá para a página do projeto.
- Clique no ícone do sino na parte superior da página inicial do projeto.
- Selecione o nível de notificação de sua preferência.