Skip to content

Conversation

rffontenelle
Copy link
Collaborator

@rffontenelle rffontenelle commented Jan 19, 2020

Visão Geral

Esse pull request fornece os seguintes arquivos:

  • Makefile: Script com vários alvos que automatizam o gerenciamento de tradução. Por exemplo, compilação de documentos, obtenção de Tradução do Transifex, push das novas traduções para este repositório, etc.
  • .github/workflows/pythonpackage.yml: Arquivo de fluxo de trabalho do GitHub Actions que executa diversos alvos do Makefile em um agendamento diário (no exato instante comentado/desativado)
  • .gitignore: Exclui do rastreamento do Git alguns arquivos e diretórios resultantes da execução do Makefile
  • requirements.txt: Relação de dependências que o Makefile vai instalar para o ambiente virtual (venv)

Makefile

$ make
Please use 'make <target>' where <target> is one of:
 build        Build an local version in html, with warnings as errors
 push         Update translations and Transifex config in the repository
 pull         Download translations from Transifex; calls 'venv'
 tx-config    Recreate an up-to-date project .tx/config; calls 'pot'
 pot          Create/Update POT files from source files
 serve        Serve a built documentation on http://localhost:8000

Exemplos de uso:

Atualizar arquivo de configuração do Transifex para fazer mapeamento de eventuais novos arquivos de tradução:
$ make tx-config

Baixar traduções do Transifex (costuma demorar certa de 25~30 minutos):
$ make pull

Fazer git-push para este repositório de alterações (se houver) no arquivos de tradução e no arquivo de configuração do Transifex:
$ make push

Compilar a documentação, com o sphinx-build tratando avisos como erros (por exemplo, sintaxe incorreta de tradução, tipo ": mod:" -- espaço antes o palavra-chave "mod" ):
$ make build

Compilar a documentação, mas sem tratar avisos como erros:
$ make build SPHINXERRORHANDLING=""

Definir outro diretório para armazenar o clone do repositório de cpython a ser usado pelo script:
$ make build CPYTHON_PATH=/tmp/cpython

Servir a documentação compilada na forma de um servidor web local simples:
$ make server

.github/workflows/pythonpackage.yml

NOTA: Antes de usar, algumas ações devem ser tomadas após aceitar esta pull request. Veja mais abaixo

Este é um arquivo de workflow do GitHub Actions, o qual é o sistema de Integração Contínua (CI) do GitHub, assim como há o GitLab CI, Travis e muitos outros. O arquivo possui sintaxe .yml e seu progresso pode ser acompanhado na opção do menu acima Actions , à direita do item Pull Requests.

Este arquivo está definido (apesar de comentado/desativado) para executar diariamente as seguintes tarefas:

  • recriar arquivo de configuração do Transifex para mapear novos arquivos de tradução; para isso, são gerados arquivos POT e, a partir daí, gerado o arquivo de configuração. (solução baseada no script de atualização do Transifex da equipe japonesa)
  • baixar novas traduções do Transifex
  • compilar sem tratar avisos como erros, para encontrar eventuais erros grosseiros na tradução)
  • fazer git-push para atualizar as traduções do repositório
  • compilar tratando avisos como erros, para sinalizar aos mantenedores de problemas a serem resolvidos.

ANTES DESTE WORKFLOW FUNCIONAR, o mantenedor deve fazer o seguinte:

  1. Criar um token de API do Transifex e adicioná-lo aos secrets deste repositório no GitHub com o nome TRANSIFEX_APIKEY (nome de variável no qual o arquivo workflow espera encontrar o token)
  2. Editar o arquivo de workflow .github/workflows/pythonpackage.yml descomentando as linhas de contendo os parâmetros on, schedule e cron para ativar agendamento diário deste workflow.

A variável de autenticação GITHUB_TOKEN usada pelo workflow é criada automaticamente pelo GitHub Actions, não precisando fazer nada quanto a isso.

The Makefile was based on French language team's Makefile,
but adapted to Brazilian language team workflow.

The GitHub Actions workflow will run this Makefile. Any error will
be logged and made available to make it easier to fix.
strategy:
max-parallel: 4
matrix:
python-version: [3.7]
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Já podemos ir com 3.8?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Acredito que pode 3.8, sim, mas eu recomendaria mesclar, deixar executar a atualização e depois fazer o teste. Aí, se der errado, é só fazer um revert da atualização 3.7->3.8

Só para conhecimento, quando da criação do script, a versão transifex-client 1.3.5 disponível no PIP não tinha suporte a Python 3.8. Havia issue aberta, mas ainda não tinha sido resolvida. Parece que a última versão, 1.3.7, resolve essa questão.

Inclusive, algo a se considerar em um momento posterior (não agora) é definir versões fixas para evitar surpresas e usar o https://requires.io/ para monitorar versão das dependências.

@rougeth
Copy link
Collaborator

rougeth commented Jan 25, 2020

@rffontenelle já criei o token e adicionei no repositório. Já vamos configurar o cron?

@rffontenelle
Copy link
Collaborator Author

@rougeth Pode ativar o cron, à vontade.

@rougeth rougeth merged commit 43334c9 into python:3.8 Jan 25, 2020
@rougeth
Copy link
Collaborator

rougeth commented Jan 25, 2020

Muito obrigado pelo PR!! 🎉

Vamos ficar de olho hoje pra ver como vai ser.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants