From Fedora Project Wiki

< How to fix bugs on the Fedora Project website

Revision as of 14:18, 17 July 2018 by Lobocode (talk | contribs) (Enviando suas alterações)

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
    Our old repository on fedorahosted.org has been archived but is still available for consulting. Commits to this repo won't make it into the websites!
  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á.

Making text translatable

Text intended for a human reader should be made into translatable strings. Text to be translated should be surrounded by one of the following:

  • If the string contains other HTML markup such as special characters (such as < > found in HTML markup), surround the string like this:
    ${Markup(_('str'))}
  • If there is no such special markup or characters, surround the string like this:
    ${_('str')}

In some cases, you may want a piece of text to be changeable without disturbing the rest of the translation. This is often the case with quantities that might change from release to release such as a file size. Here is an example of using named substitution to accomplish this goal:

${_('%(size)s, DVD ISO disc image for %(arch)s-bit PC') % {'size':'3.1 GB', 'arch':'32'}}

Many editors will automatically highlight this syntax. Others such as vim can be customized to do so. To add a vim specific color syntax, run the following:

vi ~/.vim/after/syntax/html.vim

Then, insert the code below into this new file.

" 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

This code is an example, and somewhat incomplete -- feel free to improve it and edit this page. For each HTML file, vim will override the default color with the comment color of the right strings, and highlight strings that have errors.

FAQ

How do I avoid changing strings when I commit/push?

After you create your changes to an HTML file and run make, the POT and PO files are updated automatically. If you are working during a time when strings are supposed to be frozen for translators, you may not want to push these string changes out. Here's how to avoid that problem:

  • Use git add <filename> and git commit -m 'commit message' to commit your HTML changes. Remember to make these changes meaningful. Do not use git add . if you've made lots of unrelated changes; it's a bad habit.
  • Repeat previous step as often as needed to commit all changes.
  • Run git stash to stash the other changes you've made.
  • (Optional/Recommended?) Run git pull --rebase to make sure you've got the latest changes from upstream and that your changes don't cause any weird conflicts.
  • Run git push origin <branch-name> to push your HTML changes out.
  • Run git stash pop to bring your other changes back to the working tree, and off the stack of stashes.

How do I push my changes once I've become a member of the websites team?

If you've been bitten by the bug-fixing bug and are contributing on a regular basis, you'll want to update your git settings to push directly to the git repository. To do so, run git remote set-url origin ssh://git@pagure.io/fedora-websites.git in your local fedora-websites repository.
At this point you should also read more about our workflow.

Additional information

The git quick reference might be useful for you, beyond just setting up your global configuration.

The Git Community Book is an excellent reference if you find git useful and want to learn more about it.

You don't have to be a member of the Websites team to help fix things on the site, but if you find yourself doing it more than once, you might want to join us!