Sign in Join
Wiki copytemporary

How To Help Developing Lazarus/ru: what changed

Revision 1 to 2. Removed lines have a minus sign; added lines have a plus sign.

OldNewLine
11## Прежде, чем участвовать в улучшении Lazarus
22
33Прежде всего, запомните две вещи:
44
55- У вас должна быть последняя версия компилятора FreePascal (FPC) или его снимок SVN (т.е. будущая версия). Скачать можно по ссылке: [скачать FreePascal](http://www.freepascal.org/download.html).
66- Обязательно должна быть самая-самая последняя версия Lazarus из SVN (которую вы и будете помогать тестировать). Чтобы узнать, как ее получить, пройдите по ссылке: [[Getting Lazarus|Как получить Lazarus из SVN]].
77
88## В какой области применить свои возможности?
99
1010Итак, у вас есть самая свежая версия Lazarus и вам нетерпится чем-нибудь помочь проекту, но возникает вопрос: "а что, собственно, я могу сделать?".
1111
1212### Поиск и устранение ошибок
1313
1414Если у вас не возникает каких-либо особенных проблем с Lazarus, но вам просто хочется чем-нибудь помочь, мы бы рекомендовали вам посмотреть список известных ошибок на [баг-трекере](http://www.lazarus.freepascal.org/mantis/main_page.php), возможно, вы найдете ошибку, которую можете исправить. Команда разработчиков Lazarus выделила некоторые основные ошибки, которые необходимо устранить [[Road To 1.0|на пути к финальному релизу]].
1515
1616### Документация
1717
1818Lazarus нуждается в документации! Если у вас нет возможности исправлять ошибки в самой IDE - вы можете помочь в написании документации. Вы можете добавить информацию на эту и другие страницы, исправить ошибки в тексте и т.д. Перейдя по ссылкам [[Lazarus Documentation Editor|редактор документации Lazarus]] и [[LCL Documentation Roadmap|документация LCL]], вы можете найти полезную информацию и список модулей, которые будут документированы. Во время работы IDE, нажмите F1 для получения справки. Вы будете направлены на страницу помощи, которая может быть пустой или незавершенной. Если вы обладаете достаточными знаниями в этом вопросе - заполните и улучшите ее!
1919
2020### Интегрированная среда разработки (IDE)
2121
2222Смотрите следующие ссылки: [[Extending the IDE|продолжение IDE]], [[Road To 1.0|на пути к финальному релизу]].
2323
2424### Наборы визуальных компонентов (виджетов)
2525
2626Набор виджетов - это "прослойка" между кодом библиотеки LCL, которая не зависит от целевой операционной системы, и собственно самой ОС. Для каждой поддерживаемой операционной системы модули библиотеки виджетов находятся в одной из поддиректорий C:\Lazarus\lcl\interfaces\\ (в Windows). Следуя нижеприведенной инструкции, можно изменить набор виджетов. После внесения изменений в набор виджетов нет необходимости пересобирать все, включая саму IDE,как правило, можно протестировать эффект от изменений:\
2727
2828`* Создайте свой тестовый проект (небольшую программу, которая содержала бы тестируемый код для измененного вами набора виджетов);`\
2929`* Установите сочетания клавиш для 'Собрать Lazarus' и 'Собрать Lazarus с настройками' `\
3030`  (в IDE, перейдите Editor Options/Keymapping);`\
31-<u>**`повторять`**</u>\
31+**`повторять`**\
3232` * Настройте "Собрать Lazarus" так, чтобы собиралась только LCL `\
3333`  (в IDE, перейдите Tools/Configure "Собрать Lazarus");`\
34-` `<u>**`повторять`**</u>\
34+` `**`повторять`**\
3535`  * Внесите свои изменения в код набора виджетов;`\
3636`  * Пересоберите Lazarus (в IDE, перейдите Tools/Build Lazarus `\
3737`    - это позволит пересобрать только LCL, а также выбранный набор виджетов);`\
3838`  * Теперь можете откомпилировать и протестировать свой проект;`\
3939`  * Запустите и отладьте проект;`\
40-` `<u>**`пока`**</u>` не будут найдены ошибки в измененном коде;`\
40+` `**`пока`**` не будут найдены ошибки в измененном коде;`\
4141` * Перенастройте "Собрать Lazarus" на "Собрать все" `\
4242`   (в IDE, снова перейдите Tools/Configure "Собрать Lazarus");`\
4343` * Соберите Lazarus и протестируйте IDE;`\
44-<u>**`пока`**</u>` не будет больше ошибок в ваших изменениях в IDE;`\
44+**`пока`**` не будет больше ошибок в ваших изменениях в IDE;`\
4545`* Создайте патч (смотрите подробнее далее).`
4646
4747## Как утвердить ваши изменения?
4848
4949Вам будет необходимо создать патч (подробнее смотрите по ссылке [[Creating A Patch|создание патча]]. Предпочтительный способ показать свой патч разработчикам Lazarus - это создать описание на баг-трекере и прикрепить патч. Также можно прислать его по почте разработчикам (максимальный размер - 40 кБ) или на специальный почтовый ящик для патчей <patch@lazarus.dommelstein.net> (не забудьте в теме сообщения написать "patch", иначе письмо будет проигнорированно).
5050
5151## Борьба с регрессиями
5252
5353Время от времени изменения в исходном коде Lazarus приводят к тому, что функции, работавшие ранее, перестают работать. Вы можете помочь узнать, начиная с какой версии начались проблемы. Этот процесс очень прост: Например, функция работала в сборке №1000, но не работает в №5000. Вы тестируете сборку №3000. Тестирование требует обновления кода из svn, пересборки LCL для нужного набора виджетов, и пересборки тестового приложения, которое использует нужную нам функцию, далее идет тестирование приложения. Если все работает - то тестируем сборки от 3000 до 5000, если нет - от 1000 до 3000, и так до тех пор, пока не найдем, в какой сборке закралась ошибка. Информация о том, в какой сборке появились проблемы, поможет быстрее и эффективней их решить, оставлять информацию можно на баг-трекере.
5454
5555Чтобы проверить, какие данные соответствуют каждой сборке, можно использовать [Lazarus svn browser (ViewVC)](http://svn.freepascal.org/cgi-bin/viewvc.cgi/?root=lazarus). После того, как интервал между проверяемыми сборками сократится до какой-то небольшой цифры, например, 25, будет быстрее проверять изменения в сборках, используя ViewVC, это поможет выкинуть из проверки неподходящих кандидатов (те сборки, где наша неработающая функция не изменялась), это ускорит процесс.
5656
5757Получить нужную сборку можно, используя команду: svn update -r \<номер сборки\>
5858
5959**Внимание!** Если у вас медленное и ненадежное соединение с Интернет (как диал-ап или 3G), или ограничение трафика, то проверка разных сборок из SubVersion будет весьма медленным и дорогим процессом. Все сборки, которые вы проверяете, скачиваются из Интернет.
6060
6161Эту проблему можно полностью устранить, если использовать Git для Lazarus, потому что вся история репозитория будет на вашем компьютере. Так что вы сможете проверить любую старую сборку без необходимости Интернет-соединения.
6262
6363### Автоматический поиск ошибок регрессии
6464
6565#### SubVersion
6666
6767Флориан написал небольшой скрипт для *nix, который может помочь автоматизировать процесс поиска регрессии. Скрипт называется [searchrev](http://svn.freepascal.org/cgi-bin/viewvc.cgi/scripts/florian/unix/searchrev?view=markup&root=fpcbuild).
6868
6969#### Git зеркала
7070
7171Git включает команду под названием *bisect*, которая помогает искать ошибки регрессии. Также есть поддержка автоматического тестирования. Вам необходимо будет создать небольшой тестовый пример и Git будет использовать этот пример, чтобы определить, есть ли в данной сборке ошибка или нет. С использованием автоматического тестирования ошибки регрессии находятся за считанные секунды. Для получения более подробной информации о команде *git bisect*, перейдите по ссылке [Git - Руководство пользователя](http://www.kernel.org/pub/software/scm/git/docs/user-manual.html#using-bisect).
7272
7373## Все еще нужна помощь?
7474
7575Если у вас есть какие-либо вопросы, вы можете задать их в следующих местах:
7676
7777- список почтовых адресов (смотрите [Список почтовых адресов](http://www.lazarus.freepascal.org/modules.php?op=modload&name=StaticPage&file=index&sURL=maill))
7878- IRC-канал \#lazarus-ide на irc.freenode.net.
7979
8080---
8181*From the Free Pascal wiki, page "How To Help Developing Lazarus/ru", as it stood on 2022-01-13 after a change by Trev, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*
8282Category: Community/ru
8383Category: Debugging/ru
8484Category: FPC Issues/ru
8585Category: Lazarus/ru
8686Category: Russian

Back to history