воскресенье, 27 сентября 2015 г.

Делаем, как взрослые, указываем номер версии программы

В перл номер версии хранится в глобальной переменной $VERSION, доступ к которой можно получить явно $ModuleName::VERSION, либо используя стандартный для всех модулей метод: ModuleName->VERSION.

Есть несколько способов нумерации модулей. Рассмотрим, два наиболее распространённых способов это АА.АА и АА.АА.АА версии, где А - это любое число.

Первый способ весьма прост, так как версии данного типа весьма легко сравнивать.
$\="\n";

my $version_1 = 0.01;
my $version_2 = 0.001;

print "It will be printed" if $version_1 > $version_2;

Второй способ предоставляет больше возможностей для указания того, насколько сильной изменился функционал программы, но с ним сложнее проводить манипуляции. Для этого в перл имеется специальный модуль-прагма под названием version, с помощью которого операции по сравнению версий и по преобразованию из AA.AA в AA.AA.AA производятся весьма легко, подробнее о его возможностях можно узнать здесь.
my $a = version->declare('v0.21');
my $b = version->declare('v0.3');

print version->parse($a)->normal;
print version->parse($b)->normal;

print "...and it also." if version->parse($b) < version->parse($a);

Как вы видите версия под номером v0.21 ( указывать v перед номером версии советуют
для эстетических целей и для ясности ) больше чем версия под номером v0.3, так как 21 больше чем 3, поэтому в данном варианте версии указываются в виде строки в кавычках, так как это уже не число, как было в первом варианте. Пример выше состоял из одного числа после точки (0.21 и 0.3 соответственно), только для простоты, чтобы показать неочевидные вещи которые происходят при сравнивании версий модулей. Как правило же, используется вариант версии, где используется три числа (иногда четыре) для нумерации программы (например 0.21.8 и 0.3.12)

Принцип выбора числа, которое мы должны будем увеличить на единицу ( как правило ), зависит от того, насколько значительные изменения были произведены в коде, причем цифры, которые идут за изменяемой, необходимо обнулять.

Например, текущая версия v1.2.3. И возможные варианты изменений:

  • если мы полностью перепишем функционал программы, то мы превратим её в версию v2.0.0;
  • если же мы добавим/изменим небольшой функционал, то версия соответственно примет вид v1.3.0;
  • а если же мы добавим немного документации,либо исправим запятую, либо название переменной, то нам необходимо будет увеличить последнюю цифру, т.е. будет так v1.2.4.

Подробнее же об особенностях нумерации версий можно прочитать здесь.

Комментариев нет:

Отправить комментарий