From Fedora Project Wiki
Artwork DesignService fedorawebsitesbanner 3.png


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

Important.png
Nunca use conta root para isso
Não use a conta root do seu sistema para este trabalho. Todas essas etapas podem ser executadas por um usuário normal. Você só precisa fornecer a senha de root para instalar pacotes na primeira etapa.

Este procedimento mostra como copiar o repositório fedora-websites localmente e usar sua loja local para fazer mudanças.

  1. Certifique-se de ter o pacote Package-x-generic-16.pnggit 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"'
  2. Important.png
    Você poderá usar o Nginx também para este mesmo fim.
  3. 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.
  4. 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
  5. Note.png
    fedorahosted repository has been archived
    Nosso antigo repositório em fedorahosted.org foi arquivado, mas ainda está disponível para consulta. No entanto, por ser antigo, não vamos mais trabalhar com este repositório para os sites!
  6. 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
  7. 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
  8. 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
  9. 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
  10. Se tudo estiver OK, organize os arquivos que você alterou:
    git add data/content/file1.html data/content/file2.html
  11. 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.

  1. Faça o login no pagure.io e então faça o fork do repositório git do fedora-websites.
  2. 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.

    git remote add upstream https://pagure.io/fedora-websites.git
  3. Atualize seu fork
  4. 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.

    git pull --rebase upstream master
    git push origin master
  5. Dê um checkout para o sua branch de desenvolvimento
  6. Agora você pode fazer o checkout para a sua branch de desenvolvimento e efetuar um push para o seu repo remoto na pagina:

    git push origin mychanges
  7. Solicite um pull request
  8. Agora você pode solicitar um pull request em https://pagure.io/fedora-websites/pull-requests

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.

  1. Faça as suas correções:
    git format-patch origin/master
  2. 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!