Russian Qt Forum
Ноябрь 24, 2024, 16:48 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2] 3   Вниз
  Печать  
Автор Тема: Автоматическое проставление версии билда  (Прочитано 27017 раз)
SASA
Гость
« Ответ #15 : Январь 12, 2010, 13:08 »

http://www.prog.org.ru/topic_5495_0.html
Записан
SABROG
Гость
« Ответ #16 : Январь 12, 2010, 14:36 »

Вопрос к знатокам pro-файлов - попробуйте решить эту же задачу с QMake.

Qt уже использует perl при сборке, так что пихайте скрипт в target.commands или если нужен вызов на этапе создания makefile'ов, то типа такого:

Код:
MYVAR = $$system(perl ...)
« Последнее редактирование: Январь 12, 2010, 14:44 от SABROG » Записан
mks56
Гость
« Ответ #17 : Февраль 20, 2010, 07:09 »

Может немного не в тему, но при использовании в Win в качестве средства контроля версий связки Subversion+TortoiseSVN в составе последней есть утилита SubVCRev, которая как раз для этого и предназначена. Правда, в качестве номера будет ревизия Subversion.
Записан
SABROG
Гость
« Ответ #18 : Февраль 20, 2010, 23:39 »

Можно сделать как это делает Qt с qmake. Написать консольную утилиту, которая делает всю черную работу. В .pro файле искать готовый исполнимый файл этой утилиты, если её нет, то из исходников сначала собирается эта утилита, затем вызов подставляется в makefile'ы. В момент сборки сначала идет вызов этой утилиты, затем собираются исходники проекта.

Только всё это ерунда. Я не могу вспомнить ни одной программы в исходниках которой был инкремент версии. И это правильно. Просто подумайте, вы скачали исходники Qt 4.6.2, сделали configure, а в заголовке какого-нибудь QtDesigner'a у вас стоит версия Qt 4.6.3, а если сделаете еще раз перекомпиляцию, то будет 4.6.4 и т.д. За версиями должен следить разработчик и коду, который увеличивает версию нечего делать в исходниках проекта, которые распространяются для других людей. Если это действительно нужно, то должно быть 2 .pro/CMakeList.txt файла, один публичный, другой приватный.
Записан
crackedmind
Гость
« Ответ #19 : Февраль 22, 2010, 07:25 »

Пример с Qt какой то странный. Зачем при каждом билде увеличивать patch version? Есть же много софта у которого 4х значный номер версий например 1.1.2.2056 Улыбающийся И иногда бывает что удобнее выпустить версию 1.1.2.2057 с багфиксом серъезной ошибки , нежели обзывать ее 1.1.3.
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #20 : Февраль 22, 2010, 09:50 »

Цитировать
И иногда бывает что удобнее выпустить версию 1.1.2.2057 с багфиксом серъезной ошибки , нежели обзывать ее 1.1.3.
У меня несколько вопросов:
1) Что означает 3 цифра?
2) Для кого удобнее?
3) Почему удобнее?
Записан

Юра.
SABROG
Гость
« Ответ #21 : Февраль 22, 2010, 09:51 »

Не согласен, это какой-то хаос с версиями будет. Всё равно что выпускать новую версию программы на каждый чих. "А что нового в новой версии?" - "Ничего, отступы п$оправил..."

Думаю лучше придерживаться GNU version scheme.
Записан
SASA
Гость
« Ответ #22 : Февраль 22, 2010, 11:48 »

Основную версию надо прописывать руками (неапример 3.2). Но в скомпилированный проект должен попасть номер, который однозначно ассоциируется с исходниками. Щёлкаешь "О программе" и видишь 3.2.23213. Удобно для поддержки. У нас в проекте 23213 - это номер ревизи в SVN.
как это можно сделать - http://www.prog.org.ru/topic_5495_0.html
Записан
ufna
Гость
« Ответ #23 : Февраль 22, 2010, 13:06 »

Хз, я давным-давно для этих целей написал микропрогу, которую среда запускает после успешного билда. Она правит .rc и радуется жизни. Ну, приходится для среды настраивать post-build event, ну и черт с ним как бы.
Записан
crackedmind
Гость
« Ответ #24 : Февраль 22, 2010, 21:43 »

Цитировать
1) Что означает 3 цифра?
А  что непонятного?
1 - major version
2 - minor version
3 - patch version
4 - build version
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #25 : Февраль 23, 2010, 03:32 »

Цитировать
4 - build version
Я вот и не понимаю зачем номер сборки, что полный бардак в конторе? Каждая пара "make clean" + "make" приводит к разным результатам работы программы?

Цитировать
Щёлкаешь "О программе" и видишь 3.2.23213. Удобно для поддержки. У нас в проекте 23213 - это номер ревизи в SVN.
Опять бардаком пахнет.
Я вот получаю от пользователя, например,  "Программа 3.2.1", лезу в гит и смотрю соответствующую метку (tag) или в SVN, тоже самое, только там это каталог отдельный.
У меня пара "make clean" + "make" на одной и той же версии, даёт один и тот же результат. И по другому быть не может
Записан

Юра.
igor_bogomolov
Гость
« Ответ #26 : Февраль 23, 2010, 04:04 »

Считать количество компиляций, на мой взгляд, действительно бессмысленно. Тем более при совместной разработке. А вот иметь возможность идентифицировать, на основе какой ревизии или коммита базируется программа, очень удобно. Так что в чем бардак, не понимаю.
Я например делаю так.

Код
Bash
static char Version[]   = \"0.1.8\";
static char BuildData[] = \"$(git log -1 --pretty="%ai %h" | awk '{ print $1 }')\";
static char Revision[]  = \"$(git log -1 --pretty="%ai %h" | awk '{ print $4 }')\";
« Последнее редактирование: Февраль 23, 2010, 04:06 от igor_bogomolov » Записан
crackedmind
Гость
« Ответ #27 : Февраль 24, 2010, 06:40 »

lit-uriy
В рамках выпуска версии "3.2.1" можно сделать несколько билдов, в каждом из которых может быть исправления или добавления чего то. Попасть к пользователю случайно может любая из них. Как ты будешь идентифицировать в каком из билдов была допущена ошибка?

Билд инфа для разработчиков чтоб удобнее было искать ошибку.

Если следовать твоей логики многие конторы ошибаются что идентифицируют версии программ по билдам))
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #28 : Февраль 24, 2010, 07:09 »

lit-uriy
В рамках выпуска версии "3.2.1" можно сделать несколько билдов, в каждом из которых может быть исправления или добавления чего то.
Как такое может быть?
Исправления отмечаются строго третьей цифрой
Минорные добавления - второй
Одновременно исправления и минорные добавления - второй.


Если следовать твоей логики многие конторы ошибаются что идентифицируют версии программ по билдам))
Совершенно верно. Это надёжный признак не надёжной разработки

Попасть к пользователю случайно может любая из них.
Это я вообще не понял, как к пользователю случайно может попасть конечный продукт?
« Последнее редактирование: Февраль 24, 2010, 07:11 от lit-uriy » Записан

Юра.
frostyland
Гость
« Ответ #29 : Октябрь 13, 2010, 10:21 »

Хмм.
А как в Qt проставляются версии надстроек, к примеру?
Что-то я не помню в описании создания плагинов какихто танцев с бубнами...

С уважением, ВВК
Записан
Страниц: 1 [2] 3   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.159 секунд. Запросов: 22.