Gerando um patch

Os patches geralmente seguem a seguinte estrutura de diretórios e arquivos:

.
├── aplicar_patch.sh
├── arquivos
│    ├── administracao
│    │    └── ...
│    ├── ajuda
│    │    └── ...
│    ├── avaliarcurso
│    │    └── ...
│    ├── cursos
│    │    └── ...
│    ├── estatistica
│    │    └── ...
│    ├── extracao
│    │    └── ...
│    ├── imgs
│    │    └── ...
│    ├── infocurso
│    │    └── ...
│    ├── pagina_inicial
│    │    └── ...
│    ├── scripts
│    │    └── …
│    ├── favicon.ico
│    │
│    ├── index.php
│    │
│    ├── lista_de_arquivos.txt
│    │
│    ├── menu_principal_tela_inicial.php
│    │
│    ├── README.md
│    │
│    ├── rodape_tela_inicial.php
│    │
│    └── topo_tela_inicial.php
│
├── textos.sql
├── patch_geral.php
├── readme.txt
└── release_notes.txt

Para criar um novo patch, devemos atualizar alguns componentes dessa estrutura.

No diretório /arquivos, temos uma cópia do código fonte do TelEduc para a versão especificada. É importante ressaltar que, assim como as versões estáveis disponíveis para baixar no site, esta cópia também deve vir sem os arquivos e pastas desnecessários para não desenvolvedores, além de também não precisar da pasta /instalacao, usada para a instalação e da pasta /cursos/diretorio, onde ficam os arquivos de cada curso. Note também que a cópia não deve conter nenhum arquivo de configuração do TelEduc.

O arquivo aplicar_patch.sh é o script que será executado pelo usuário, conforme instruído no arquivo readme.txt (não se esqueça de atualizá-lo com os novos caminhos do patch e cabeçalhos). Nesse script devemos alterar as seguintes linhas:

29 #Definição das versões aplicáveis ao patch
30 target_version='4.3'
31 destiny_version='4.3.1'

O script funciona executando uma série de passos. Primeiramente ele faz uma cópia do arquivo de configuração do TelEduc para uso posterior. Em seguida, ele copia o código-fonte do diretório /arquivos para a pasta do TelEduc, sobreescrevendo a versão mais antiga. Por fim, ele executa o arquivo patch_geral.php. Tal arquivo é um script em php que utiliza as bibliotecas do TelEduc de conexão ao banco de dados, usando automaticamente o usuário e senha do arquivo de configuração. Neste arquivo incluímos todos os comandos sql que devem ser aplicados às bases de dados geral e dos cursos para deixá-la compatível com a nova versão. Desta forma é importante manter um controle desses comandos (tanto os que operam sobre dados relevantes ou sobre o schema das bases). Na pasta /update da versão de desenvolvimento, costumamos colocar os scripts com tais comandos desde a última versão, de modo que seria necessário apenas copiá-los para dentro do patch.

As únicas excessões são os conteúdos das tabelas Lingua_textos e Ajuda. Como essas tabelas armazenam textos em todas as línguas suportadas, seu conteúdo está mudando constantemente. Na pasta de instalações (que não deve estar presente no patch), existe o arquivo textos.sql, que é atualizado com cada mudança nos textos. Simplesmente copie a versão do arquivo no commit tagueado com a versão do desejada para dentro do patch.

Tudo o que resta agora é atualizar o arquivo release_notes.txt. Se não se lembra de todas as mudanças feitas desde a última versão, um bom lugar para se basear são as atividades do projeto do TelEduc, uma página no redmine que mostra todas as modificações feitas nos tickets organizadas cronologicamente.

Pronto! Seu patch está feito. Depois de testá-lo, vc já pode compactá-lo e disponibilizá-lo no site.

patch-teleduc-vx-vy.tar.gz (3,452 KB) Camila Abreu, 28/03/2014 16:21