👍 Primeiramente, obrigado por dedicar um tempo para contribuir! 🎉👍
Este projeto adere ao código de conduta. Ao participar, espera-se que você cumpra este código. O projeto foi criado para fins educacionais , tendo como objetivo principal praticar a a contribuição em projetos. Alem disso, praticar abertura de issues, pull-requests, configuração e utilização de issues templates, padronização de commits e branchs. Então sinta-se livre para contribuir.
Formas de contribuição:
❗ Resolvendo, respondendo ou indicando issues
📄 Realizando uma alteração no arquivo contribution_project
através de um fork
⭐ Adicionando aos favoritos (star)
Important
A seguir, você pode encontrar algumas coisas para manter em mente antes de contribuir:
- Issues
- Commits
- Lista de commits permitidos
- Branches
- Pull Requests
- Praticando a contribuição com projetos
Para abertura de issues, podem ser seguidos doi modelos ja estabelecidos em template:
- Em casos de report de bug, utilizar o template: Template - BUG REPORT
- Em casos de Solicitação de uma nova funcionalidade, uma sugestão em si, utilizar o template: Template - FEATURE REPORT
O título da issue deve-se seguir o modelo sugerido no template - Exemplo:
[BUG] - Título do bug
[SUGESTÃO] - Título da sugestão
Tip
Se o problema for fechado sem desenvolvimento, use um dos rótulos abaixo:
wontfix
invalid
duplicate
Note
Em casos onde você trabalhou na solução de uma issue: Quando uma tarefa for concluída, crie uma solicitação de pull Pull Request que feche a issue.
Important
O padrão a ser seguido para os commits é baseado no conventional commit specification.
- Esse padrão é escrito da seguinte forma:
<tipo>[(escopo opcional)]: <descrição>
[corpo opcional]
[rodapé opcional]
Campo | Obrigatório | Descrição |
---|---|---|
Tipo | ✅ | Tipo do commit que vai ser feito. Verificar a lista de tipos permitidos |
Escopo | ❌ | Arquivo, domínio, ou módulo que aquele commit se refere |
Descrição | ✅ | Uma descrição curta sobre o commit |
Corpo | ❌ | Uma descrição maior, caso não consiga explicar com clareza tudo o que tem no commit |
Rodapé | ❌ | Fechamento de tarefas e/ou informação sobre breaking changes |
Tipo de Commit | Scope | Descrição | Exemplo |
---|---|---|---|
feat |
portfolio | Adiciona uma nova funcionalidade ao projeto. | feat(portfolio): add USENAME.md profile |
fix |
cadastro | Corrige um bug ou problema no projeto. | fix(cadastro): fixed issue fix#IssueNumber |
docs |
arquitetura | Altera a documentação do projeto. | docs(arquitetura): update README.md |
style |
comunicacao | Realiza mudanças na aparência, sem alterar a funcionalidade. | style(comunicacao): add EFFECTNAME to COMPONENT |
refactor |
services | Realiza mudanças no código que não alteram a funcionalidade. | refactor(services): refactor at CLASSNAME |
test |
editarsenha | Adiciona ou modifica testes no projeto. | test(editarSenha): add unit test for UserService |
build |
nfe | Mudanças que afetam o build ou dependências exeternas (gulp, npm) | build(nfe): update npm |
ci |
scope-a | Mudanças na configuração da Integração Contínua (Travis, Circle) | ci(scope-a): remove stage tests at pipeline jenkins |
revert |
scope-b | Reversão de um commit | revert(scope-b): revert the last two commits |
-
Exemplos de commits:
-
Um commit com rodapé
fechando uma issue
:
fix(pagamento): muda a chave do RecebaSeguro
A chave que estava sendo usada era de desenvolvimento,
mas acabou sendo enviada para produção
Closes a tarefa #457
- Um commit com rodapé informando sobre
breaking changes
:
refactor(produto): remove o método #adicionarAoCarrinho
O método já tinha sido depreciado e agora foi removido
BREAKING CHANGE: o método públic #adicionarAoCarrinho foi removido
Note
Nomes de branches são compostos de 2 partes:
- O type ou categoria do branch. Os types podem ser os seguintes:
feat
fix
docs
refactor
- O que o branch faz em si.
<tipo>-<descrição>
- Quadro de exemplos:
Tipo de Commit | Descrição | Exemplo |
---|---|---|
feat |
Uma nova funcionalidade | feat-cadastro-fornecedor |
fix |
Correção de um bug | fix-cadastro-clientes |
docs |
Apenas mudanças de documentação; | docs-documentar-arquitetura |
refactor |
Mudança que não adiciona uma funcionalidade | refactor-edicao-colaboradores |
Campo | Obrigatório | Descrição |
---|---|---|
Tipo | ✅ | Tipo do commit que vai ser feito. Verificar a lista de tipos permitidos |
Descrição | ✅ | O que o branch faz em si |
- Se quiser criar o branch e ao mesmo tempo já trocar para ele, pode usar:
git checkout -b novobranch
- e quiser criar o branch a partir de outro existente (não necessariamente o atual):
git checkout -b novobranch branch_existente
- Trocar para uma outra branch
git checkout NovaBrach
- Verificar branchs existentes
git branch
Note
O corpo do PR deve conter as respostas baseadas no pull-request template Como criar uma solicitação de Pull Request: Documentação
- Corpo do Pull Request Template:
## Descrição
Descrição da alteração que está sendo proposta.
## Tipo de alteração
- [ ] Correção de bug
- [ ] Nova funcionalidade
- [ ] Alteração na documentação
- [ ] Outro (especifique)
## Pre-merge Checklist
- [ ] Minhas alterações não deletam partes do projeto
- [ ] Minhas alterações não introduzem novos problemas
- [ ] Minha contribuição está de acordo com o [Guia de Contribuição](https://github.com/leoviana00/GitContributionOpenSource/blob/main/CONTRIBUTING.md)
## Comentários adicionais
Adicione aqui quaisquer comentários ou informações adicionais relevantes para o revisor.
Caso o PR possua relação com alguma issue aberta, usar o modelo de descrição abaixo, desse moda fechando/resolvendo a issue relacionada.
Ex:
Closes #5
Aqui estão todas as informações adicionais necessárias para o revisor, por exemplo, execute o Yarn antes de revisar.
## Screenshots
| Before | After |
| ------ | ----- |
| Image | Image |
Note
Em casos no qual o PR
tem relação cpm alguma issue:
Em comentários adicionais, inicie com uma mensagem que encerre as issues relacionadas e abaixo dela, em uma nova alinha adicione quaisquer comentários ou informações adicionais relevantes para o revisor.
Acesse a página principal do repositório e clique no botão "Fork" no canto superior direito da página. Para mais informações. Como criar um fork
Comando git clone
seguido da URL do seu fork para clonar o seu repositório localmente.
Por exemplo:
- Em seguida, adicione seu fork como um projeto local:
git clone https://github.com/SEU_USERNAME/GitContributionOpenSource.git
Pressione enter, e uma cópia do seu fork no GitHub será criada localmente. Para mais informações Clonar repositório localmente Um pouco mais sobre repositórios remotos: About remote repositories
- Em seguida, vá para sua pasta local
cd GitContributionOpenSource
- Adicionar controles remotos git:
git remote add fork https://github.com/YOUR-USERNAME/GitContributionOpenSource.git
git remote add upstream https://github.com/leoviana00/GitContributionOpenSource.git
- Agora você pode verificar se tem seus dois controles remotos git:
git remote -v
- Com o objetivo de se manter atualizado com o repositório central:
git pull upstream main
Comando para criação de branch
git checkout -b feature-contribuicao
S
Important
Para criar e alternar para a nova branch siga as orientações de Criação de branchs
Na raiz do projeto abra o arquivo contribution_project e adicione uma linha:
Exemplo: **Testing PR NUMERO QUALQUER**
e feche o arquivo.
Comando:
git add contribution_project.md
Para mais informações sobre Staging Area
Crie um commit e adicione a mensagem indicando a alteração realizada:
git commit -m "docs(contribuicao): Update do arquivo contribuition_project"
Important
Verifique o bloco de Commits permitidos
para escrever a mensagem do seu commit de forma clara e padronizada.
Envie as alterações realizadas no seu repositório local para a branch feature-contribuicao
no seu repositório remoto com o comando:
git push origin feature-contribuicao
Atente-se para a seguir as orientações para a contribuição, principalmente:
- Seu PR deve modificar apenas o arquivo contribution_project.md (dê uma olhadinha na aba "Files changed");
- O título do commit deve atender a definição de nomenclatura descrita em
Lista de commits permitidos
.
Note
Caso não saiba como criar uma solicitação de pull request, siga as orientações definidas em Pull Requests