Numerotarea versiunii software

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită pe 27 mai 2021; verificările necesită 3 modificări .

Ciclul de viață al unui program de calculator de succes poate fi foarte lung; modificările în program sunt diferite - de la remedierea unui bug la o rescrie completă. În cele mai multe cazuri, numele programului rămâne același, subnumele se schimbă - așa-numita versiune .

Versiunea programului poate fi un număr întreg ( Corel Draw 11), o secvență de numere ( JDK 1.0.3), un an ( Windows 2000 ) sau text ( Embarcadero Delphi XE). În orice caz, sistemul de versiuni este selectat în funcție de mai multe criterii:

Uneori, prezența erorilor umane în crearea numerelor de versiune duce la erori în modificările versiunii. De exemplu, dezvoltatorii pot schimba numărul versiunii chiar dacă nicio linie de cod nu a fost rescrisă pentru a da impresia falsă că s-au făcut modificări semnificative.

Scheme de numerotare

Numere secvențiale

Inițial, programele au fost numerotate cu numerele 1, 2, 3 etc. - similar cu edițiile de cărți . De asemenea, numerele de serie se pot baza pe un fel de contor tehnic (de exemplu, numărul versiunii într-un sistem de control al versiunilor ).

În zilele noastre, numerele de serie denotă programe rar lansate care sunt deja stabile. De exemplu, Corel Draw 11, Windows 10 . Pentru astfel de programe, modificările minore ale serviciului sunt de obicei „măturate sub covor” fără a schimba versiunea vizibilă (schimbând doar versiunea tehnică, disponibilă, de exemplu, din meniul „Despre”). Schimbările majore care introduc funcționalități noi, dar care nu conduc la un produs nou sunt de obicei etichetate cu o zecimală ( Windows 8.1 ).

Fracție zecimală

Din punct de vedere istoric, prima metodă de numerotare care separă modificările minore de cele majore.

Numărul versiunii este o zecimală din SUA (punctată ) . De exemplu, prima versiune primește numărul 1.0, următoarea - 1.1, cu o mică modificare - 1.11, este creat un produs nou cu funcționalitate nouă - 2.0. Cu cât fracția crește, cu atât este mai semnificativă schimbarea. Dezvoltatorii trec uneori de la versiunea 2.0 direct la 2.5, de exemplu, pentru a semnifica adăugarea unor caracteristici semnificative la un program, dar nu suficient pentru a schimba numărul major al versiunii ( Turbo Pascal 5.0 → 5.5).

Pentru versiunile preliminare, neoficiale, se folosesc numere mai mici de 1: să zicem, 0,1 sau 0,9.

Versiunile se compară după regulile fracțiilor zecimale: 0,9 < 1,0 < 1,01 < 1,1 = 1,10 < 1,11 < 1,2 = 1,20 < 2,0 < 2,5.

Succesiunea numerelor

Această metodă este adoptată, de exemplu, în API-ul Windows . Versiunea constă din mai multe numere (de obicei trei) separate printr-un punct: de exemplu, 1.5.2. Prima este versiunea majoră ( major ), a doua este cea minoră ( minoră ), a treia este modificări minore ( întreținere , micro ).

Când unul dintre numere crește, toate după ce sunt resetate la zero: 1.0.0, 1.0.1, 1.0.2, 1.1.0, 1.2.0, 1.2.1, 2.0.0 ... Ultimul zero poate fi omis: 1.0.0 = 1.0.

Bibliotecile Unix folosesc schema de versiuni current.revision.age . Actual este numărul actual de API, revizuirea este contorul versiunilor din același API, vârsta este diferența dintre cea mai recentă și prima versiune a API-ului acceptat [1] .

Pentru a determina vechimea versiunilor, mai întâi se compară versiunile mai vechi, apoi cele mai tinere, apoi cele micro ca numere întregi: < 2.0.0.

Uneori, al patrulea număr este numărul de ansamblu cu numerotare continuă. Această cifră poate crește cu una cu fiecare lansare (1.0.0.1 < 1.0.1.2 < 1.0.2.3 < 1.1.0.4), sau poate fi luată de la un contor tehnic (compilări , versiuni de noapte , versiuni de cod în sistemul de control al versiunilor  - de exemplu, 1.5.2.7682). În Microsoft Office, al patrulea număr codifică data lansării [2] .

Din nou, 1.0 este considerată prima versiune oficială; 0.1 sau 0.9 sunt pre-lansări.

Scrisoarea ca versiune minoră

Uneori se folosește o literă în locul celui de-al treilea număr. Deci, când a fost găsită o eroare în DotA 6.42 , noua versiune a primit numele 6.42b. Aceasta înseamnă: jocul rămâne același, cu aceeași plasare a obstacolelor și același echilibru , dar cu un bug remediat. Alte remedieri de erori sunt denumite 6.42c, 6.42d etc.

Etapa de dezvoltare

Dacă dezvoltatorul trebuie să se bazeze pe testeri independenți , versiunea poate indica nivelul de maturitate al programului: alfa, beta, candidat pentru lansare, versiune finală, remediere a erorilor (premiere de serviciu ).

De exemplu, 2.0 alpha1 < 2.0 alpha2 < 2.0 beta < 2.0 rc1 < 2.0 < 2.0 sr1.

Există diferite scheme pentru desemnarea etapelor de dezvoltare. De exemplu, al treilea număr ar putea însemna:

De exemplu:

În interiorul companiei, poate fi indicată și stadiul de dezvoltare (de exemplu, 1.2.3 < 1.2.3r9 < 1.2.4), în timp ce nu este cazul în versiunile oficiale - de exemplu, pentru a evita confuzia între testeri sau pentru a emite unele versiunea către client - poate instabilă, dar corectând eroarea acestuia.

Între seriile 1.0 și 2.6.x, nucleul Linux a folosit numere impare pentru versiunile beta și numere pare pentru versiunile stabile. De exemplu, Linux 2.3 a fost seria de dezvoltare, iar Linux 2.4 a fost seria de lansări stabile în care a evoluat Linux 2.3. Numărul de lansare al nucleului Linux a fost scris mai întâi cu numărul versiunii minore și apoi cu numărul de lansare în ordine crescătoare. De exemplu Linux 2.4.0 → Linux 2.4.22. De la lansarea versiunii 2.6 în 2004, Linux nu mai folosește acest sistem, ciclul de lansare este mult mai scurt acum. Acum pur și simplu măresc al treilea număr, folosind al patrulea dacă este necesar.

Același sistem par-impar este folosit de alte produse cu ciclu lung, cum ar fi GNOME.

Titlu alfanumeric

Cel mai des folosit software cu o istorie lungă și versiuni rar lansate ( Windows Vista ).

Dacă contorul de versiuni a mers prea departe și trebuie resetat, se folosesc și codurile alfabetice: Adobe Photoshop 7.0 < CS < CS2 < ... < CS6 < CC < CC 2014.

Uneori, pe lângă versiunea obișnuită, se folosește un subnume alfanumeric: Ubuntu 9.04 Jaunty Jackalope , Embarcadero Delphi 10.2 Tokyo .

Data

Anul lansării este folosit cel mai des în software-ul cu versiuni rare, de exemplu: Windows Server 2003 , Microsoft Office 2014.

Dezvoltatorii proiectului Wine au folosit mai întâi datele la numerotarea versiunilor, au indicat anul, luna și ziua lansării: „Wine 20040505”. Wine folosește în prezent numerotarea „standard”, cea mai recentă versiune din 2010 fiind 1.2. Compania Ubuntu Linux folosește o schemă de numerotare similară, de exemplu, versiunea din octombrie 2010 este numerotată Ubuntu 10.10. O schemă similară este utilizată în prezent de Microsoft pentru a număra actualizările Windows 10, deși acestea au de obicei un număr de versiune cu 1 mai mic decât numărul lunii, de exemplu, Fall Creators Update (1709) a fost lansat pe 17 octombrie 2017 și Aprilie 2018 Update ( 1803) în ciuda numărului „03” din titlu a fost lansat în aprilie 2018.

Când se utilizează date în numerotarea versiunilor, ar trebui utilizată schema ISO an-lună-zi (acest lucru facilitează compararea versiunilor pentru vechime), iar cratima poate fi omisă.

Versiuni interne

Adesea, programul are atât un nume comercial, cât și o versiune internă compilată conform tuturor regulilor. De exemplu, Java SE 5.0 are versiunea internă 1.5.0, Windows 7 are  versiunea 6.1 [3] . Diferite ansambluri de fișiere Windows pot fi denumite, de exemplu, 6.1.7600.16385.

Versiuni tehnice similare sunt comparate cu eticheta unui soldat [2] . La fel ca pe câmpul de luptă, acestea sunt necesare în cazuri de urgență - când programul nu funcționează așa cum ar trebui și dezvoltatorul trebuie contactat.

Scheme exotice

Donald Knuth numere versiuni ale sistemului de compunere computerizată Τ Ε Χ cu aproximări succesive ale numărului : 3,0 < 3,1 < 3,14 etc. Ultimul număr de lansare stabil este 3.141592653. Versiunile unei alte creații a lui Donald Knuth din limbajul METAFONT sunt numerotate prin aproximații la numărul e . Versiunea din martie 2008 a fost numerotată 2.718281.

SuSE Linux a început să conteze versiunea cu 4.2, ca referință la celebra carte a lui Douglas Adams .

Semnificația numerelor de versiune

Versiunea 1.0 ca etapă cheie de dezvoltare

Programele comerciale încep de obicei să-și numeroteze versiunile la 1.0. Se consideră chiar că versiunea 1.0 este exclusiv brută și de aceea este necesar să ajungem la 1.2 sau chiar 2.0 cât mai curând posibil.

În software-ul liber și cu sursă deschisă, 1.0 este considerat punctul în care un program este considerat gata pentru utilizare pe scară largă de către nespecialiști. În același timp, versiunile inițiale ale programului sunt numerotate ca 0.1, 0.2 etc. FreeDOS a ajuns la versiunea 1.0 în 2006 - când DOS nu era practic folosit nicăieri. Emulatorul de sloturi MAME nu va ajunge niciodată la versiunea 1.0, deoarece istoria sloturilor continuă până în zilele noastre.

Marketing, superstiție și TOC

Pentru ca numele să arate mai bine, software-ul comercial trebuie să implice agenții de marketing. De exemplu, tetrafobia este obișnuită în țările asiatice , astfel încât numărul 4 este evitat în numerele de versiune. În Europa, numărul 13 este considerat ghinionist, este fie sărit, fie înlocuit cu X3.

Dacă istoricul programului este foarte lung, uneori trebuie resetat: Adobe Photoshop 7.0 < 8.0 < CS < CS2.

Unul dintre motivele pentru care nu a existat Winamp 4 a fost jocul de cuvinte : Winamp 4 skin și engleză.  preput  - „preput” [4] .

Omisiuni în versiuni

Uneori, un dezvoltator omite un număr de versiune pentru a ține pasul cu concurenții sau cu alte produse de la aceeași companie: de exemplu, Microsoft Access a sărit direct de la 2.0 la 7.0. Netscape Communicator a omis versiunea 5, deoarece Internet Explorer a ajuns la 6.0; pe lângă versiunea 5.0 în versiunile de testare marcate ale User-Agent ale browserului Mozilla Suite .

Sun Solaris a scăzut prima cifră: 2,8 și 2,9 au fost denumite 8 și 9 în materialele de marketing; Java SE 1.5.0 și 1.6.0 sunt ca Java 5 și 6. Slackware Linux a sărit de la versiunea 4 direct la versiunea 7 în 1999.

Microsoft Windows 10 apare după 8.1.

PHP sare de la 5 la 7, motivul este că versiunea 6 s-a dovedit a fi populară, dar irealizabilă, iar multe dintre inovațiile sale au fost atașate celei de-a 5-a ramuri [5] .

Algoritmi de precedență versiuni

Adesea trebuie să determinați programatic care dintre cele două versiuni este mai veche - de exemplu, „ bulele ” sunt acceptate în Windows din 2000 [6] , iar în versiunile anterioare trebuie să o faceți diferit. O astfel de verificare se face conform unor reguli destul de complicate: de exemplu, dacă versiunea este o fracție zecimală, mai întâi trebuie să comparați părțile întregi ca numere; dacă sunt egale, atunci cele fracționale sunt ca șirurile . Dacă versiunea este un triplu sau un cvadruplu de numere, atunci numerele sunt comparate pe rând până când se stabilește o inegalitate.

Deoarece algoritmii prea complecși sunt plini de erori [7] și nu există întotdeauna timp pentru a scrie teste unitare , adesea se descurcă cu opțiuni simplificate: de exemplu, construiesc un număr lung folosind câmpuri de biți (1.2.3.4 → 01020304 16 ) ; sau comparați versiunile ca șiruri în ordine lexicografică . Primul nu va funcționa dacă unul dintre numere depășește 256 (1.0.257 < 1.1.0, dar 010101 16 > 010100 16 ), al doilea nu va funcționa dacă versiunea 10 este lansată (9.5 < 10.0, dar „9.5" > „10.0”).

Uneori, astfel de simplificări joacă o glumă crudă: în primii ani ai popularității Windows , s-a dovedit că multe programe au verificat incorect versiunea sistemului de operare, refuzând să funcționeze sub 4.0. Prin urmare, Windows 95 și Windows 98 aveau versiuni interne 3.95 și 3.98 [8] .

Trucuri similare au fost folosite în User-Agent al browserului Opera la trecerea de la versiunea 9.64 la 10.00. Acest lucru se datorează faptului că unele site-uri care răspund la User-Agent fie au comparat numere ca șiruri (10,0 < 9,5) fie au luat prima cifră (10,0 = 1,0) [9] . Dezvoltatorii au trebuit să folosească notația Opera/9.80 în loc de Opera/10.00 și să adauge numărul real al versiunii la sfârșitul UserAgent [10] . Era planificat ca până la a 11-a versiune a UserAgent să capete un aspect familiar, dar acest truc a fost folosit până la trecerea la motorul Blink (începutul anului 2013 - în ciuda faptului că tranziția la a 10-a versiune a avut loc în 2009). ).

PHP are o funcție specială version_compare()pentru determinarea precedenței versiunii [11] .

Aplicarea schemelor de numerotare software în alte domenii ale culturii

Link- uri externe

Vezi și

Note

  1. Versiune . Consultat la 17 noiembrie 2017. Arhivat din original la 27 septembrie 2019.
  2. 1 2 Ce se află într-un număr de versiune, oricum? . Consultat la 18 noiembrie 2017. Arhivat din original la 1 decembrie 2017.
  3. Întrebări frecvente despre implementarea Windows 7 . Consultat la 29 octombrie 2017. Arhivat din original la 1 decembrie 2017.
  4. Întrebări frecvente - Ajutor Winamp (link descendent) . Preluat la 6 mai 2011. Arhivat din original la 19 decembrie 2013. 
  5. Următoarea versiune de PHP se va numi PHP 7/Habrahabr . Preluat la 20 mai 2015. Arhivat din original la 20 mai 2015.
  6. Structura NOTIFYICONDATApe MSDN . Preluat la 7 mai 2011. Arhivat din original la 12 iunie 2011.
  7. Detalierea funcției CheckWin32Versionpe Embarcadero Quality Central (link în jos) . Preluat la 7 mai 2011. Arhivat din original la 29 iulie 2013. 
  8. Verificări incorecte ale numărului de versiune . Preluat la 6 mai 2011. Arhivat din original la 16 ianuarie 2013.
  9. Andreas Bovens. Modificări în formatul șirului operatorului Opera  (ing.)  (link indisponibil) (27 mai 2009). - Descrierea motivelor modificărilor în formatul AserAgent. Data accesului: 18 iunie 2011. Arhivat din original la 22 februarie 2012.
  10. De exemplu:Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.8.131 Version/11.11
  11. version_compare() . Consultat la 17 noiembrie 2013. Arhivat din original la 23 aprilie 2014.