Я регулярно проверяю по каким словам приходят с поисковиков на мой блог. Можно сказать, что эта заметка открывает цикл «заказных» статей. Самым популярным запросом пользователей интернета, по которым они попадают ко мне на блог является «asterisk trunk». Да, всё что написано у меня касается именно trunk версии, но нигде не написано что это. Постараюсь максимально подробно объяснить.
На форумах вам могут сказать: «Этой функции нет в 1.x, посмотри, есть в транке». На серверах в виде архивов вы не найдёте ничего похожего. Разберёмся в этом вопросе.
Терминология, используемая для проекта Asterisk взята из документации к системе управления копиями Subversion и вообще опыта развития OSS. Так вот транк (trunk) — версии Asterisk, постоянно находящаяся в состоянии разработки. Сюда добавляются все новые возможности, проводятся изменения API. Более того новые возможности добавляются только в trunk. Так что если вы собрались добавить новую функцию, то стоит сначала написать патч для trunk, а если он заинтересует других пользователей, то портировать его для стабильной версии.
Когда приходит время выпустить новую версию (например — 1.6) и разработчики считают что в новую версию добавлено достаточно новых функций, то на основе trunk cоздаётся ветка, в которую впоследствии вносятся только исправления. Но это уже другая история.
Скачать trunk можно только с помощью SVN (svn checkout http://svn.digium.com/svn/asterisk/trunk asterisk
). Эту команду достаточно выполнить однократно, в дальнейшем можно получать лишь обновления с помощью команды svn update. Аналогичные команды пригодятся, если вам нужны последние версии zaptel и libpri.
Все новые добавления в trunk можно посмотреть минимум тремя способами:
- Через веб
- Воспользовавшись командой svn log
- Подписавшись на лист asterisk-commits
Используя trunk вы используете не только самые последние возможности, но и самые свежие и неизведанные ошибки. Экспериментально замечено, что проблемы с trunk появляются примерно раз в один-два месяца. Чаще всего это проблемы с падениями в плохо протестированном коде и решаются откатом файла (svn update -r xxxxxx) на ревизию, которая работала ранее. Если такая регрессия замечена, то лучше всего сообщить на трекере или канале #asterisk-dev.
PS. Ещё раз замечу, что если вы начинаете участвовать в разработке или сообщаете о ошибках, не забудьте изучить страницу для разработчиков на asterisk.org. Если что-то не понятно, буду рад ответить на вопросы.