How To Help Developing Lazarus/ru

From Free Pascal wiki
Jump to navigationJump to search

Прежде, чем участвовать в улучшении Lazarus

Прежде всего, запомните две вещи:

  • У вас должна быть последняя версия компилятора FreePascal (FPC) или его снимок SVN (т.е. будущая версия). Скачать можно по ссылке: скачать FreePascal.
  • Обязательно должна быть самая-самая последняя версия Lazarus из SVN (которую вы и будете помогать тестировать). Чтобы узнать, как ее получить, пройдите по ссылке: Как получить Lazarus из SVN.

В какой области применить свои возможности?

Итак, у вас есть самая свежая версия Lazarus и вам нетерпится чем-нибудь помочь проекту, но возникает вопрос: "а что, собственно, я могу сделать?".

Поиск и устранение ошибок

Если у вас не возникает каких-либо особенных проблем с Lazarus, но вам просто хочется чем-нибудь помочь, мы бы рекомендовали вам посмотреть список известных ошибок на баг-трекере, возможно, вы найдете ошибку, которую можете исправить. Команда разработчиков Lazarus выделила некоторые основные ошибки, которые необходимо устранить на пути к финальному релизу.

Документация

Lazarus нуждается в документации! Если у вас нет возможности исправлять ошибки в самой IDE - вы можете помочь в написании документации. Вы можете добавить информацию на эту и другие страницы, исправить ошибки в тексте и т.д. Перейдя по ссылкам редактор документации Lazarus и документация LCL, вы можете найти полезную информацию и список модулей, которые будут документированы. Во время работы IDE, нажмите F1 для получения справки. Вы будете направлены на страницу помощи, которая может быть пустой или незавершенной. Если вы обладаете достаточными знаниями в этом вопросе - заполните и улучшите ее!

Интегрированная среда разработки (IDE)

Смотрите следующие ссылки: продолжение IDE, на пути к финальному релизу.

Наборы визуальных компонентов (виджетов)

Набор виджетов - это "прослойка" между кодом библиотеки LCL, которая не зависит от целевой операционной системы, и собственно самой ОС. Для каждой поддерживаемой операционной системы модули библиотеки виджетов находятся в одной из поддиректорий C:\Lazarus\lcl\interfaces\ (в Windows). Следуя нижеприведенной инструкции, можно изменить набор виджетов. После внесения изменений в набор виджетов нет необходимости пересобирать все, включая саму IDE,как правило, можно протестировать эффект от изменений:

* Создайте свой тестовоый проект (небольшую программу, которая содержала бы тестируемый код для измененного вами набора виджетов);
* Установите сочетания клавиш для 'Собрать Lazarus' и 'Собрать Lazarus с настройками' 
  (в IDE, перейдите Editor Options/Keymapping);
повторять
 * Настройте "Собрать Lazarus" так, чтобы собиралась только LCL 
  (в IDE, перейдите Tools/Configure "Собрать Lazarus");
 повторять
  * Внесите свои изменения в код набора виджетов;
  * Пересоберите Lazarus (в IDE, перейдите Tools/Build Lazarus 
    - это позволит пересобрать только LCL, а также выбранный набор виджетов);
  * Теперь можете откомпилировать и протестировать свой проект;
  * Запустите и отладьте проект;
 пока не будут найдены ошибки в измененном коде;
 * Перенастройте "Собрать Lazarus" на "Собрать все" 
   (в IDE, снова перейдите Tools/Configure "Собрать Lazarus");
 * Соберите Lazarus и протестируйте IDE;
пока не будет больше ошибок в ваших изменениях в IDE;
* Создайте патч (смотрите подробнее далее).

Как утвердить ваши изменения?

Вам будет необходимо создать патч (подробнее смотрите по ссылке создание патча. Предпочтительный способ показать свой патч разработчикам Lazarus - это создать описание на баг-трекере и прикрепить патч. Также можно прислать его по почте разработчикам (максимальный размер - 40 кБ) или на специальный почтовый ящик для патчей patch@lazarus.dommelstein.net (не забудьте в теме сообщения написать "patch", иначе письмо будет проигнорированно).

Борьба с регрессиями

Время от времени изменения в исходном коде Lazarus приводят к тому, что функции, работавшие ранее, перестают работать. Вы можете помочь узнать, начиная с какой версии начались проблемы. Этот процесс очень прост: Например, функция работала в сборке №1000, но не работает в №5000. Вы тестируете сборку №3000. Тестирование требует обновления кода из svn, пересборки LCL для нужного набора виджетов, и пересборки тестового приложения, которое использует нужную нам функцию, далее идет тестирование приложения. Если все работает - то тестируем сборки от 3000 до 5000, если нет - от 1000 до 3000, и так до тех пор, пока не найдем, в какой сборке закралась ошибка. Информация о том, в какой сборке появились проблемы, поможет быстрее и эффективней их решить, оставлять информацию можно на баг-трекере.

To check to which data each revision corresponds one can use the Lazarus svn browser (ViewVC). After the interval of revisions was reduced to a relative small number, like 25 or so, it may be quicker to check the revisions with ViewVC and check which are possible candidates for the break, to speed up the final part.

One can obtain a particular revision using the command:

svn update -r <revision number>

A word of caution. If you have a slow and unreliable internet connection (like modem dial-up or 3G) and limited bandwidth, then checking out various revisions from SubVersion is a slow and costly process. Every revision you checkout has to be downloaded from the internet.

This issue is completely eliminated if you use a Mercurial or Git mirror of Lazarus, because the whole repository history is local on you computer. So you can checkout any older revisions without needing a internet connection and checkouts are instant.

Automate searching for regression errors

SubVersion

Florian wrote a small unix script which can help automate the process of finding a regression error. The script is called searchrev.

Git or Mercurial mirrors

Git includes a command called bisect which helps with finding regression bugs. It also has built-in support for automated testing. You need to create a small testcase and let Git use that testcase to determine if a revision is buggy or not. So with the automated bisecting, regression bugs can be found in seconds. For more information on the git bisect command, see the Git User Manual.

To download the Git mirror of the Lazarus repository, follow this link, or for more detailed instructions look here - git mirrors. The Mercurial mirror can be found here.

Need more help?

If you have any question you can ask them on one of the following places:

  • The Lazarus Mailing list (see Mailing list)
  • The #lazarus-ide IRC channel on irc.freenode.net.