Esta página descreve como corrigir um bug ou submeter outras alterações ao site do Projeto Fedora. Qualquer pessoa pode executar essas etapas e você não precisa de permissão especial para enviar um patch à lista websites para consideração.
Modificando
Este procedimento mostra como copiar o repositório fedora-websites localmente e usar sua loja local para fazer mudanças.
- Certifique-se de ter o pacote
git
e o Apache Web Service instalado:su -c 'dnf install git gettext python-genshi python-lxml python-setuptools python-dateutil python-dogpile-cache babel python-feedparser fedfind python-requests' su -c 'dnf groups install "Web Server"'
- Configure pelo menos seu nome e endereço de e-mail em sua configuração global do git, conforme mostrado no this section of the git quick reference.
- Certifique-se de estar em um diretório ao qual você tenha acesso de gravação, como seu diretório pessoal ou um subdiretório, e clone o repositório fedora-websites.
cd $HOME git clone https://pagure.io/fedora-websites.git
- Altere o diretório para o site que você deseja alterar. O repositório carrega vários sites, incluindo fedoraproject.org, spins.fedoraproject.org e outros.
cd fedora-websites/getfedora.org
- Você pode criar uma nova branch para suas alterações ou fazer seu trabalho em uma branch existente no projeto fedora-websites. Para criar uma nova branch apenas para o seu uso ("mychanges" é um nome que você pode escolher livremente):
git checkout -b mychanges
Se você quiser trabalhar em algo que já existe, faça uma nova branch para novas alterações, ou configure sua branch para rastrear as alterações nessa branch existente. Isso permite que você desenvolva o trabalho existente sem se preocupar em sobrescrever o trabalho da equipe. Por exemplo, se você quiser ajudar com a branch "fpo-redesign":
git checkout -b mychanges --track origin/fpo-redesign
- Teste suas mudanças e correções.
make
Após a conclusão com sucesso, o site agora estará disponível no /out/directory. Agora, execute um sandbox test no local do projeto:
make test
- Abra em seu navegador o endereço http://localhost:5000 para exibir o site. Quando você terminar de visualizar, pare o servidor Web temporário:
make stoptest
- Se tudo estiver OK, organize os arquivos que você alterou:
git add data/content/file1.html data/content/file2.html
- Confirme as alterações em etapas:
git commit -m 'Fix spelling errors'
Mostrando suas modificações
Você pode copiar o conteúdo da pasta /out/ para um web share, se tiver um, para visualização. Seu espaço fedorapeople.org fornece isso na pasta ~/public_html/ .
ADVANCED USERS: Você também pode copiar seu git tree para o seu site fedorapeople.org, o que nos permite acessá-los facilmente. Se você não tiver uma conta no fedorapeople.org, precisará postar suas alterações em algum lugar e nos informar.
Instruções para usar o seu espaço fedorapeople.org são encontradas em fedorapeople.org wiki page.
Enviando suas alterações
Você pode enviar um pull request ou enviar um patch. enviar um pull request é altamente recomendado, e é a preferência.
Solicitações de pull request
Esse é o melhor método se você quiser contribuir para a equipe de websites, mas ainda não é um membro da equipe.
- Faça o login no pagure.io e então faça o fork do repositório git do fedora-websites. Depois de ter feito o fork do repositório git, você precisará configurar o clone git upstream remoto do seu fork para rastrear o repositório dos sites oficiais. Embora não seja obrigatório, é convencional chamar o remote upstream com o nome 'upstream' , o que pode ser feito com o comando a seguir, dentro do diretório do clone local do seu fork.
- Atualize seu fork Dê um pull upstream e merge na master local para se certificar de que a sua branch master está alinhado com as últimas alterações do upstream. Em seguida, dê um push para o seu clone para efetuar as alterações.
- Dê um checkout para o sua branch de desenvolvimento Agora você pode fazer o checkout para a sua branch de desenvolvimento e efetuar um push para o seu repo remoto na pagina:
- Solicite um pull request Agora você pode solicitar um pull request em https://pagure.io/fedora-websites/pull-requests
git remote add upstream https://pagure.io/fedora-websites.git
git pull --rebase upstream master git push origin master
git push origin mychanges
Enviando um patch
Isso é menos preferível do que o pull request, mas se por algum motivo você não conseguir fazer um PR, ainda assim poderá obter sua correção.
- Faça as suas correções:
git format-patch origin/master
- Agora você pode enviar os patches que você criou, que terão nomes como 0001-my-change.patch, um link para um recurso externo como fedorapeople.org para a lista websites. Por favor, não anexar arquivos ao ML, caso contrário você pode arquivar um ticket e adicionar o patch lá.
Tornando o texto traduzível
O texto destinado a um leitor humano deve ser transformado em strings traduzíveis. O texto a ser traduzido deve estar cercado por um dos seguintes requisitos:
- Se a cadeia de strings contiver outras marcações HTML, como caracteres especiais (such as < > found in HTML markup), coloque as strings desta maneira :
${Markup(_('str'))}
- Se não houver nenhuma marcação ou caractere especial, coloque a string assim:
${_('str')}
Em alguns casos, você poderá desejar alterar apenas uma faixa de texto sem alterar o restante da tradução. Aqui está um exemplo de como devemos fazer isto:
${_('%(size)s, DVD ISO disc image for %(arch)s-bit PC') % {'size':'3.1 GB', 'arch':'32'}}
Muitos editores irão destacar automaticamente esta sintaxe. Outros, como o vim, podem ser personalizados para isso. Para adicionar uma sintaxe de cor específica do vim, execute o seguinte:
vi ~/.vim/after/syntax/html.vim
Em seguida, insira o código abaixo neste novo arquivo.
" highlight Comment ctermfg=Green guifg=Green sy match htmlComment /${_(["'].*["'])}/ sy match htmlComment /${Markup(_(["'].*["']))}/ " error highlighted sy match htmlComment /${_([0-9A-Za-z%].*')}/ contains=htmlCommentError sy match htmlComment /${Markup((.*[)]{,1}}/ contains=htmlCommentError
Esse código é um exemplo e, de certa forma, incompleto - sinta-se à vontade para aprimorá-lo e editá-lo. Para cada arquivo HTML, o vim substituirá a cor padrão pela cor do comentário das strings corretas e destacará as strings com erros.
FAQ
Como evito alterar strings em commit/push
Depois de fazer as suas alterações em um arquivo HTML e executar make, os arquivos POT e PO serão atualizados automaticamente. Se você estiver trabalhando durante um tempo que as sequências são congeladas para os tradutores, talvez não seja um momento bom para efetuar um push. Veja como evitar esse problema:
- Use git add <filename> e git commit -m 'commit message' para efetuar o commit das mudanças do seu HTML. Lembre-se de fazer apenas mudanças significativas. Não use o git add . se você fez muitas mudanças não relacionadas; estará praticando um mau hábito
- Repita a etapa anterior quantas vezes forem necessárias para confirmar todas as alterações.
- Rode o git stash para juntar com as outras alterações que você fez.
- (Optional/Recommended?) Rode git pull --rebase para garantir que você tenha as últimas alterações do upstream e que suas alterações não causem conflitos estranhos.
- Rode o comando git push origin <branch-name> para efetuar o push de suas alterações HTML.
- Rode o comando git stash pop para trazer suas outras alterações de volta para a árvore de trabalho e para fora da pilha de stashes.
Como eu faço alterações quando me torno membro da equipe de websites?
Se você foi atraído para a equipe de resolução de bugs, e está contribuindo regularmente, provavelmente você sentirá a necessidade de atualizar suas configurações do git para enviar diretamente para o repositório git do projeto Fedora (pagure.io). Para fazer isso, rode o comando git remote set-url origin ssh://git@pagure.io/fedora-websites.git em seu repositório local.
Neste ponto, você deverá estar informado sobre o nosso workflow.
Informação adicional
O git quick reference pode ser útil para você, além de ajudar em sua configuração global. O Git Community Book é uma excelente referência se você achar o git útil e quiser aprender mais sobre ele.
Você não tem que ser um membro do time de Websites para ajudar na parte de websites, mas se você estiver fazendo isso com frequencia, talvez queira se juntar a nós!