Plano de Gestão e Configuração de Software
Histórico de Versões
Data | Versão | Descrição | Autor(es) |
---|---|---|---|
25/08/2020 | 0.1 | Criação do Documento de GCS | Daniel Maike, João Pedro, Joberth Rogers |
26/08/2020 | 0.2 | Adequação dos Itens de Configuração | Daniel Maike, João Pedro, Joberth Rogers |
26/08/2020 | 0.3 | Adequação das Políticas e do Uso de Issues | Daniel Maike, João Pedro, Joberth Rogers |
26/08/2020 | 1.0 | Adequação do Repositório de Documentação e atualização de políticas de commit | Daniel Maike |
Sumário
5. Repositório de Documentação
1. Introdução
O presente documento tem como finalidade abordar os procedimentos de gerência e configuração de software a serem seguidos no projeto.
2. Itens de Configuração
Serão tratados como itens de configuração para este projeto o código e a documentação que o acompanha. Descrimina-se abaixo os itens de configuração para os quais faremos a manutenção e gerenciamento.
- Documento: Arquivo de texto contendo planejamentos, descrição do produto e projeto, relatos de reunião ou do fluxo de projeto.
- Código: Artefato composto por um conjunto de arquivos de texto, contendo código de uma ou mais linguagens de programação ou marcação.
3. Políticas
3.1 Política de Commits
Os commits devem ser criados logo em seguida à finalização de um conjunto conexo de alterações, descrevendo-o de forma sucinta e atômica. O formato deve conter o tipo do commit, a descrição e o id da issue no repositório do GitHub. O texto deve descrever o que foi produzido, de forma resumida e em inglês, com o tempo verbal no presente. Como no seguinte formato:
[tipo do commit]: [resumo da alteração] <#id>
- [tipo do commit] -> Tipo do Commit: feat | fix | docs | style | refactor | test | chore | perf | ci | build | temp
- [resumo da alteração] -> Resumo da alteração no tempo presente. Não capitalizado. Sem ponto final.
- <#id> -> Id da issue no repositório do GitHub
Tipos:
- feat: para uma nova feature
- fix: para bug fix
- docs: documentação apenas mudanças
- style: mudanças que não afetam o significado do código (espaço em branco, formatação, ponto e vírgula ausente, etc)
- refactor: uma mudança de código que não corrige um bug nem adiciona um recurso
- test: adicionar testes ausentes ou corrigir os existentes
- chore: mudanças no processo de construção ou ferramentas auxiliares e bibliotecas, como geração de documentação
- perf: uma mudança de código que melhora o desempenho
- ci: mudanças em seus arquivos e scripts de configuração de CI
- temp: commit temporário que não será incluído em seu CHANGELOG
- Exemplo:
feat: create user structure
- Commits devem ser redigidos no idioma inglês.
- Devem ser simples e concisos, possuindo títulos curtos.
- Commits devem descrever o que está sendo alterado, se houver mais de uma alteração (pertinente ao commit) ela deve ser adicionada na descrição do commit.
- Devem iniciar com letras minúsculas.
- Devem iniciar com um verbo no presente, informando seu objetivo. Ex: "feat: create new main page"
3.2 Política de Branches
-
O repositório do projeto terá uma branch principal, sendo ela a branch estável, a master.
-
A master será a branch estável do projeto, sendo ela proveniente da develop quando o pull request for aprovado, ao fim de cada release ou quando houver necessidade. Nenhum membro será autorizado a fazer commits diretamente na master.
-
As branches auxiliares são para a resulução de issues do projeto. Cada User Story, Technical Story, HotFix ou BugFix terá sua própria branch, criada a partir da develop, e terá como nomenclatura o seguinte padrão:
feature/US[ID da User Story]-[Nome representativo da US]
ou
feature/TS[ID da Technical Story]-[Nome representativo da TS]
ou
bugfix/[Nome representativo do Bug Fix]
ou
hotfix/[Nome representativo do Hot Fix]
-
As branches develop e master têm papel importante no fluxo seguido. Portanto, nenhuma dessas deve receber um commit diretamente pelo time de desenvolvimento de nenhum User Story, Technical Story, HotFix ou BugFix.
-
Para cada ISSUE uma nova branch deve ser criada com base no último commit da develop, de acordo com o modelo acima.
3.2.1 Conflitos
Se um Pull Request causar algum tipo de conflito, deve ser resolvido primeiro pela equipe que desenvolveu o que está causando conflito, prezando pela integridade e organização do histórico de commits, e então deve ser refeito o pedido para avaliação do merge.
3.3 Política de Aprovação do Código
Para a aprovação do código, este deve ser aprovado por ao menos dois membros da equipe de Engenharia de Produto de Software.
4. Uso de Issues
-
As issues serão criadas com o objetivo de mapear as User Story, Technical Story, HotFix ou BugFix, tendo assim um maior controle sobre elas. Com isso, conseguiremos manter o rastro dos commits com suas respectivas issues.
-
As issues serão divididas em labels, para que se possa indicar sua natureza.
-
O padrão do nome das issues terá o seguinte formato:
US<ID incremental> - <Descrição da Issue>
TS<ID incremental> - <Descrição da Issue>
BUGFIX - <Descrição da Issue>
HOTFIX - <Descrição da Issue>
-
Exemplo : "US02 - Criar Termo de Abertura do Projeto (TAP)".
-
E cada descrição de Issue deverá seguir o Issue Template determinado no repositório.
-
Qualquer alteração deve ser solucionada apenas após a criação de uma issue especificando a alteração.
5. Repositório de documentação
O repositório de documentação é encontrado na wiki do projeto. Seu objetivo é armazenar a documentação proveniente do projeto, bem como, as práticas adotadas pela equipe de desenvolvimento.
5.1 Versionamento de documentos
A versão dos documentos deve seguir o versionamento semântico MAJOR.MINOR. Uma alteração que envolva correção ou validação de um documento e que não exija esforço intelictual moderado, deve ser versionado incrementando o dígito MINOR. Para alterações que envolva adição de conteúdo ou correções significativas, deve ser incrementado o dígito MAJOR.
6. Referências
-
PMI. Um guia do conhecimento em gerenciamento de projetos. Guia PMBOK® 5a. ed. - EUA: Project Management Institute, 2013
-
QueroCultura. Plano de Gerenciamento de Configuração. Disponível em https://github.com/fga-eps-mds/2017.2-QueroCultura/wiki/Plano-de-Gerenciamento-de-Configura%C3%A7%C3%A3o