tägitys käyttöön consumer viittauksessa provider tiedostoihin
CI Feature / Load example-gitea-env.conf to pipeline env (push) Successful in 24s
unit-tests Link to Bats reports
CI Feature / Bats tests (push) Successful in 1m46s
acc-tests Link to Cucumber reports
CI Feature / Cucumber tests (push) Successful in 1m8s
CI Feature / Report Summary (push) Successful in 5s
CI Feature / Load example-gitea-env.conf to pipeline env (push) Successful in 24s
unit-tests Link to Bats reports
CI Feature / Bats tests (push) Successful in 1m46s
acc-tests Link to Cucumber reports
CI Feature / Cucumber tests (push) Successful in 1m8s
CI Feature / Report Summary (push) Successful in 5s
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
# 9. Breaking changes kielletty
|
||||
|
||||
## Päätös
|
||||
|
||||
Providerin `v1`-tagin osoittamaa rajapintaa ei koskaan rikota.
|
||||
Consumerin `uses:`-kutsut säilyvät yhteensopivina — uusi versiotagi
|
||||
(`v2`, `v3`) luodaan VAIN jos taaksepäin yhteensopimaton muutos on
|
||||
pakottava. Käytännössä: `v1` on pysyvä, ja sitä ylläpidetään
|
||||
eteenpäin.
|
||||
|
||||
## Rajapinnan määritelmä
|
||||
|
||||
Providerin rajapinta = `config-provider.yml` ja `check-version.yml`
|
||||
workflow_call-inputit ja -outputit:
|
||||
|
||||
- Inputtien nimet, tyypit ja required-arvot eivät muutu
|
||||
- Outputtien nimet eivät katoa
|
||||
- Secret-nimet eivät muutu
|
||||
- Workflow-tiedoston nimi ja polku eivät muutu
|
||||
|
||||
Sisäinen toteutus (scriptit, checkout-logiikka, build-vaiheet) voi
|
||||
muuttua vapaasti — consumer ei ole niistä riippuvainen.
|
||||
|
||||
## Versiotagin siirto
|
||||
|
||||
Tagi `v1` siirretään automaattisesti uusimpaan onnistuneeseen
|
||||
main-commitin CI-ajoon (`tag-maintenance.yml`). Tagin nimi luetaan
|
||||
tiedostosta `CURRENT_PROVIDER_VERSION`.
|
||||
|
||||
Jos breaking change joskus tulee pakottavaksi:
|
||||
1. Päivitä `CURRENT_PROVIDER_VERSION` → `v2`
|
||||
2. Luo uusi `v2`-tagi manuaalisesti (osoittaa uuteen rajapintaan)
|
||||
3. `tag-maintenance.yml` alkaa ylläpitää `v2`:ta eteenpäin
|
||||
4. `v1`-tagia **ei poisteta** — se jää osoittamaan viimeistä
|
||||
v1-yhteensopivaa committia. `v1`:tä käyttävät consumerit
|
||||
jatkavat toimintaansa ilman muutoksia.
|
||||
5. Uudet consumerit ottavat käyttöön `@v2`:n.
|
||||
|
||||
Aktiivisesti ylläpidetään vain yhtä tagia (`CURRENT_PROVIDER_VERSION`).
|
||||
Vanhat tagit säilyvät paikoillaan taaksepäin yhteensopivuutta varten.
|
||||
|
||||
## Perustelu
|
||||
|
||||
Yhden aktiivisen tagin ylläpito on yksinkertaisempaa kuin usean
|
||||
rinnakkaisen version aktiivinen hallinta. Homelab-ympäristössä
|
||||
consumerit ovat saman ylläpitäjän hallinnassa — eri tiimien
|
||||
rinnakkaisia aktiiviversioita ei tarvita.
|
||||
|
||||
Breaking changen sattuessa vanha tagi säilyy — vanhat consumerit
|
||||
eivät hajoa. Uusi tagi otetaan käyttöön uusissa consumereissa.
|
||||
|
||||
Breaking changen kielto pakottaa suunnittelemaan rajapinnat
|
||||
huolellisesti etukäteen.
|
||||
Reference in New Issue
Block a user