Tkabber Wiki

Fossil disclaimer
Login

Не было печали — апдейтов накачали...

© башорг

Содержание

Введение

Увы, но у подавляющего большинства начинающих пользователей, пожелавших по какой-либо причине "попробовать" "версию из репозитория" (а то и "пересесть" на неё), есть серьёзное непонимание того, что такое "альфа версия" применительно к разработке программного обеспечения и под чем вы "подписываетесь", начиная использовать версию, находящуюся в разработке. Сюда же относятся вопросы в стиле "как мне получить версию из Fossil???", которые обычно остаются неотвеченными в комнате Ткаббера.

Итак, в начале — основа-основ: "зрелое" программное обеспечение обычно разрабатывается циклически, путём повторения трёх этапов:

  1. Добавление новой функциональности (новых "фич"), улучшение старой. Самый главный и самый длинный период. Обычно про ПО, находящееся на этом этапе разработки, говорят, что оно "в альфа версии". Код в данном состоянии предназначен для "обкатки" только разработчиками и очень опытными пользователями.
  2. "Заморозка" следует после того, как ведущий ("мейнтейнер") проекта принял решение выпустить следующую стабильную версию. На этом этапе новая функциональность не добавляется (за исключением тривиальных вещей), только исправляются найденные ошибки. Обычно в этот период выпускается несколько "бета" версий, предназначенных для тестирования широкой публикой.
  3. Выпуск. После того, как ведущий проекта считает, что все очевидные ошибки найдены и исправлены, следует выпуск ("релиз") новой стабильной версии ПО.

Применительно к Ткабберу, эти три стадии определяют три варианта "доступности" Ткаббера для использования:

Разработка 

Код официально доступен только через репозиторий.

"Заморозка" и широкое тестирование 

Код доступен в виде стандартных архивов с "бета версиями"; они содержат то, что обычно (не совсем верно) называется "исходниками Ткаббера".

Релиз 

Код доступен в виде "архива с исходниками"; он является единственной "референсной" формой распространения Ткаббера. Однако разработчики Ткаббера обычно выпускают Ткаббер в виде специальных дистрибутивов, предназначенных для удобного использования Ткаббера на конкретных системах и пригодных даже для совершенно неопытных пользователей, например, старпаков и инсталляторов.

"На переднем крае"

Настало время поподробнее остановиться на "нестабильной версии", которая "живёт" в репозитории системы управления версиями Fossil.

Существует несколько мифов и непониманий, связанных с нестабильной версией Ткаббера.

Во-первых, несмотря на то, что Ткаббер разрабатывается таким способом, что "голова" репозитория обычно вполне работоспособна, иногда туда вносятся баги. Иногда это весьма серьёзные баги, которые вполне могут приводить к частичной потери трудоспособности Ткаббером до тех пор, пока баг не будет исправлен. Непонимание того, что "нестабильная" версия в любой момент "вдруг" может оказаться неработающей — одна из главных проблем начинающих. Причем проблемы могуть быть самыми разными. Например, в одночасье может быть изменена система хранения протоколов чата, а код для автоматической конвертации старого формата в новый ещё не будет написан.

Посему совершенно неправильным является отношение к репозиторию просто как к неудобному (или, наоборот, удобному) способу получать новую функциональность в Ткаббере. Если что-то ломается, вы оказываетесь предоставлены сами себе.

Во-вторых, если вы не разработчик, и если вы, прочитав первый пункт, согласны быть "подопытным кроликом" (а наличие таких пользователей на самом деле весьма важно для разработчиков), вы принимаете на себя ответственность1 действовать по определённой схеме. Самое главное: вы обязательно должны читать логи коммитов в репозиторий или файл ChangeLog — без этого вы становитесь мишенью для несуществующих багов: изменившуюся функциональность или её конфликт со старыми настройками, плагинами и чем угодно ещё вы воспринимаете как баг и тратите время разработчиков на ковыряния с вашей проблемой.

Итак, подытожим: чтобы следить за нестабильной версией и помогать разработчикам выявлять ошибки, вы должны:

  1. Знать матчасть. В нашем случае это означает:
    1. Понимание принципа работы систем управления версиями и принципа работы Fossil; в частности, вы должны совершенно чётко представлять себе, что происходит, когда вы делаете fossil up и что означают сообщения клиента в ходе выполнения этой операции.
    2. Умение "откатывать" версию вашего рабочего каталога назад, если вы наткнулись на баг в свежем коммите, который препятствует вашей нормальной работе с Ткаббером.
  2. Читать логи изменений в обязательном порядке. Сопоставлять наблюдаемые вами изменения в работе, проблемы Ткаббера с этой информацией.
  3. Уметь сообщать о багах так, чтобы разработчикам было понятно, о чём идёт речь.

Изучить матчасть поможет свободно доступная книга по Fossil. Если же всё изложенное — не для вас, не мешайте разработчикам разрабатывать и "вкладывайтесь" в тестирование на другой стадии — на стадии "пререлиза", о которой рассказано ниже.

(!) Сделать: Объяснить отсутствие "ночных билдов"

(!) Сделать: Объяснить почему Fossil, а не...

Пререлизы

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

Беты, как правило, не содержат очевидных проблем, и их использование относительно безопасно для ваших нервов.

Тестирование пререлизных версий очень полезно для продукта. Имейте в виду, что проблемы в уже выпущенной стабильной версии свободного ПО — это проблемы, прежде всего, самих пользователей, так как за разработчиками редко стоит некая организация, способная организовать систематическое тестирование (при помощи оплаченной команды специалистов). Так что если вы хотите быть уверены, что стабильная версия будет работать так, как надо, тестируйте её бета-версии.

(!) Сделать: написать про необходимость иметь "каноническую" инсталляцию для тестирования "исходников"


1 Понятно, что в мире free software (и в мире проприетарного ПО, кстати, тоже) никто никому ничего "по настоящему" не обязан и ничего не должен. Здесь мы имеем в виду чисто "социальные" и моральные обязательства, которые влечёт за собой участие в программном проекте.

В помощь начинающему тестеру

Установка

В Линукс

Установка в линуксе проблем вызвать не должна. В Дебиане это вообще проще простого:

sudo apt-get install fossil

В Виндовс

Клиента, работающего из командной строки, можно скачать с домашней страницы проекта. При желании можно установить какой-нибудь графический фронтенд к нему, например Fuel-scm.

Первые шаги

Самый первый шаг, который нужно предпринять, чтобы начать тестирование альфа-версии, описан на официальном сайте Ткаббера. Он сводится к клонированию при помощи клиента Fossil репозитория с исходным кодом Ткаббера куда-нибудь на жёсткий диск и открытию локального репозитория во вновь созданную директорию:

fossil clone https://chiselapp.com/user/sgolovan/repository/tkabber tkabber.fossil
fossil clone https://chiselapp.com/user/sgolovan/repository/tclxmpp tclxmpp.fossil
mkdir tkabber
cd tkabber
fossil open ../tkabber.fossil
mkdir tclxmpp
cd tclxmpp
fossil open --nested ../../tclxmpp.fossil

Этот набор команд скачает весь репозиторий Ткаббера и вспомогательной библиотеки TclXMPP, сохранит их в файлы tkabber.fossil и tclxmpp.fossil, а также создаст рабочую копию основной разрабатываемой ветки в каталоге в каталог tkabber, который вы сами создаете. Если вам нужны плагины, можете скачать и их:

fossil clone https://chiselapp.com/user/sgolovan/repository/tkabber-plugins tkabber-plugins.fossil
mkdir tkabber-plugins
cd tkabber-plugins
fossil open ../tkabber-plugins.fossil

Если вам нужны неофициальные плагины, содержащиеся в соответствующем репозитории (там можно найти далеко не все плагины, описанные на этой вики), качайте их отсюда:

fossil clone https://chiselapp.com/user/sgolovan/repository/tkabber-contrib tkabber-contrib.fossil
mkdir tkabber-contrib
cd tkabber-contrib
fossil open ../tkabber-contrib.fossil

Запуск тоже прост (предположим, Ткаббер установлен в ~/bin/tkabber):

cd ~/bin/tkabber
./tkabber.tcl

Ещё одна полезная команда — update. После скачивания Ткаббера нет нужды клонировать и снова открывать репозиторий каждый раз. Достаточно зайти в каталог Ткаббера или его плагинов и набрать

fossil up

(в случае самого Ткаббера следует запустить эту же команду еще раз в подкаталоге tclxmpp).

Если вам нужно откатиться на какую-то конкретную ревизию, пишите что-нибудь вроде

fossil up 3b4cf2fc81

где набор букв соответствует нужной вам ревизии. Его можно подсмотреть, запустив команду fossil timeline или в графическом интерфейсе fossil ui.

Подробности использования этих основных команд можно узнать, запросив помощи, например:

fossil help clone
fossil help open
fossil help up

Первые шаги при использовании альфа-версии Ткаббера под виндами почти ничем не отличаются от линуксовых, разве что вместо набора (а то и копи-пейста) одной строчки вам придётся самостоятельно продираться сквозь дебри графического интерфейса или штудировать довольно объёмный мануал.

(!) Сделать: Впрочем, если какой-нибудь доброволец разовьёт тему виндовс, возражений не будет.

Как параллельно работать с обычной и альфа-версией Ткаббера

Удобно иметь в системе установленную из репозиториев ОС стабильную версию Ткаббера, а каталог с альфой забросить куда-нибудь к себе в домашний каталог (например, в ~/tkabber-dev — меньше геморроя с правами на запись в файлы, если потребуется или захочется что-нибудь допилить. Однако следует помнить, что в любом случае будут читаться рабочие конфигурационные файлы, лежащие в вашем домашнем каталоге: ~/.tkabber/config.tcl и ~/.tkabber/custom.tcl, а у разных версий Ткаббера могут быть разные идеи о доступных настройках, и потому совместно использовать одни и те же конфигурационные файлы сильно разными версиями Ткаббера может и не получиться.

Для решения этой проблемы рекомендуется заставить Ткаббер использовать другой каталог для хранения настроек при помощи установки переменной окружения TKABBER_HOME: создайте отдельный каталог для настроек альфа-версии Ткаббера, например, ~/.tkabber-dev а скрипт запуска (например, ~/bin/tkabber-dev) сделайте таким:

#!/bin/sh
export TKABBER_HOME=~/.tkabber-dev
exec wish ~/tkabber-dev/tkabber/tkabber.tcl "$@"

Теперь можно скопировать файлы конфигурации из ~/.tkabber в ~/.tkabber-dev и запускать альфа-версию как ~/bin/tkabber-dev (или просто tkabber-dev, если ~/bin находится у вас в переменной окружения PATH).

Возможно, вы захотите, чтобы логи обе версии вели совместно (формат хранения логов меняется куда реже настроек). Для этого убедитесь, что переменные ::logger::options(logdir) (группа настроек "Customize" → "Chat" → "Logging") показывают на один и тот же каталог. Ну, или можно создать симлинк ~/.tkabber-dev/logs~/.tkabber/logs.

Как сообщать о баге

...и ещё немного о социальном аспекте:

(!) Сделать: дописать, если чего не хватает

(!) Сделать: вообще-то этот раздел нужно слить с соответствующим куском "Острова посланных на..." и оформить в виде отдельной статейки с тупым названием "Как правильно задавать вопросы" Согласен.