Skip to content

Commit 43b3f04

Browse files
committed
fix: change contributing
1 parent 38c73fc commit 43b3f04

File tree

1 file changed

+73
-37
lines changed

1 file changed

+73
-37
lines changed

CONTRIBUTING.md

Lines changed: 73 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,30 @@
11
<!-- BEGIN_DOCS -->
22

3-
<div align="center">
4-
53
<a name="readme-top"></a>
64

5+
[◀ Voltar](README.md)
6+
7+
<div align="center">
8+
79
<img alt="contributing" src="https://github.com/lpsm-dev/lpsm-dev/blob/98272299ea611ba50254b132490ea385149dc5cf/.github/assets/contributing.png" width="225"/>
810

911
**Diretrizes para o processo de contribuição**
1012

1113
</div>
1214

13-
Seja bem-vindo e obrigado por considerar contribuir com este projeto! Ler e seguir nossas diretrizes vai te ajudar a entrar com mais rapidez em nosso fluxo de trabalho, além tornar o processo de contribuição mais fácil e eficaz. Contamos com seu apoio!
15+
Obrigado por considerar contribuir com este projeto! Seguir nossas diretrizes facilitará seu onboarding e tornará sua colaboração mais eficaz.
16+
17+
# Sumário
18+
19+
<details>
20+
<summary><strong>Expandir</strong></summary>
1421

15-
# Summary
22+
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
23+
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
1624

17-
- [Summary](#summary)
18-
- [Práticas](#práticas)
25+
- [Práticas](#pr%C3%A1ticas)
26+
- [Geral](#geral)
27+
- [Comunicação](#comunica%C3%A7%C3%A3o)
1928
- [Setup](#setup)
2029
- [DevBox](#devbox)
2130
- [Direnv](#direnv)
@@ -29,16 +38,20 @@ Seja bem-vindo e obrigado por considerar contribuir com este projeto! Ler e segu
2938
- [Reviewing](#reviewing)
3039
- [Versioning Process](#versioning-process)
3140

41+
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
42+
3243
<p align="right">(<a href="#readme-top">back to top</a>)</p>
3344

45+
</details>
46+
3447
# Práticas
3548

36-
**Geral**
49+
## Geral
3750

3851
- Se você não conseguir continuar uma tarefa, informe imediatamente sua equipe. A comunicação rápida evita atrasos e permite que outras pessoas te ajudem a resolver os problemas com mais rapidez.
3952
- Não reinvente a roda. Se você pesquisou e viu que já existe uma solução bem estabelecida para o seu problema, use-a. Isso economiza tempo e recurso.
4053

41-
**Comunicação**
54+
## Comunicação
4255

4356
- Minimize o uso de IA na comunicação diária com a equipe. Valorizamos interações reais e genuínas.
4457
- Seja objetivo na sua comunição quando precisa de ajuda (isso não significa ser rude rsrs).
@@ -54,22 +67,24 @@ Para você começar a contribuir, é essencial configurar seu ambiente de trabal
5467
- **Configurar variáveis de ambiente**: Ajuste as variáveis de ambiente para garantir que seu sistema esteja preparado para rodar o projeto.
5568
- **Executar scripts de automação**: Rode os scripts fornecidos para configurar dependências, inicializar bancos de dados e outras tarefas automatizadas.
5669

57-
> [!NOTE] Lembre-se: cada projeto tem seu próprio contexto e necessidades!
70+
> [!NOTE]
71+
> Lembre-se: cada projeto tem seu próprio contexto e necessidades!
5872
5973
Pensando nisso, elaboramos as etapas abaixo para te guiar.
6074

6175
## DevBox
6276

6377
O **DevBox** é uma ferramenta CLI que cria ambientes de desenvolvimento isolados e reproduzíveis, sem precisar usar containers Docker ou a linguagem Nix de forma nativa.
6478

65-
> [!NOTE] Use essa opção se você não quiser instalar muitas ferramentas CLI diretamente em seu ambiente de trabalho.
79+
> [!NOTE]
80+
> Use essa opção se você não quiser instalar muitas ferramentas CLI diretamente em seu ambiente de trabalho.
6681
6782
Siga essas etapas para configurar seu ambiente:
6883

6984
- Instale o [devbox](https://www.jetify.com/devbox/docs/installing_devbox/):
7085

7186
```bash
72-
curl -fsSL <https://get.jetpack.io/devbox> | bash
87+
curl -fsSL https://get.jetpack.io/devbox | bash
7388
```
7489

7590
- Inicialize seu projeto:
@@ -101,7 +116,8 @@ devbox shell
101116

102117
Com isso, podemos garantir que todos no projeto tenham as mesmas ferramentas nas mesmas versões, necessárias para o processo de desenvolvimento.
103118

104-
> [!NOTE] Se você precisar de mais detalhes sobre essa configuração, verifique o arquivo [devbox.json](devbox.json) do seu projeto. Caso não exista, crie ele seguindo o passo a passo descrito acima.
119+
> [!NOTE]
120+
> Se você precisar de mais detalhes sobre essa configuração, verifique o arquivo [devbox.json](devbox.json) do seu projeto. Caso não exista, crie ele seguindo o passo a passo descrito acima.
105121
106122
## Direnv
107123

@@ -131,21 +147,24 @@ direnv allow
131147

132148
Seguindo essas etapas, quando você navegar para a pasta do seu projeto, as variáveis de ambiente serão carregadas automaticamente e o **DevBox** será inicializado.
133149

134-
> [!NOTE] Se você precisar de mais detalhes sobre esse configuração, verifique o arquivo [.envrc](.envrc) do seu projeto.
150+
> [!NOTE]
151+
> Se você precisar de mais detalhes sobre esse configuração, verifique o arquivo [.envrc](.envrc) do seu projeto.
135152
136153
## Task
137154

138155
A ferramenta **task** oferece uma maneira conveniente de definir e gerenciar tarefas específicas do projeto, facilitando a automatização de scripts comuns e simplificando os fluxos de trabalho de desenvolvimento.
139156

140-
> [!NOTE] É semelhante à ferramenta `make`, que é utilizada principalmente para automatizar tarefas.
157+
> [!NOTE]
158+
> É semelhante à ferramenta `make`, que é utilizada principalmente para automatizar tarefas.
141159
142160
Siga essas etapas para configurar seu ambiente:
143161

144162
- Certifique-se de que você instalou o comando `task` seguindo as etapas de configuração do **DevBox**.
145163
- Caso não tenha seguido, acesse a documentação do [task](https://taskfile.dev/installation/) e siga as instruções para instalá-lo.
146164
- Execute o comando `task` no diretório raiz do projeto para ver todos os comandos disponíveis.
147165

148-
> [!NOTE] Se você precisar de mais detalhes sobre cada tarefa definida, verifique o arquivo [Taskfile.yaml](Taskfile.yaml) do seu projeto. Caso não exista, crie ele seguindo o passo a passo descrito acima.
166+
> [!NOTE]
167+
> Se você precisar de mais detalhes sobre cada tarefa definida, verifique o arquivo [Taskfile.yaml](Taskfile.yaml) do seu projeto. Caso não exista, crie ele seguindo o passo a passo descrito acima.
149168
150169
<p align="right">(<a href="#readme-top">back to top</a>)</p>
151170

@@ -171,19 +190,19 @@ Veja como é organizado esse formato de commits:
171190

172191
Descreve o tipo de alteração do commit. Temos as seguintes opções:
173192

174-
| Tipo | Descrição |
175-
| --- | --- |
176-
| **feat** | Um novo recurso (adição de um novo componente, fornecimento de novas variantes para um componente existente, etc.). |
177-
| **fix** | Uma correção de bug (correção de um problema de estilo, resolução de um bug na API de um componente etc.). Ao atualizar dependências que não sejam de desenvolvimento, marque suas alterações como `fix`. |
178-
| **docs** | Alterações somente na documentação. |
179-
| **style** | Alterações que não afetam o significado do código (espaços em branco, formatação, falta de ponto e vírgula etc.). Não deve ser usado para alterações na interface do usuário, pois essas são alterações significativas; em vez disso, considere usar `feat` ou `fix`. |
180-
| **refactor** | Uma alteração de código que não corrige um bug nem adiciona um recurso. |
181-
| **perf** | Uma alteração de código que melhora o desempenho. |
182-
| **test** | Adição de testes ausentes ou correção de testes existentes. |
183-
| **build** | Alterações que afetam o sistema de build. |
184-
| **ci** | Alterações em arquivos e scripts de configuração de CI/CD. |
185-
| **chore** | Outras alterações que não modificam arquivos de origem ou de teste. Use esse tipo ao adicionar ou atualizar dependências de desenvolvimento. |
186-
| **revert** | Reverte um commit anterior. |
193+
| Tipo | Descrição |
194+
| ------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
195+
| **feat** | Um novo recurso (adição de um novo componente, fornecimento de novas variantes para um componente existente, etc.). |
196+
| **fix** | Uma correção de bug (correção de um problema de estilo, resolução de um bug na API de um componente etc.). Ao atualizar dependências que não sejam de desenvolvimento, marque suas alterações como `fix`. |
197+
| **docs** | Alterações somente na documentação. |
198+
| **style** | Alterações que não afetam o significado do código (espaços em branco, formatação, falta de ponto e vírgula etc.). Não deve ser usado para alterações na interface do usuário, pois essas são alterações significativas; em vez disso, considere usar `feat` ou `fix`. |
199+
| **refactor** | Uma alteração de código que não corrige um bug nem adiciona um recurso. |
200+
| **perf** | Uma alteração de código que melhora o desempenho. |
201+
| **test** | Adição de testes ausentes ou correção de testes existentes. |
202+
| **build** | Alterações que afetam o sistema de build. |
203+
| **ci** | Alterações em arquivos e scripts de configuração de CI/CD. |
204+
| **chore** | Outras alterações que não modificam arquivos de origem ou de teste. Use esse tipo ao adicionar ou atualizar dependências de desenvolvimento. |
205+
| **revert** | Reverte um commit anterior. |
187206

188207
## Scope
189208

@@ -193,24 +212,28 @@ Descreve o tipo de alteração do commit. Temos as seguintes opções:
193212
feat(login): add route
194213
```
195214

196-
> [!NOTE] Use a convenção [PascalCase](https://www.dio.me/articles/camel-case-vs-pascal-case) na hora de definir seu escopo (`scope`).
215+
> [!NOTE]
216+
> Use a convenção [PascalCase](https://www.dio.me/articles/camel-case-vs-pascal-case) na hora de definir seu escopo (`scope`).
197217
198218
## Description
199219

200220
É o campo onde você diz o que foi feito no commit, porém de forma breve. Para isso, recomendamos que:
201221

202222
- Priorize descrições em inglês.
203-
- Use o imperativo, tempo presente: "change", não "changed" ou "changed".
223+
- Use o imperativo, tempo presente: "change", não "changed" ou "changing".
204224
- Não coloque a primeira letra em maiúscula.
205225
- Não coloque ponto (.) no final.
206226

207-
> [!NOTE] Cada tipo de commit tem um efeito sobre a próxima release que você for lançar.
227+
> [!NOTE]
228+
> Cada tipo de commit tem um efeito sobre a próxima release que você for lançar.
229+
230+
Existem mais opções, porém essas são as mais comuns. Para mais detalhes, consulte a [documentação oficial](https://www.conventionalcommits.org/en/v1.0.0/).
208231

209232
<p align="right">(<a href="#readme-top">back to top</a>)</p>
210233

211234
# MR Process
212235

213-
Ao criar um MR (merge request), é uma boa ideia definir o seu título seguindo a mesma convenção utilizada nas mensagens de commit. Dessa forma, se seu MR for sofrer um **squash** após a mesclagem, o maintainer poderá usar o título como a mensagem final do commit, criando um histórico formato, enxuto e linear.
236+
Ao criar um Merge Request (MR), recomenda-se definir o título conforme a mesma convenção adotada para mensagens de commit. Isso garante que, em caso de **squash merge**, o título do MR possa ser diretamente utilizado como a mensagem final do commit, preservando a padronização do histórico. Essa prática contribui para um log de alterações mais estruturado, conciso e linear, facilitando a rastreabilidade e automação de releases em fluxos de desenvolvimento que seguem padrões como **Conventional Commits**.
214237

215238
## Steps
216239

@@ -240,8 +263,8 @@ git push origin sua-nova-branch
240263

241264
- Abra uma solicitação de MR:
242265

243-
- No GitLab, navegue até o repositório e abra uma nova Merge Request da sua branch para a branch de produção `main`.
244-
- Adicione uma descrição clara do que foi feito e qualquer informação relevante para a revisão.
266+
- Navegue até o repositório e abra uma nova Merge Request da sua branch para a branch de produção `main`.
267+
- Adicione uma descrição clara do que foi feito e qualquer informação relevante para o processo de review.
245268
- Defina o título usando commits convencionais.
246269
- Marque a opção de remover a branch de origem após a mesclagem.
247270
- Marque a opção para squash dos commits.
@@ -258,24 +281,37 @@ git push origin sua-nova-branch
258281

259282
Seguir este processo garante que as alterações sejam revisadas adequadamente e que o código de produção permaneça estável e com qualidade.
260283

261-
> [!NOTE] Se você tiver vários commits em seu PR que resolvem o mesmo problema, **squash os commits**.
284+
> [!NOTE]
285+
> Se você tiver vários commits em seu PR, é recomendável usar a opção de squash para manter um histórico limpo e organizado.
262286
263287
## Reviewing
264288

265289
Durante o processo de revisão do MR, siga essas políticas:
266290

267291
- Seja respeitoso e construtivo.
268-
- Sempre realize a revisão em pares.
292+
- Busque realizar um code review completo, verificando a lógica, a qualidade do código e a conformidade com os padrões estabelecidos.
269293
- Sugira alterações em vez de simplesmente comentar os problemas encontrados.
270294
- Exigimos pelo menos um aprovador no MR, que não seja o autor.
271295
- Se não tiver certeza sobre algo, pergunte ao autor do MR.
272296
- Se você estiver satisfeito com as alterações, aprove o MR.
297+
- Preze por pair programming, sempre que possível.
273298

274299
<p align="right">(<a href="#readme-top">back to top</a>)</p>
275300

276301
# Versioning Process
277302

278-
Este projeto segue a especificação [SemVer](https://semver.org/). Consulte a documentação para obter mais detalhes.
303+
Esse projeto segue a especificação [SemVer](https://semver.org/). Ou seja, utilizamos um sistema de versionamento semântico para controlar as versões do projeto. Isso nos ajuda a comunicar melhor as mudanças feitas no código e a garantir a compatibilidade entre as versões. Esse sistema é composto por três números (`x.x.x`), que representam respectivamente:
304+
305+
1. **Major**: Quando fazemos alterações incompatíveis com a versão atual. Ex: `1.2.0 → 2.0.0`
306+
2. **Minor**: Quando adicionamos funcionalidades de forma compatível com a versão atual. Ex: `1.2.0 → 1.3.0`
307+
3. **Patch**: Quando corrigimos bugs de forma compatível com a versão atual. Ex: `1.2.0 → 1.2.1`
308+
309+
Nós usamos o [Semantic Release](https://semantic-release.gitbook.io/semantic-release/) para automatizar esse processo de versionamento. Ele analisa os commits desde a última versão e determina automaticamente o próximo número da versão com base nas alterações feitas. Isso garante que as versões sejam consistentes e sigam as regras do SemVer.
310+
311+
Vale ressaltar que o Semantic Release é acionado automaticamente quando um MR é mesclado na branch `main` ou quando existe um commit direto na branch `main`. Portanto, é importante seguir as convenções de commit para garantir que as versões sejam geradas corretamente.
312+
313+
> [!NOTE]
314+
> O Semantic Release é um ferramental poderoso, e possui um sistema de plugins que podem ser configurados para atender as necessidades específicas do projeto. Para mais detalhes, consulte a [documentação oficial](https://semantic-release.gitbook.io/semantic-release/).
279315
280316
<p align="right">(<a href="#readme-top">back to top</a>)</p>
281317
<!-- END_DOCS -->

0 commit comments

Comments
 (0)