typescript - Krever oppdatering av en pakkes avhengighet til en major-versjon en major-versjonsøkning av selve pakken?


Jeg undersøker for øyeblikket mulighetene for å oppgradere en RxJS-avhengighet fra v5.5 til v6 i denne pakken min. Dette er en relativt liten npm-pakke, og etter å ha lest migrasjonsveiledningen forventer jeg ingen problemer med å implementere den nye versjonen.

Saken er at jeg er nysgjerrig på om den nye versjonen av pakken min i seg selv bør være en ny major-versjon. Jeg har alltid tatt for gitt utsagnet om at så lenge et programvareprodukt beholder det samme offentlige grensesnittet, kan endringer i implementeringen publiseres med en minor- eller patch-versjonsøkning.

Selv om grensesnittet for pakken min bør kunne forbli uendret, håndterer jeg i dette tilfellet RxJS som en avhengighet som også helt sikkert brukes av alle som bruker pakken min. Og på grunn av inkompatibilitetene mellom RxJS-versjonene jeg veksler mellom, ville jeg mistenke at en større versjonsoppdatering er mer passende. Hvordan bør jeg resonnere rundt dette emnet?

Svar #1

Og på grunn av inkompatibilitetene mellom RxJS-versjonene jeg veksler mellom, vil jeg anta at en større versjonsoppgradering er mer passende

Dette er stort sett legitimt og ville vært bedre å oppgradere som major. Du kan vurdere 2 tilfeller av RxJS som avhengighet

  1. direkte avhengighet: hvis forbrukerapplikasjonen er avhengig av v5, kan det bryte mellom biblioteket ditt (siden det har 2 forskjellige versjoner av rx-instansen), så det kan være en stor endring.
  2. peer-avhengighet: nå vil biblioteket ditt be forbrukerapplikasjonen installere v6 i stedet for v5, det faller også tilbake til major (siden forbrukeren må oppgradere sin versjon av rx)

så i pakkene mine (f.eks. https://github.com/kwonoj/rx-sandbox/releases/tag/v1.0.0) kalte jeg det for en stor oppgradering for akkurat de grunnene.

Hvis biblioteket ditt har riktig interoperabilitet som sikrer at det fungerer på både v5 og v6, så er det definitivt ikke en stor endring.

Relaterte artikler