2.0 KiB
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:
- Päivitä
CURRENT_PROVIDER_VERSION→v2 - Luo uusi
v2-tagi manuaalisesti (osoittaa uuteen rajapintaan) tag-maintenance.ymlalkaa ylläpitääv2:ta eteenpäinv1-tagia ei poisteta — se jää osoittamaan viimeistä v1-yhteensopivaa committia.v1:tä käyttävät consumerit jatkavat toimintaansa ilman muutoksia.- 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.