@govbr-ds/commitlint-config 4.6.1 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +187 -51
- package/package.json +15 -8
- package/src/.commitlintrc.js +51 -94
- package/src/czg.cjs +22 -0
package/README.md
CHANGED
|
@@ -1,82 +1,218 @@
|
|
|
1
|
-
# GovBR-DS -
|
|
1
|
+
# GovBR-DS - Commitlint Config
|
|
2
2
|
|
|
3
3
|
## Objetivo
|
|
4
4
|
|
|
5
|
-
Compartilhar
|
|
5
|
+
Compartilhar uma convenção de commits clara e verificável entre os projetos do GovBR-DS.
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
Além de validar o formato das mensagens, esta configuração prepara os commits para:
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
- gerar changelogs legíveis;
|
|
10
|
+
- calcular versões automaticamente com Semantic Release;
|
|
11
|
+
- relacionar commits a issues do GitLab;
|
|
12
|
+
- explicar ao próximo desenvolvedor o contexto e o impacto da mudança.
|
|
10
13
|
|
|
11
|
-
|
|
12
|
-
npm install --save-dev @govbr-ds/commitlint-config husky @commitlint/cz-commitlint
|
|
13
|
-
```
|
|
14
|
+
## Formato
|
|
14
15
|
|
|
15
|
-
|
|
16
|
+
As mensagens seguem o formato do [Conventional Commits](https://www.conventionalcommits.org/pt-br/v1.0.0/):
|
|
16
17
|
|
|
17
|
-
|
|
18
|
+
```text
|
|
19
|
+
tipo(escopo): resumo
|
|
18
20
|
|
|
19
|
-
|
|
20
|
-
export default {
|
|
21
|
-
extends: ['@govbr-ds/commitlint-config'],
|
|
22
|
-
}
|
|
23
|
-
```
|
|
21
|
+
corpo opcional com contexto, causa e impacto
|
|
24
22
|
|
|
25
|
-
|
|
23
|
+
rodapé opcional, como Closes #123
|
|
24
|
+
```
|
|
26
25
|
|
|
27
|
-
|
|
28
|
-
"scripts": {
|
|
29
|
-
"commit": "git-cz",
|
|
30
|
-
},
|
|
31
|
-
"config": {
|
|
32
|
-
"commitizen": {
|
|
33
|
-
"path": "@commitlint/cz-commitlint"
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
```
|
|
26
|
+
Exemplo:
|
|
37
27
|
|
|
38
|
-
|
|
28
|
+
```text
|
|
29
|
+
fix(datepicker): validar data máxima antes de emitir o evento
|
|
39
30
|
|
|
40
|
-
|
|
41
|
-
npx commitlint --edit ${1}
|
|
42
|
-
```
|
|
31
|
+
A data máxima era ignorada quando o valor vinha do teclado, permitindo um estado inválido.
|
|
43
32
|
|
|
44
|
-
|
|
33
|
+
Closes #123
|
|
34
|
+
```
|
|
45
35
|
|
|
46
|
-
|
|
47
|
-
"scripts": {
|
|
48
|
-
"prepare": "husky || true"
|
|
49
|
-
}
|
|
50
|
-
```
|
|
36
|
+
### Tipo
|
|
51
37
|
|
|
52
|
-
|
|
38
|
+
Indica a intenção da mudança. Escolha o tipo pelo efeito da alteração, não pelo arquivo modificado.
|
|
53
39
|
|
|
54
|
-
|
|
40
|
+
| Tipo | Quando usar | Efeito no release |
|
|
41
|
+
| ------------ | -------------------------------------------------------- | ------------------------------- |
|
|
42
|
+
| `feat` | Nova capacidade ou comportamento compatível | `minor` |
|
|
43
|
+
| `fix` | Correção de comportamento incorreto | `patch` |
|
|
44
|
+
| `docs` | Documentação, exemplos e guias | `patch` |
|
|
45
|
+
| `perf` | Melhoria de desempenho sem alterar a API | `patch` |
|
|
46
|
+
| `refactor` | Reorganização interna sem mudar comportamento | `patch` |
|
|
47
|
+
| `removed` | Remoção definitiva de API ou recurso público | `major` |
|
|
48
|
+
| `revert` | Reversão de uma mudança publicada | `minor` |
|
|
49
|
+
| `deprecated` | Marcação de API ou recurso como obsoleto | Sem release automático |
|
|
50
|
+
| `build` | Build, bundler ou dependências de desenvolvimento | Sem release automático |
|
|
51
|
+
| `chore` | Manutenção interna sem efeito no produto | Sem release automático |
|
|
52
|
+
| `ci` | Pipelines, jobs e automações de CI | Sem release automático |
|
|
53
|
+
| `lint` | Formatação e estilo sem mudança executável | Sem release automático |
|
|
54
|
+
| `ops` | Atividades operacionais de design ou desenvolvimento | Sem release automático |
|
|
55
|
+
| `site` | Site ou documentação publicada fora do pacote | Sem release automático |
|
|
56
|
+
| `test` | Criação ou ajuste de testes | Sem release automático |
|
|
57
|
+
| `wip` | Trabalho incompleto; não deve chegar à branch de release | Sem release automático |
|
|
58
|
+
| `bump` | Atualização manual de versão | Evite; prefira Semantic Release |
|
|
55
59
|
|
|
56
|
-
|
|
57
|
-
- Para facilitar a aprovação da sua contribuição, escolha um título curto, simples e explicativo para o MR, e siga os padrões da nossa [wiki](https://gov.br/ds/wiki/ 'Wiki').
|
|
58
|
-
- Quer contribuir com o projeto? Confira o nosso guia [como contribuir](../../CONTRIBUTING.md 'Como contribuir?').
|
|
60
|
+
Os tipos sem release continuam disponíveis para manter o histórico consistente e permitir que o changelog diferencie mudanças de produto de manutenção interna.
|
|
59
61
|
|
|
60
|
-
|
|
62
|
+
### Escopo
|
|
61
63
|
|
|
62
|
-
|
|
64
|
+
Indica a área alterada. Use um nome curto, específico e estável:
|
|
63
65
|
|
|
64
|
-
|
|
66
|
+
```text
|
|
67
|
+
fix(button): corrigir foco após o clique
|
|
68
|
+
feat(tokens): adicionar cor semântica de informação
|
|
69
|
+
docs(install): explicar instalação via pnpm
|
|
70
|
+
```
|
|
65
71
|
|
|
66
|
-
|
|
72
|
+
O escopo não deve ser `minor` ou `patch` para forçar uma versão. A versão é determinada pelo tipo e pelas breaking changes.
|
|
67
73
|
|
|
68
|
-
|
|
74
|
+
### Resumo
|
|
69
75
|
|
|
70
|
-
|
|
76
|
+
Escreva um resumo curto, objetivo e no infinitivo:
|
|
71
77
|
|
|
72
|
-
|
|
78
|
+
```text
|
|
79
|
+
feat: adicionar suporte a tema escuro
|
|
80
|
+
fix(menu): corrigir fechamento ao pressionar Escape
|
|
81
|
+
```
|
|
73
82
|
|
|
74
|
-
|
|
83
|
+
Evite ponto final, frases vagas e referências sem contexto como `fix: issue 123`.
|
|
75
84
|
|
|
76
|
-
|
|
85
|
+
### Corpo
|
|
77
86
|
|
|
78
|
-
|
|
87
|
+
Use o corpo quando o título não explicar a decisão. Responda, quando fizer sentido:
|
|
88
|
+
|
|
89
|
+
- qual era o problema;
|
|
90
|
+
- por que ele acontecia;
|
|
91
|
+
- qual comportamento foi alterado;
|
|
92
|
+
- qual impacto existe para quem usa o projeto.
|
|
93
|
+
|
|
94
|
+
Ao usar o `czg`, digite `|` para inserir uma quebra de linha manualmente. Se não
|
|
95
|
+
for necessário separar o texto, não use esse caractere.
|
|
96
|
+
|
|
97
|
+
### Issues
|
|
98
|
+
|
|
99
|
+
Relacione a issue no rodapé:
|
|
100
|
+
|
|
101
|
+
```text
|
|
102
|
+
Closes #123
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
Use `Closes`, `Fixes` ou `Resolves` quando o commit deve fechar a issue após o merge. Use apenas `#123` quando a issue deve ser relacionada, mas permanecer aberta.
|
|
106
|
+
|
|
107
|
+
### Breaking changes
|
|
108
|
+
|
|
109
|
+
Uma breaking change altera ou remove um contrato que consumidores existentes dependem. Exemplos:
|
|
110
|
+
|
|
111
|
+
- remover uma propriedade, evento, método ou componente;
|
|
112
|
+
- tornar obrigatório um campo antes opcional;
|
|
113
|
+
- mudar o formato de retorno;
|
|
114
|
+
- alterar comportamento esperado de forma incompatível.
|
|
115
|
+
|
|
116
|
+
Marque a mudança no cabeçalho ou no rodapé e explique como migrar:
|
|
117
|
+
|
|
118
|
+
```text
|
|
119
|
+
feat(api)!: tornar token obrigatório
|
|
120
|
+
|
|
121
|
+
BREAKING CHANGE: o token não é mais aceito como propriedade opcional. Envie-o no cabeçalho Authorization.
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
Toda breaking change gera uma versão `major`, independentemente do tipo escolhido.
|
|
125
|
+
|
|
126
|
+
No `czg`, responda que o commit é uma breaking change para abrir o campo de
|
|
127
|
+
incompatibilidade e migração. Esse campo não aparece para commits compatíveis.
|
|
128
|
+
|
|
129
|
+
## Instalação
|
|
130
|
+
|
|
131
|
+
```bash
|
|
132
|
+
pnpm add -D @govbr-ds/commitlint-config @commitlint/cli czg husky
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
O `czg` é opcional: instale-o apenas se quiser usar o prompt interativo. O
|
|
136
|
+
`@commitlint/cli` é necessário para validar os commits, e o `husky` é necessário
|
|
137
|
+
apenas para executar essa validação automaticamente no commit local.
|
|
138
|
+
|
|
139
|
+
## Configuração
|
|
140
|
+
|
|
141
|
+
Crie `.commitlintrc.js` na raiz:
|
|
142
|
+
|
|
143
|
+
```javascript
|
|
144
|
+
export default {
|
|
145
|
+
extends: ['@govbr-ds/commitlint-config'],
|
|
146
|
+
}
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
O exemplo usa `export default`; portanto, o projeto deve usar módulos ES (`"type":
|
|
150
|
+
"module"` no `package.json`). Em projetos que não usam módulos ES, utilize a
|
|
151
|
+
extensão de configuração compatível com a versão do commitlint instalada.
|
|
152
|
+
|
|
153
|
+
Para usar o `czg`, crie `cz.config.cjs` na raiz e reutilize a configuração
|
|
154
|
+
compartilhada:
|
|
155
|
+
|
|
156
|
+
```javascript
|
|
157
|
+
module.exports = require('@govbr-ds/commitlint-config/czg')
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
Adicione o czg ao `package.json`:
|
|
161
|
+
|
|
162
|
+
```json
|
|
163
|
+
{
|
|
164
|
+
"scripts": {
|
|
165
|
+
"commit": "czg --config=./cz.config.cjs",
|
|
166
|
+
"prepare": "husky"
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
Inicialize o Husky e crie o hook `.husky/commit-msg`:
|
|
172
|
+
|
|
173
|
+
```bash
|
|
174
|
+
pnpm exec husky init
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
No arquivo `.husky/commit-msg`, use:
|
|
178
|
+
|
|
179
|
+
```bash
|
|
180
|
+
pnpm exec commitlint --edit "$1"
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
Adicione o script `prepare` caso ele ainda não exista, para que o Husky seja
|
|
184
|
+
configurado após a instalação das dependências:
|
|
185
|
+
|
|
186
|
+
```json
|
|
187
|
+
{
|
|
188
|
+
"scripts": {
|
|
189
|
+
"prepare": "husky"
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
Execute `pnpm commit` (ou o script equivalente configurado no projeto) para
|
|
195
|
+
abrir o prompt interativo. O `czg` reutiliza os tipos compartilhados, oferece a
|
|
196
|
+
marcação de breaking change e gera a mensagem; o hook do commitlint continua
|
|
197
|
+
sendo a validação obrigatória, inclusive para mensagens criadas manualmente.
|
|
198
|
+
|
|
199
|
+
O hook impede mensagens inválidas no commit local. O pipeline deve executar a mesma validação para proteger commits criados sem os hooks locais.
|
|
200
|
+
|
|
201
|
+
## Exemplos rápidos
|
|
202
|
+
|
|
203
|
+
```text
|
|
204
|
+
feat(header): adicionar navegação responsiva
|
|
205
|
+
fix(input): preservar valor ao exibir mensagem de erro
|
|
206
|
+
docs(tokens): explicar token de superfície
|
|
207
|
+
refactor(core): separar parser de validação
|
|
208
|
+
test(select): cobrir navegação por teclado
|
|
209
|
+
ci: atualizar imagem do pipeline
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
## Contribuição
|
|
213
|
+
|
|
214
|
+
Antes de abrir um Merge Request, consulte o guia de contribuição e mantenha esta documentação alinhada com as regras do pacote release. Alterações em tipos, regras ou impacto SemVer devem incluir exemplos de mensagens válidas e inválidas.
|
|
79
215
|
|
|
80
216
|
## Licença
|
|
81
217
|
|
|
82
|
-
|
|
218
|
+
Este projeto utiliza a licença MIT.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@govbr-ds/commitlint-config",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "5.0.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Padrão de commits para projetos do Padrão Digital de Governo",
|
|
6
6
|
"keywords": [
|
|
@@ -18,17 +18,24 @@
|
|
|
18
18
|
},
|
|
19
19
|
"license": "MIT",
|
|
20
20
|
"author": "SERPRO (http://serpro.gov.br/)",
|
|
21
|
+
"publishConfig": {
|
|
22
|
+
"access": "public"
|
|
23
|
+
},
|
|
21
24
|
"type": "module",
|
|
22
25
|
"main": "src/.commitlintrc.js",
|
|
26
|
+
"exports": {
|
|
27
|
+
".": "./src/.commitlintrc.js",
|
|
28
|
+
"./czg": "./src/czg.cjs"
|
|
29
|
+
},
|
|
23
30
|
"files": [
|
|
24
|
-
"src/.commitlintrc.js"
|
|
31
|
+
"src/.commitlintrc.js",
|
|
32
|
+
"src/czg.cjs"
|
|
25
33
|
],
|
|
26
34
|
"dependencies": {
|
|
27
|
-
"@commitlint/cli": "^
|
|
28
|
-
"@commitlint/config-conventional": "^
|
|
29
|
-
"@commitlint/
|
|
30
|
-
"@commitlint/
|
|
31
|
-
"@
|
|
32
|
-
"commitizen": "^4.3.1"
|
|
35
|
+
"@commitlint/cli": "^21.2.1",
|
|
36
|
+
"@commitlint/config-conventional": "^21.2.0",
|
|
37
|
+
"@commitlint/format": "^21.2.0",
|
|
38
|
+
"@commitlint/lint": "^21.2.0",
|
|
39
|
+
"@govbr-ds/commit-types": "5.0.0"
|
|
33
40
|
}
|
|
34
41
|
}
|
package/src/.commitlintrc.js
CHANGED
|
@@ -1,109 +1,88 @@
|
|
|
1
|
+
import commitTypesModule from '@govbr-ds/commit-types'
|
|
2
|
+
|
|
3
|
+
const { commitTypes } = commitTypesModule
|
|
4
|
+
|
|
5
|
+
const promptTypes = Object.fromEntries(
|
|
6
|
+
commitTypes.map(({ value, description, semverBump }) => [
|
|
7
|
+
value,
|
|
8
|
+
{
|
|
9
|
+
description: `${description}. ${
|
|
10
|
+
semverBump === 'none'
|
|
11
|
+
? 'Não gera uma nova versão por conta própria.'
|
|
12
|
+
: `Gera uma nova versão do tipo ${semverBump}.`
|
|
13
|
+
}`,
|
|
14
|
+
},
|
|
15
|
+
])
|
|
16
|
+
)
|
|
17
|
+
|
|
1
18
|
export default {
|
|
2
19
|
defaultIgnores: true,
|
|
3
20
|
extends: ['@commitlint/config-conventional'],
|
|
4
21
|
formatter: '@commitlint/format',
|
|
5
22
|
helpUrl: 'https://gov.br/ds/wiki/git-gitlab/guias/commit/',
|
|
6
23
|
ignores: [(commit) => commit.includes('[skip ci]')],
|
|
24
|
+
|
|
7
25
|
prompt: {
|
|
8
26
|
messages: {
|
|
9
|
-
emptyWarning: '
|
|
10
|
-
lowerLimitWarning: '
|
|
11
|
-
max: '
|
|
12
|
-
min: '
|
|
13
|
-
skip: '(
|
|
14
|
-
upperLimitWarning: '
|
|
27
|
+
emptyWarning: 'Este campo é obrigatório. Preencha-o conforme a orientação.',
|
|
28
|
+
lowerLimitWarning: 'O conteúdo está abaixo do número mínimo de caracteres.',
|
|
29
|
+
max: 'Use no máximo %d caracteres.',
|
|
30
|
+
min: 'Use pelo menos %d caracteres.',
|
|
31
|
+
skip: '(opcional)',
|
|
32
|
+
upperLimitWarning: 'O conteúdo ultrapassa o número máximo de caracteres.',
|
|
15
33
|
},
|
|
34
|
+
|
|
16
35
|
questions: {
|
|
17
36
|
body: {
|
|
18
|
-
description: '
|
|
37
|
+
description: 'Explique o contexto, a motivação e o impacto da mudança. Use \\n para inserir quebras de linha.',
|
|
19
38
|
},
|
|
39
|
+
|
|
20
40
|
breaking: {
|
|
21
|
-
description: '
|
|
41
|
+
description: 'Resuma a mudança incompatível e informe quais consumidores precisarão adaptar o código.',
|
|
22
42
|
},
|
|
43
|
+
|
|
23
44
|
breakingBody: {
|
|
24
45
|
description:
|
|
25
|
-
'
|
|
46
|
+
'Descreva o comportamento anterior, o novo comportamento e as etapas necessárias para migração. Use \\n para inserir quebras de linha.',
|
|
26
47
|
},
|
|
48
|
+
|
|
27
49
|
isBreaking: {
|
|
28
|
-
description: '
|
|
50
|
+
description: 'Esta mudança quebra a compatibilidade com versões anteriores?',
|
|
29
51
|
},
|
|
52
|
+
|
|
30
53
|
isIssueAffected: {
|
|
31
|
-
description: '
|
|
54
|
+
description: 'Este commit está relacionado a uma issue ou deve encerrá-la?',
|
|
32
55
|
},
|
|
56
|
+
|
|
33
57
|
issues: {
|
|
34
|
-
description:
|
|
35
|
-
'Liste a(s) issue(s) (Veja https://docs.gitlab.com/ee/user/project/issues/managing_issues.html#closing-issues-automatically)',
|
|
58
|
+
description: 'Informe as issues relacionadas. Exemplos: #123, Closes #123 ou Fixes #123.',
|
|
36
59
|
},
|
|
60
|
+
|
|
37
61
|
issuesBody: {
|
|
38
62
|
description:
|
|
39
|
-
'
|
|
63
|
+
'Explique como este commit atende à issue e quais pontos foram resolvidos. Use \\n para inserir quebras de linha.',
|
|
40
64
|
},
|
|
65
|
+
|
|
41
66
|
scope: {
|
|
42
|
-
description:
|
|
67
|
+
description:
|
|
68
|
+
'Informe a área afetada usando um nome curto, específico e estável. Exemplos: button, table ou package.json.',
|
|
43
69
|
},
|
|
70
|
+
|
|
44
71
|
subject: {
|
|
45
|
-
description:
|
|
72
|
+
description:
|
|
73
|
+
'Descreva objetivamente a mudança no infinitivo, sem ponto final e sem repetir o tipo. Exemplo: adicionar estado loading.',
|
|
46
74
|
},
|
|
75
|
+
|
|
47
76
|
type: {
|
|
48
77
|
description:
|
|
49
|
-
'
|
|
50
|
-
enum:
|
|
51
|
-
build: {
|
|
52
|
-
description: 'Mudanças no sistema de build (ex: npm, node, webpack, vite...)',
|
|
53
|
-
},
|
|
54
|
-
bump: {
|
|
55
|
-
description: 'Commit sem alterações, apenas atualização de versão',
|
|
56
|
-
},
|
|
57
|
-
chore: {
|
|
58
|
-
description: 'Alterações diversas que não se encaixam em outros tipos',
|
|
59
|
-
},
|
|
60
|
-
ci: {
|
|
61
|
-
description: 'Alterações nos arquivos e scripts de configuração de ambiente (Gitlab, Pipelines, Permissões...)',
|
|
62
|
-
},
|
|
63
|
-
deprecated: {
|
|
64
|
-
description: 'Marca o recurso como obsoleto. Provavelmente será removido em uma próxima versão',
|
|
65
|
-
},
|
|
66
|
-
docs: {
|
|
67
|
-
description: 'Atividades de documentação (tutorial, guia, etc...)',
|
|
68
|
-
},
|
|
69
|
-
feat: {
|
|
70
|
-
description: 'Nova feature, recurso, elemento, comportamento, etc...',
|
|
71
|
-
},
|
|
72
|
-
fix: {
|
|
73
|
-
description: 'Correção em feature, recurso, elemento, comportamento, etc...',
|
|
74
|
-
},
|
|
75
|
-
lint: {
|
|
76
|
-
description: 'Mudanças que não alteram o significado/comportamento (espaços, formatação, semi-vírgulas ausentes...)',
|
|
77
|
-
},
|
|
78
|
-
ops: {
|
|
79
|
-
description: 'Atividades operacionais relacionadas a design e desenvolvimento',
|
|
80
|
-
},
|
|
81
|
-
perf: {
|
|
82
|
-
description: 'Melhoria de desempenho (tempo de execução, tamanho, carregamento...)',
|
|
83
|
-
},
|
|
84
|
-
refactor: {
|
|
85
|
-
description: 'Altera o conteúdo sem mudar o resultado final (ex: organização de pastas, camadas...)',
|
|
86
|
-
},
|
|
87
|
-
removed: {
|
|
88
|
-
description: 'Recurso excluído definitivamente do projeto',
|
|
89
|
-
},
|
|
90
|
-
revert: {
|
|
91
|
-
description: 'Reverte um commit',
|
|
92
|
-
},
|
|
93
|
-
site: {
|
|
94
|
-
description: 'Alterações relacionadas ao site ou documentação online',
|
|
95
|
-
},
|
|
96
|
-
test: {
|
|
97
|
-
description: 'Atividades relacionadas a testes',
|
|
98
|
-
},
|
|
99
|
-
wip: {
|
|
100
|
-
description: 'Trabalho ainda não finalizado',
|
|
101
|
-
},
|
|
102
|
-
},
|
|
78
|
+
'Escolha o tipo que melhor representa a intenção da mudança. Ele pode influenciar o changelog e a próxima versão.',
|
|
79
|
+
enum: promptTypes,
|
|
103
80
|
},
|
|
104
81
|
},
|
|
105
82
|
},
|
|
106
|
-
|
|
83
|
+
|
|
84
|
+
// Estas regras validam apenas o formato da mensagem.
|
|
85
|
+
// O impacto no SemVer é definido por commitTypes e pelo release-config.
|
|
107
86
|
rules: {
|
|
108
87
|
'body-full-stop': [0, 'always', '.'],
|
|
109
88
|
'body-leading-blank': [2, 'always'],
|
|
@@ -122,29 +101,7 @@ export default {
|
|
|
122
101
|
'subject-full-stop': [0, 'always', '.'],
|
|
123
102
|
'subject-max-length': [0, 'always', Infinity],
|
|
124
103
|
'type-case': [0, 'always', 'lower-case'],
|
|
125
|
-
'type-enum': [
|
|
126
|
-
2,
|
|
127
|
-
'always',
|
|
128
|
-
[
|
|
129
|
-
'build',
|
|
130
|
-
'bump',
|
|
131
|
-
'chore',
|
|
132
|
-
'ci',
|
|
133
|
-
'deprecated',
|
|
134
|
-
'docs',
|
|
135
|
-
'feat',
|
|
136
|
-
'fix',
|
|
137
|
-
'lint',
|
|
138
|
-
'ops',
|
|
139
|
-
'perf',
|
|
140
|
-
'refactor',
|
|
141
|
-
'removed',
|
|
142
|
-
'revert',
|
|
143
|
-
'site',
|
|
144
|
-
'test',
|
|
145
|
-
'wip'
|
|
146
|
-
],
|
|
147
|
-
],
|
|
104
|
+
'type-enum': [2, 'always', commitTypes.map(({ value }) => value)],
|
|
148
105
|
'type-max-length': [2, 'always', Infinity],
|
|
149
106
|
},
|
|
150
107
|
}
|
package/src/czg.cjs
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
const { commitTypes } = require('@govbr-ds/commit-types')
|
|
2
|
+
|
|
3
|
+
module.exports = {
|
|
4
|
+
types: commitTypes.map(({ value, description }) => ({
|
|
5
|
+
value,
|
|
6
|
+
name: `${value}: ${description}`,
|
|
7
|
+
})),
|
|
8
|
+
messages: {
|
|
9
|
+
type: 'Selecione o tipo que melhor representa a intenção da mudança:',
|
|
10
|
+
scope: 'Informe a área, o componente ou o arquivo afetado (opcional):',
|
|
11
|
+
subject: 'Resuma objetivamente a mudança no infinitivo e sem ponto final:',
|
|
12
|
+
body: 'Explique o contexto, a motivação e o impacto da mudança (opcional; use | para quebrar linha):',
|
|
13
|
+
breaking:
|
|
14
|
+
'Descreva a incompatibilidade introduzida e as etapas necessárias para migração (use | para quebrar linha):',
|
|
15
|
+
footer: 'Informe issues relacionadas, referências ou outros metadados (opcional):',
|
|
16
|
+
confirmCommit: 'Deseja confirmar esta mensagem de commit?',
|
|
17
|
+
},
|
|
18
|
+
markBreakingChangeMode: true,
|
|
19
|
+
// czg usa Infinity para quebrar o texto palavra por palavra. Este limite alto
|
|
20
|
+
// mantém a formatação em uma linha na prática sem limitar a validação.
|
|
21
|
+
breaklineNumber: 1000,
|
|
22
|
+
}
|