Wersja Bump przed rozpoczęciem nowego rozwoju lub tagowaniem wydania, co jest lepsze?

9

Niektóre projekty wypaczają wersję przed rozpoczęciem nowego rozwoju, podczas gdy inne projekty wypaczają wersję podczas oznaczania wydania.

Które podejście jest lepsze?

Jeśli numer wersji nie zostanie zmieniony na początku nowej fazy, programiści mogą zapomnieć o jego zmianie i po prostu wypuścić program.

Jeśli numer wersji zmienił się przed oznaczeniem wydania, wówczas 2 numery wersji (tag i Makefile / AssemblyInfo.cs) nie są zgodne.

git describe może dać ci v1.2.3.4-15-g1234567, jeśli bieżąca wersja jest późniejsza niż v1.2.3.4, ale już zmieniłeś pliki na v1.2.3.5

linquize
źródło

Odpowiedzi:

2

Głównym powodem numeru wersji jest to, że po wykryciu błędu można debugować za pomocą rzeczywistej wersji kodu źródłowego, w którym błąd rzeczywiście się pojawił (w ten sposób odkryć prawdziwą przyczynę błędu).

Nie ma znaczenia, jakiego schematu wersji używasz, o ile użytkownik Twojego produktu może przekazać programistowi wystarczającą ilość informacji, aby programista mógł osiągnąć ten cel.

Inne powody wersji to zespoły marketingowe i pomocnicze (czasem legalne).
Te zespoły mają swoje własne priorytety w zakresie wersjonowania.

  • Pomoc
    Chce w łatwy sposób określić kompatybilność i funkcje oraz potencjalnie stabilność (patrz schemat liczb nieparzysta / parzysta w systemie Linux).
  • Marketing
    chce za każdym razem większej liczby (najlepiej powyżej 2)
  • Legal
    Chce upewnić się, że wszystkie funkcje są zaangażowane przed zwiększeniem liczby.

We wszystkich przypadkach zastosowany schemat jest nieistotny. Tak długo, jak jesteś konsekwentny (lub masz łatwo dostępną bardzo szczegółową dokumentację dotyczącą zmian znaczenia).

Martin York
źródło
1

Korzystając z czterosegmentowych numerów wersji, takich jak zespoły .NET, wolę używać znacznika kontroli wersji, aby ustawić pierwsze trzy segmenty, a następnie czwarty segment to liczba zatwierdzeń od tego znacznika.

Na przykład wersja zostaje oznaczona „v1.2.3”. Jeśli git-describezwróci „v1.2.3-4-g1a2b3c4”, wówczas po skompilowaniu ten zestaw jest wersjonowany jako 1.2.3.4.

Jeśli znacznik zostanie później zastosowany do tej wersji, wówczas git-describezwróci „v1.2.4”, co oznacza wersję 1.2.4.0. Następnym zatwierdzeniem będzie 1.2.4.1.

Korzyści z tego systemu to:

  • Każde zatwierdzenie automatycznie zwiększa numer wersji.
  • Wersja może zostać wydana jako „.0” po prostu oznaczając ją.
  • Chociaż nie jest idealny, ten system współpracuje z DVCS, ponieważ zlicza liczbę zatwierdzeń od ostatniego tagu.
Stephen Jennings
źródło