2009-05-11 8 views
5

Szukam schematu numerowania wersji/schematu/systemu dla aplikacji, która jest obecnie rozgałęziona na kilka wersji z datami wydania w stylu shell game. To sprawiło, że wersjonowanie to koszmar. Chciałbym po prostu użyć typowego Major.Minor.Revision, jednak to szybko załamie się w sposób, w jaki obecnie działają tutaj.Jaki schemat numerów wersji dla aplikacji źle zaplanowanych, rozgałęzionych i schizofrenicznych

Oto mój zapasów ...

  • 1.0.0 - wersja produkcyjna.
  • 1.0.1 - Wersja wersja wersja z poprawionymi błędami.
  • 1.1.0 - Wersja podrzędna wersja z nowymi funkcjami w lipcu (zgodność z przepisami, należy wykonać).
  • 1.2.0 - Produkcja moll wersja z nowych funkcji integracji z nie-jeszcze-jeszcze wydany-under-rozwoju System A.
  • 2.0.0 - Wersja major wersja "2.0" produktu (kod migrowany na nowszą platformę, poprawiona użyteczność).

A dla większej przyjemności planują kolejny projekt (nowe funkcje) do integracji z innym systemem.

  • 1.3.0 - Produkcja moll wersja z nowych funkcji integracji z Systemu B.

Dodatkiem do złożoności jest fakt, że nie wiemy dokładnie, kiedy (czytaj: kolejność w jakiej) te "staną się aktywne". Jeśli jeden z systemów, z którymi się integrujemy, zostanie opóźniony, wówczas zarząd zmieni harmonogram wydawania. W związku z tym wersja 1.2.0 może zostać opóźniona, a następnie kompilacja oznaczona jako 1.3.0 zostanie odrzucona jako pierwsza. Koordynacja z QA jest wystarczająco trudna już bez zmiany etykiet wersji na końcu cyklu.

Pytania? Myśli? Małe futrzaste zwierzęta?

spokój | dewde

+1

Dzięki, teraz mam ból głowy; ile alkoholu przeżywasz w ciągu dnia w pracy? – Adrien

+4

Niestety, nie piję. Chociaż może to być odpowiedź, której szukałem. – dewde

+1

To koszmar. Może mógłbyś użyć nazw kodowych dla każdego z tych pocisków, a następnie użyć numerów rewizji dla łatek w tych punktach. Tylko myśl. – BobbyShaftoe

Odpowiedz

8

Brzmi tak, jakbyś nie chciał używać numerów wersji. Możesz używać nazw krypt (Windows robił to z każdym wydaniem przed wydaniem). Zasadniczo potrzebujesz czegoś więcej niż liczb, aby odróżnić w domu której gałęzi mówisz. Wraz z wydaniem wersji możesz uderzyć Major.Minor.Pieczęć rewizyjna na nich, ale do tego czasu musisz je nazwać w sposób, który będzie rozpoznawalny.

Podziel je na gałęzie i gałęzie. Upewnij się, że wszystko zależne od wyższej gałęzi ma nazwę pochodną. Można więc wywołać gałąź ProductionMac i gałąź ProductionWindows, dzięki czemu od razu wiadomo, że nie zostaną połączone i że oba pochodzą z produkcji.

Najważniejszą rzeczą do utrzymania jest hierarchia strukturalna. Numery wersji robią to całkiem dobrze, ale musisz ciągle dodawać "." dla każdej nowej warstwy, która jest denerwująca i całkowicie nieopisywna (podobnie jak nazywanie zmiennych variableOne, variableTwo, variableThree). Upewnij się więc, że niezależnie od tego, czy wybierzesz etykietę do każdej gałęzi, nadal będzie jasne, które gałęzie są powiązane z innymi gałęziami.

+0

Możesz być zaskoczony, gdy odkryjesz, że jest to aplikacja internetowa. Wiem, że będę. – dewde

+0

Nie jestem zaskoczony, pracowałem nad (i obecnie pracuję) nad kilkoma aplikacjami internetowymi, które mają wiele oddziałów do wielu celów, aby pasowały do ​​wielu bossów i wielu sytuacji. – DevinB

+0

Długo już to robię i myślę, że Devin jest na najlepszej drodze, więc dajcie +1. I tak zabawny, jak "RabbitOfCaerbannog.Swallow.European.Newt" będzie nazwą wersji, nie jest to opisowe ... – Adrien

5

Brzmi jak numery nie pomoże dużo, pójdę z nazywania komunikaty po małych zwierząt futerkowych.

Albo, nazwij każde wydanie po projekcie, który je zainicjował ("przegląd interfejsu użytkownika", "konserwacja czerwca" itd.), A następnie przydzielij mu numer wersji tylko wtedy, gdy zostanie uruchomiony?

+3

Lub bardzo małe skały. – Adrien

+0

Zgadzam się. Zaczekaj, aż nadejdzie czas wydania, a następnie podaj numer. – NotMe

+0

Dzięki za głosy, ale myślę, że odpowiedź devinba może być lepsza - hierarchiczne nazwy kodowe. – codeulike

1

Użyłbym słownika do mapowania między numerami wewnętrznymi i zewnętrznymi numerami "wydania", a następnie wewnętrznie wykorzystał wewnętrzne numery rozwojowe i ujawnił tylko numery "wydania", kiedy jesteś gotowy, aby go zwolnić z rozwoju.

Punkty premiowe, jeśli korzystasz z mapy pośredniej przy użyciu liczb nieracjonalnych. "Jak wygląda rozwój wersji 3.14159?" "Och, nieźle, ale wciąż naprawiam błąd, który znaleźliśmy w wydaniu 2.71828183." "Co? Ten błąd?", Który miał zostać naprawiony za pomocą mniejszego wydania 1.73205! " :-)

+0

OK, to mnie rozśmieszyło. – dewde

+1

Przyjemnie ... Może weź to na wyższy poziom i używaj liczb urojonych: "Hej, jak się buduje (5 + 2j)? – Adrien

+2

Imaginalne liczby lepiej działają na vaporware. :-) –

0

Na podstawie tego, co opisujesz, zgadzam się z pierwszą parą postów. Znaczące, unikalne nazwy istotne dla zakresu/zestawu funkcji są prawdopodobnie sposobem na przejście do każdej gałęzi. Wersje numerowane wydają się rozsądne w każdym nazwanym oddziale.

To, czego potrzebujecie naprawdę potrzebujesz ... to etykietowanie w Gmailu ... do wersji!

1

Zgodnie z sugestią innych osób, użyj nie-numerycznej nazwy kodowej wewnętrznie i zastosuj numer, gdy każdy komponent zostanie zwolniony.

Dołączenie wersji/numeru wersji do wersji może pomóc w dopasowaniu tego wewnętrznego kryptonimu do zewnętrznego numeru wersji (i może pomóc w komunikacji z kontrolą jakości).

Na przykład:
RegulationCompliance r1234 odpowiada wersji 1.1.0.1234.

0

nth-ing poprzednie posty.

Mamy nasz system kompilacji, który zwiększa liczbę kompilacji # po każdej kompilacji (niezależnie od tego, czy ma zostać wydana), co jest wykorzystywane przez dewelopera/QA do identyfikacji kompilacji. Ostateczna wersja # jest WYŁĄCZNIE eksponowana na świat zewnętrzny po wydaniu QA. Tak naprawdę istnieje wiele wersji 1.3.0.x, ale tylko jedna prawdziwa wersja 1.3.0.

0

Oto kolejna alternatywa, którą rozważałam, wczoraj. Być może muszę przemyśleć to, co jest uważane za główne. Integracja z innym systemem może być niewielką ilością pracy, ale jeśli ma to wpływ na planowanie i wydawanie dat oraz wersji w tak znaczący sposób, tak jak ma to miejsce w moim przypadku, być może sam ten jest wystarczająco duży, aby uderzyć w gałąź do Stan major status. Wtedy niektóre z moich bólów głowy zostaną zminimalizowane.

Najbardziej prawdopodobne scenariusze zwolnienia wersji niezgodnych z zamówieniem dotyczą mniejszych iteracji. The major podejmują skoordynowany, międzyresortowy wysiłek. Możesz je zobaczyć na horyzoncie. drobne podkradają się do ciebie i podnoszą wszystko.

„Oto nowa zgodność przepisy. Jeśli nie iść na żywo przez July 15th, będziemy grzywną $ 500,000. dziennie.”

"Co? Kiedy je otrzymałeś?"

"W lipcu ubiegłego roku, czy nie byłeś/aś CC'd w dystrybucji ?"

** facepalm **

Nadal uważam, że odpowiedź Devinb jest najlepszy. Ale chciałem rzucić to tutaj innym w tym dylemacie.

pokój | dewde