Mi piace molto lo schema di Versioning semantico, ma in realtà ha senso solo per le API, poiché l'attenzione è rivolta alle interruzioni delle modifiche e alla retrocompatibilità. Per le non-API, ad es. software per l'utente finale, molte delle regole non hanno più molto senso. Ad esempio, il concetto stesso di retrocompatibilità non significa veramente nulla; l'utente sperimenta nuove funzionalità o non lo fa, meno bug o non lo fanno, ecc. Trarrebbe comunque vantaggio da uno schema chiaro per il controllo delle versioni di xyz che segue lo spirito del versioning semantico in modo che gli utenti possano avere qualche idea su cosa aspettarsi dai nuovi numeri di versione se hanno familiarità con lo schema.Esiste uno schema equivalente di Versioning semantico per software non API?
ho provato a disegnare qualcosa come:
- Bump z se apportare modifiche interne al codice (ad esempio correzioni di bug, il refactoring) che non cambiano l'esperienza dell'utente. Può includere nuove funzionalità "interne".
- Bump y se si aggiungono funzionalità che cambiano l'esperienza utente al di là delle correzioni di bug alle funzionalità correnti.
- Bump x ... ??? ... cambiamenti radicalmente diversi nell'esperienza utente? Cosa è radicalmente diverso? verifica
- sviluppo alfa iniziale come 0.0.z
- Prima pubblicazione beta-testing è impostato 0.1.0 e rimane 0.yz
- rilascio Primo utente è impostato 1.0.0
Un'altra l'idea è di fare x colpi quando le caratteristiche che sono rimosse poiché alcuni utenti potrebbero fare affidamento su di loro, ma che in alcuni casi potrebbe sembrare ingiustificato. (Dite di conoscere tutti gli utenti e tutti vogliono una funzionalità molto piccola rimossa. Passare da 1.0 a 2.0 sarebbe alquanto controintuitivo.)
Questo è più soggettivo rispetto al controllo di versione semantico perché è molto più facile da identificare oggettivamente funzionalità compatibili con le versioni precedenti e funzionalità di rottura delle API. Esistono schemi di controllo delle versioni "standardizzati" che potrei esplorare per maggiore assistenza?
Come si nota, il Semantic Versioning non riguarda la gestione delle caratteristiche soggettive/marketing del codice, ma riguarda la compatibilità oggettiva. Perché avresti bisogno o vuoi questo? – earcam