Skip to content

Commit 7bb1084

Browse files
authored
feat(pl): update Polish specification description for clarity and consistency (#650)
1 parent cc76e5d commit 7bb1084

2 files changed

Lines changed: 190 additions & 3 deletions

File tree

config.yaml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,16 +66,17 @@ languages:
6666
pl:
6767
weight: 3
6868
languageName: "Polish"
69-
title: Konwencjonalne Commity
70-
description: Specyfikacja dodawania znaczenia czytelnego dla człowieka do commit komunikatów
69+
title: Conventional Commits
70+
description: Specyfikacja, nadająca czytelność commitom zarówno dla ludzi, jak i maszyn
7171
actions:
7272
- label: Przeczytaj specyfikację
7373
url: '#specyfikacja'
7474
- label: GitHub
7575
url: 'https://github.com/conventional-commits/conventionalcommits.org'
7676
versions:
77-
current: v1.0.0-beta.2
77+
current: v1.0.0
7878
list:
79+
- v1.0.0
7980
- v1.0.0-beta.2
8081
- v1.0.0-beta.1
8182
- v1.0.0-beta

content/v1.0.0/index.pl.md

Lines changed: 186 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,186 @@
1+
---
2+
draft: false
3+
aliases: ["/pl/"]
4+
---
5+
6+
# Conventional Commits 1.0.0
7+
8+
## Podsumowanie
9+
10+
Specyfikacja Conventional Commits to lekka konwencja dotycząca wiadomości commitów.
11+
Zapewnia prosty zestaw reguł do tworzenia przejrzystej historii commitów;
12+
co ułatwia budowanie narzędzi automatyzujących na jej podstawie.
13+
Ta konwencja współgra z [SemVer](http://semver.org),
14+
opisując funkcje, poprawki i breaking changes w wiadomościach commitów.
15+
16+
Wiadomość commita powinna być zbudowana w następujący sposób:
17+
18+
---
19+
20+
```
21+
<type>[opcjonalny scope (zakres)]: <opis>
22+
23+
[opcjonalny body (treść)]
24+
25+
[opcjonalny footer (stopka)]
26+
```
27+
28+
---
29+
30+
<br />
31+
Commit zawiera następujące elementy strukturalne, aby przekazać intencję
32+
używającym Twojej biblioteki:
33+
34+
1. **fix:** commit _typu_ `fix` naprawia błąd w kodzie (odpowiada [`PATCH`](http://semver.org/#summary) w Semantic Versioning).
35+
2. **feat:** commit _typu_ `feat` wprowadza nową funkcjonalność w kodzie (odpowiada [`MINOR`](http://semver.org/#summary) w Semantic Versioning).
36+
3. **BREAKING CHANGE:** commit, który posiada footer (stopkę) `BREAKING CHANGE:`, lub dodaje `!` po typie/scope (zakres), wprowadza zmianę, która może zmieniać użycie API - tzw. _breaking change_ (odpowiada [`MAJOR`](http://semver.org/#summary) w Semantic Versioning). BREAKING CHANGE może być częścią commita dowolnego _typu_.
37+
4. Dozwolone są _typy_ inne niż `fix:` i `feat:`, np. [@commitlint/config-conventional](https://github.com/conventional-changelog/commitlint/tree/master/%40commitlint/config-conventional) (bazujący na [Angular convention](https://github.com/angular/angular/blob/22b96b9/CONTRIBUTING.md#-commit-message-guidelines)) zaleca `build:`, `chore:`, `ci:`, `docs:`, `style:`, `refactor:`, `perf:`, `test:` i inne.
38+
5. Dozwolone są footery (stopki) inne niż `BREAKING CHANGE: <opis>`, zgodne z [git trailer format](https://git-scm.com/docs/git-interpret-trailers).
39+
40+
Dodatkowe typy nie są wspierane przez specyfikację Conventional Commits i nie mają wpływu na Semantic Versioning (chyba że zawierają BREAKING CHANGE).
41+
<br /><br />
42+
Scope (zakres) może być dodany do typu commita, aby przekazać dodatkowy kontekst i jest umieszczany w nawiasach, np. `feat(parser): add ability to parse arrays`.
43+
44+
## Przykłady
45+
46+
### Commit message z opisem i footerm (stopką) BREAKING CHANGE
47+
48+
```
49+
feat: allow provided config object to extend other configs
50+
51+
BREAKING CHANGE: `extends` key in config file is now used for extending other config files
52+
```
53+
54+
### Commit message z `!` zwracającym uwagę na breaking change
55+
56+
```
57+
feat!: send an email to the customer when a product is shipped
58+
```
59+
60+
### Commit message ze scope (zakresem) i `!` zwracającym uwagę na breaking change
61+
62+
```
63+
feat(api)!: send an email to the customer when a product is shipped
64+
```
65+
66+
### Commit message z `!` i footerm (stopką) BREAKING CHANGE
67+
68+
```
69+
chore!: drop support for Node 6
70+
71+
BREAKING CHANGE: use JavaScript features not available in Node 6.
72+
```
73+
74+
### Commit message bez body (treści)
75+
76+
```
77+
docs: correct spelling of CHANGELOG
78+
```
79+
80+
### Commit message ze scope (zakresem)
81+
82+
```
83+
feat(lang): add Polish language
84+
```
85+
86+
### Commit message z wielo-paragrafowym body (treścią) i wieloma footerami (stopkami)
87+
88+
```
89+
fix: prevent racing of requests
90+
91+
Introduce a request id and a reference to latest request. Dismiss
92+
incoming responses other than from latest request.
93+
94+
Remove timeouts which were used to mitigate the racing issue but are
95+
obsolete now.
96+
97+
Reviewed-by: Z
98+
Refs: #123
99+
```
100+
101+
## Specyfikacja
102+
103+
Słowa kluczowe „MUSI” („MUST”), „NIE MOŻE” („MUST NOT”), „WYMAGANY” („REQUIRED”), „BĘDZIE” („SHALL”), „NIE BĘDZIE” („SHALL NOT”), „POWINIEN” („SHOULD”), „NIE POWINIEN” („SHOULD NOT”), „ZALECANY” („RECOMMENDED”), „MOŻE” („MAY”) oraz „OPCJONALNY” („OPTIONAL”) w tym dokumencie należy interpretować zgodnie z [RFC 2119](https://www.ietf.org/rfc/rfc2119.txt).
104+
105+
1. Commity MUSZĄ („MUST”) być poprzedzone typem, który składa się z rzeczownika, np. `feat`, `fix` itd., po którym może wystąpić OPCJONALNY („OPTIONAL”) scope, OPCJONALNY („OPTIONAL”) `!` oraz WYMAGANY („REQUIRED”) dwukropek i spacja.
106+
2. Typ `feat` MUSI („MUST”) być używany, gdy commit dodaje nową funkcjonalność do aplikacji lub biblioteki.
107+
3. Typ `fix` MUSI („MUST”) być używany, gdy commit reprezentuje poprawkę błędu w aplikacji.
108+
4. Scope (zakres) MOŻE („MAY”) być podany po typie. Scope (zakres) MUSI („MUST”) być rzeczownikiem opisującym część bazy kodu, ujętym w nawiasy, np. `fix(parser):`
109+
5. Opis MUSI („MUST”) natychmiast następować po dwukropku i spacji po prefiksie typu/scope (zakres). Opis to krótkie podsumowanie zmian w kodzie, np. _fix: array parsing issue when multiple spaces were contained in string_.
110+
6. Dłuższy body (treść) commita MOŻE („MAY”) być podany po krótkim opisie, dostarczając dodatkowych informacji o zmianach. Body (treść) MUSI („MUST”) zaczynać się jedną pustą linią po opisie.
111+
7. Body (treść) commita jest dowolne i MOŻE („MAY”) składać się z dowolnej liczby akapitów oddzielonych nową linią.
112+
8. Jeden lub więcej footerów (stopek) MOŻE („MAY”) być podanych jedną pustą linią po body (treści). Każdy footer (stopka) MUSI („MUST”) składać się z tokena słownego, po którym następuje separator `:<spacja>` lub `<spacja>#`, a następnie wartość tekstowa (inspirowane [git trailer convention](https://git-scm.com/docs/git-interpret-trailers)).
113+
9. Token footera (stopki) MUSI („MUST”) używać `-` zamiast spacji, np. `Acked-by` (to pomaga odróżnić sekcję footerów (stopek) od wielo-paragrafowego body (treści)). Wyjątkiem jest `BREAKING CHANGE`, który MOŻE („MAY”) być również użyty jako token.
114+
10. Wartość footera (stopki) MOŻE („MAY”) zawierać spacje i nowe linie, a parsowanie MUSI („MUST”) zakończyć się, gdy napotkany zostanie kolejny poprawny token/separator footera (stopki).
115+
11. Breaking changes MUSZĄ („MUST”) być wskazane w prefiksie typu/scope commita lub jako wpis w footerze.
116+
12. Jeśli breaking change jest podany jako footer, MUSI („MUST”) składać się z wielkich liter BREAKING CHANGE, po których następuje dwukropek, spacja i opis, np. _BREAKING CHANGE: environment variables now take precedence over config files_.
117+
13. Jeśli breaking change jest podany w prefiksie typu/scope, MUSI („MUST”) być oznaczony przez `!` bezpośrednio przed `:`. Jeśli użyto `!`, `BREAKING CHANGE:` MOŻE („MAY”) być pominięty w sekcji footer, a opis commita POWINIEN („SHOULD”) opisywać breaking change.
118+
14. Typy inne niż `feat` i `fix` MOGĄ („MAY”) być używane w wiadomościach commitów, np. _docs: update ref docs._
119+
15. Jednostki informacji składające się na Conventional Commits NIE POWINNY („SHOULD NOT”) być traktowane jako rozróżniające wielkość liter przez implementatorów, z wyjątkiem BREAKING CHANGE, który MUSI („MUST”) być wielkimi literami.
120+
16. BREAKING-CHANGE MUSI („MUST”) być synonimem BREAKING CHANGE, gdy jest używany jako token w footerze.
121+
122+
## Dlaczego warto używać Conventional Commits
123+
124+
* Automatyczne generowanie listy zmian (CHANGELOG).
125+
* Automatyczne podbicia wersji semantycznej (na podstawie typów commitów).
126+
* Komunikowanie charakteru zmian współpracownikom, społeczności i innym zainteresowanym.
127+
* Wyzwalanie procesów budowania i publikacji.
128+
* Ułatwienie osobom z zewnątrz kontrybuowania do projektu poprzez bardziej uporządkowaną historię commitów.
129+
130+
## FAQ
131+
132+
### Jak postępować z wiadomościami commitów w fazie początkowego rozwoju?
133+
134+
Zalecamy traktować projekt tak, jakby był już publicznie wydany. Zazwyczaj _ktoś_ (nawet jeśli to tylko inni programiści) korzysta z Twojego oprogramowania i chce wiedzieć, co zostało naprawione, co się zmieniło, a co może nie działać.
135+
136+
### Czy typy w tytule commita powinny być pisane wielkimi czy małymi literami?
137+
138+
Możesz używać zarówno wielkich, jak i małych liter, ale najważniejsza jest konsekwencja.
139+
140+
### Co zrobić, jeśli commit pasuje do więcej niż jednego typu?
141+
142+
Jeśli to możliwe, rozdziel zmiany na osobne commity. Jedną z zalet Conventional Commits jest zachęcanie do bardziej uporządkowanej historii commitów i pull requestów.
143+
144+
### Czy to nie zniechęca do szybkiego rozwoju i iteracji?
145+
146+
To nie zniechęca do szybkiego rozwoju, ale do nieuporządkowanego działania. W dłuższej perspektywie ułatwia szybki rozwój projektów z wieloma współautorami.
147+
148+
### Czy Conventional Commits mogą ograniczać typy commitów, bo programiści będą myśleć tylko o podanych typach?
149+
150+
Conventional Commits zachęca do częstszego używania niektórych typów commitów, np. `fix`. Poza tym konwencja jest elastyczna – zespół może definiować własne typy commitów i zmieniać je w miarę potrzeb.
151+
152+
### Jaki to ma związek z SemVer?
153+
154+
Commity typu `fix` powinny skutkować wydaniem wersji `PATCH`, typu `feat` – wersji `MINOR`, a commity z `BREAKING CHANGE` (niezależnie od typu) – wersji `MAJOR`.
155+
156+
### Jak wersjonować własne rozszerzenia specyfikacji Conventional Commits?
157+
158+
Zalecamy używanie SemVer do wersjonowania własnych rozszerzeń tej specyfikacji (i zachęcamy do ich tworzenia!).
159+
160+
### Co zrobić, jeśli przez pomyłkę użyję złego typu commita?
161+
162+
* Jeśli użyłeś typu zgodnego ze specyfikacją, ale nieodpowiedniego (np. `fix` zamiast `feat`):
163+
Przed mergem lub wydaniem zalecamy użycie `git rebase -i` do edycji historii commitów. Po wydaniu sposób poprawy zależy od używanych narzędzi i procesów.
164+
165+
* Jeśli użyłeś typu *nie*zgodnego ze specyfikacją (np. `feet` zamiast `feat`):
166+
W najgorszym przypadku taki commit po prostu nie zostanie uwzględniony przez narzędzia korzystające ze specyfikacji Conventional Commits.
167+
168+
### Czy wszyscy kontrybutorzy muszą stosować Conventional Commits?
169+
170+
Nie! Jeśli korzystasz z workflow opartego na squashowaniu commitów, główni maintainerzy mogą poprawiać wiadomości commitów podczas mergowania – bez dodatkowego obciążenia dla okazjonalnych kontrybutorów. Często system git automatycznie squashuje commity z pull requesta i pozwala maintainerowi wpisać właściwą wiadomość commita podczas scalania.
171+
172+
### Jak Conventional Commits obsługuje commity typu revert?
173+
174+
Revertowanie kodu może być złożone: czy cofamy wiele commitów? Jeśli cofamy funkcję, czy następne wydanie powinno być patch?
175+
176+
Conventional Commits nie określa szczegółowo, jak obsługiwać commity typu revert – pozostawia to narzędziom i autorom logiki. Zalecamy użycie typu `revert` oraz stopki z referencją do SHA commitów, które są cofane:
177+
178+
```
179+
revert: let us never again speak of the noodle incident
180+
181+
Refs: 676104e, a215868
182+
```
183+
184+
## Podsumowanie
185+
186+
Specyfikacja Conventional Commits to lekka konwencja dotycząca wiadomości commitów, która zapewnia prosty zestaw reguł do tworzenia przejrzystej historii commitów i ułatwia budowanie narzędzi automatyzujących. Jest zgodna z SemVer, opisując funkcje, poprawki i breaking changes w commitach.

0 commit comments

Comments
 (0)