KBibTeX/Development/uk: Difference between revisions
(Created page with "== Отримання початкового коду програми ==") |
No edit summary |
||
(74 intermediate revisions by 2 users not shown) | |||
Line 5: | Line 5: | ||
Нижче наведено посилання на інші сторінки інтернету та ресурси, які пов'язано із розробкоюю KBibTeX. | Нижче наведено посилання на інші сторінки інтернету та ресурси, які пов'язано із розробкоюю KBibTeX. | ||
* [https:// | * [https://invent.kde.org/office/kbibtex Invent] (екземпляр GitLab Git) | ||
* [https://phabricator.kde.org/project/view/176/ Сторінка проєкту на Phabricator] | |||
** [https://phabricator.kde.org/source/kbibtex/ Перегляд Diffusion сховища git] | |||
* [https://bugs.kde.org/buglist.cgi?bug_status=UNCONFIRMED&bug_status=CONFIRMED&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=NEEDSINFO&bug_status=VERIFIED&order= | * [https://bugs.kde.org/buglist.cgi?bug_status=UNCONFIRMED&bug_status=CONFIRMED&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=NEEDSINFO&bug_status=VERIFIED&order=changeddate%20DESC%2Cpriority%2Cbug_severity&product=KBibTeX&query_format=advanced Звіти щодо вад] | ||
* [https://build.kde.org/job/Extragear | * [https://build.kde.org/job/Extragear/job/kbibtex/ Система неперервної інтеграції] | ||
** [https://binary-factory.kde.org/job/KBibTeX_Nightly_win64/ Щоденні збірки для Windows] (binary-factory.kde.org) | |||
** [https://build.neon.kde.org/job/merger_kbibtex/ KDE Neon] (build.neon.kde.org) | |||
* [https://ebn.kde.org/krazy/reports/extragear/office/kbibtex/index.html English Breakfast Network] | * [https://ebn.kde.org/krazy/reports/extragear/office/kbibtex/index.html English Breakfast Network] | ||
* [https://scan.coverity.com/projects/kbibtex Сканування покриття коду] | * [https://scan.coverity.com/projects/kbibtex Сканування покриття коду] | ||
* [https://t-fischer.dreamwidth.org/tag/kbibtex Блог, який присвячено KBibTeX] | |||
== Як якомога швидше отримати і зібрати KBibTeX з Git == | |||
Швидким і простим способом отримати, зібрати і запустити KBibTeX з Git, тобто скористатися найсвіжішим кодом з гілки {{path|master}}, є використання [https://invent.kde.org/thomasfischer/kbibtex-related/-/raw/master/run/run-kbibtex.sh?inline=false {{path|run-kbibtex.sh}}], скрипту на Bash зі [https://invent.kde.org/thomasfischer/kbibtex-related/-/tree/master/run сховища пов'язаних із KBibTeX речей Томаса Фішера]. | |||
Щоб запустити скрипт, або зробіть його придатним до виконання і використовуйте команду {{Input|./run-kbibtex.sh}}, або викликайте його командою {{Input|bash run-kbibtex.sh}} | |||
Типово, скрипт виконає клонування сховища Git KBibTeX до тимчасового каталогу, збере програму, встановить її до тимчасового каталогу і запустити цю тимчасово встановлену версію KBibTeX. | |||
Для роботи скрипту не потрібні права доступу root або sudo. Скрипт не вносить жодних постійних змін до вашої системи. Для збирання KBibTeX вам слід попередньо встановити різноманітні інструменти та бібліотеки для розробки, тобто скористатися для цього системою керування пакунками вашого дистрибутива. | |||
Передбачено файл [https://invent.kde.org/thomasfischer/kbibtex-related/-/raw/master/run/README.txt README.txt], у якому наведено докладніший опис цього скрипту. | |||
== Отримання початкового коду програми == | == Отримання початкового коду програми == | ||
KBibTeX | Початкові коди KBibTeX доступні з інфраструктури Git KDE, назва сховища — {{path|kbibtex}}. Спосіб клонування сховища Git описано у [https://techbase.kde.org/Development/Git/Recipes#Cloning_a_Repository рецептах щодо Git на TechBase]. Якщо коротко, слід віддати таку команду у терміналі: | ||
{{Input|git clone | {{Input|git clone https://invent.kde.org/office/kbibtex.git}} | ||
Переглянути код KBibTeX можна за допомогою [https://invent.kde.org/office/kbibtex сервера git KDE]. | |||
=== | === Гілки === | ||
Основна розробка відбувається у «основній гілці» (має назву {{path|master}}). Розробники намагаються зробити так, щоб ця гілка була працездатною і майже стабільною, але її стабільність не гарантовано. Ви можете скористатися цією гілкою для того, щоб мати доступ до найновіших можливостей. | |||
Для випусків створюються ''гілки випусків''. Назви для цих гілок формуються таким чином: {{path|kbibtex/}}''номер версії'', де вмістом рядка ''номер версії'' може бути щось таке: {{path|0.6}}. Самі випуски у такій гілці визначаються позначеними внесками («мітками»), наприклад {{path|v0.5.1}}. Гілок для випусків із виправленнями вад не створюється, наприклад, немає гілки {{path|kbibtex/0.6.1}}. | |||
Для виправлення вад або реалізації можливостей, які потребують декількох внесків до коду і для яких окремі внески можуть призвести до непрацездатності коду у {{path|master}} або гілці випуску, використовуються так звані «гілки можливостей». Ці гілки має бути синхронізовано з {{path|master}} (типово для можливостей) або гілкою випуску (типово для виправлення вад). Гілки для виправлення вад призначено для злиття з гілкою випуску, щодо якої було створено повідомлення щодо вади, і з гілкою master (для майбутніх випусків). Гілки можливостей зливаються з гілкою master, у вибраних випадках із гілками випусків, де ще немає жодної мітки випуску, і лише іноді зворотно портуються до гілок випусків, де є мітки оприлюднених випусків програми. Прикладом гілки можливостей є гілка {{path|feature/zotero}}, у якій міститься код покращеної підтримки Zotero. Назвами гілок, які пов'язано зі звітами щодо вад, є {{path|bugs/}}'номер у системі стеження за вадами'' (наприклад {{path|bugs/kde338375}}) , де ''системою стеження за вадами'' може бути {{path|kde}} або назва дистрибутива Linux, а ''номером'' є номер повідомлення щодо вади. Назви гілок можливостей мають починатися з {{path|feature/}}, за яким має бути коротка описова назва можливості (малими літерами, без пробілів). Об'єднані гілки за деякий час буде вилучено. | |||
== | == Збирання з коду == | ||
Наведені нижче настанови стосуються збирання KBibTeX з командного рядка. Настанови для збирання на основі KDE4 (наприклад, для гілки {{path|kbibtex/0.5}}) і на основі KDE Frameworks 5 (наприклад, для гілки {{path|master}}) дещо відрізняються. Якщо ви збиратимете KBibTeX з комплексного середовища для розробки, наприклад KDevelop або Qt Creator, слід також застосувати вказані нижче параметри. | |||
=== | === Запуск CMake === | ||
KBibTeX | Збирання KBibTeX налаштовується за допомогою CMake. Для збирання проекту передбачено декілька параметрів: | ||
# <code>CMAKE_INSTALL_PREFIX:PATH</code> | # <code>CMAKE_INSTALL_PREFIX:PATH</code> визначає місце, де зберігатиметься зібрана програма. Існує декілька варіантів значень для цього параметра: | ||
## | ## Каталог, куди встановлено вашу версію KDE, наприклад {{Path|/usr}}. Команди <code>kde4-config --prefix</code> (збирання для KDE4) or <code>kf5-config --prefix</code> (збирання для KDE Frameworks 5) виводять цю адресу. Потрібні права доступу адміністратора (наприклад, за допомогоюо sudo). Попередження: цей варіант не варто використовувати разом із системою для керування пакунками. | ||
## | ## Каталог поза каталогами системи керування пакунками, наприклад {{Path|/usr/local}}. Потребує встановлення певних змінних середовища, пояснення щодо яких наведено нижче. Встановлена до цього каталогу версія зможе пережити перезавантаження системи і буде доступною для усіх користувачів. Потребує прав доступу адміністратора (ці права можна отримати за допомогою, наприклад, команди sudo). | ||
## | ## Доступний для запису користувачам каталог, наприклад {{Path|/tmp/usr}} або {{Path|~/usr}}. Подібний до попереднього варіант, потребує встановлення змінних середовища, але не потребує прав доступу адміністратора. У багатьох дистрибутивах налаштовано спорожнення каталогу {{Path|/tmp}} під час перезавантаження системи. | ||
# <code>CMAKE_BUILD_TYPE</code> | # <code>CMAKE_BUILD_TYPE</code> визначає обсяг діагностичних даних, які буде включено до остаточного коду. Звичайним користувачам варто встановити значення <code>release</code>, розробникам — <code>debug</code>, а для покрокової діагностики найкращим варіантом є <code>debugfull</code>. Докладний опис усіх доступних варіантів наведено у [https://techbase.kde.org/Development/CMake/Addons_for_KDE#Buildtypes документації з CMake на TechBase]. | ||
Приклад команди повністю: | |||
{{Input|1=cmake -DCMAKE_INSTALL_PREFIX:PATH=/tmp/usr -DCMAKE_BUILD_TYPE=debug ../kbibtex}} | {{Input|1=cmake -DCMAKE_INSTALL_PREFIX:PATH=/tmp/usr -DCMAKE_BUILD_TYPE=debug ../kbibtex}} | ||
=== | === Компіляція === | ||
GNU Make | GNU Make є типовим вибором для збирання початкових кодів. Для пришвидшення збирання коду на багатопроцесорних системах слід вказати кількість паралельних процесів збирання. Пріоритетність завдань зі збирання варто робити дещо нижчою за типову. | ||
{{Input|nice -n 16 make -j$(nproc)}} | {{Input|nice -n 16 make -j$(nproc)}} | ||
Для використання [https://ninja-build.org/ ninja] наведена вище інструкція <code>cmake</code> має містити аргумент <code>-GNinja</code>. Поєднання cmake і ninja може виглядати так: | |||
{{Input|1=cmake -GNinja -DCMAKE_INSTALL_PREFIX:PATH=/tmp/usr -DCMAKE_BUILD_TYPE=debug ../kbibtex && ninja}} | {{Input|1=cmake -GNinja -DCMAKE_INSTALL_PREFIX:PATH=/tmp/usr -DCMAKE_BUILD_TYPE=debug ../kbibtex && ninja}} | ||
== | == Встановлення == | ||
KBibTeX | У KBibTeX використано технологію KDE KParts, для реалізації якої вам доведеться встановити деякі бібліотеки. Ви не зможете належним чином користуватися KBibTeX, якщо не виконаєте настанови щодо наступних кроків. | ||
Команда | |||
{{Input|make install}} | {{Input|make install}} | ||
встановить KBibTeX до каталогу, який було вказано як префікс встановлення раніше. Залежно від вибору префікса для встановлення, цю команду доведеться виконувати у межах sudo або іншої обгортки для зміни прав доступу. | |||
Якщо як префікс встановлення не було вказано каталог, куди встановлено інші пакунки KDE, слід визначити змінні середовища тимчасово у межах активного сеансу оболонки, остаточно у налаштуваннях оболонки або створити невеличкий скрипт оболонки, який встановлюватиме значення цих змінних, а потім запускатиме нетипово встановлену програму KBibTeX. | |||
# '''Лише для KDE4''': встановіть таке значення змінної <code>KDEDIRS</code>, щоб до нього було включено каталог встановлення KDE і каталог встановлення KBibTeX, наприклад {{Path|/usr:/tmp/usr}} | |||
# '''Лише для KF5''': встановіть значення змінної середовища <code>QT_PLUGIN_PATH</code> так, щоб до неї було включено каталог додатків у каталозі бібліотеки каталогу, куди встановлено KBibTeX, наприклад {{Path|/usr/lib/plugins:/usr/lib/qt5/plugins:/tmp/usr/lib64/plugins/}} | |||
# Встановіть для змінної <code>LD_LIBRARY_PATH</code> значення, яке вказуватиме на каталог бібліотек у каталозі встановлення KBibTeX, наприклад, {{Path|/tmp/usr/lib64}} | |||
# Встановіть для змінної <code>XDG_DATA_DIRS</code> значення так, щоб до нього було включено каталоги спільних даних каталогу, до якого встановлено KDE, каталог встановлення KBibTeX та інші відповідні префікси, наприклад {{Path|/usr/share:/usr/local/share:/tmp/usr/share}} | |||
Запустіть <code>kbuildsycoca4</code> (KDE4) або <code>kbuildsycoca5</code> (KDE Frameworks 5), щоб повідомити підсистему KDE про появу нових бібліотек. | |||
{{attention_(uk)|KBibTeX складається із самої програми та декількох бібліотек. Щоб уникнути проблем із користуванням програмою, вам слід вилучити усі інші встановлені екземпляри KBibTeX (наприклад, ті, які встановлено за допомогою системи керування пакунками дистрибутива Linux) і вилучити усі інші бібліотеки KBibTeX (тобто ті файли, які зберігаються у каталозі {{Path|/usr}}), які відповідають зразку {{Path|*kbibtex*.so*}}.}} | |||
Тепер KBibTeX можна запустити, як це показано у прикладі: | |||
{{Input|/tmp/usr/bin/kbibtex}} | {{Input|/tmp/usr/bin/kbibtex}} | ||
== | == Настанови з роботи у git == | ||
Обговоренню використання git для керування початковим кодом програм присвячено багато сторінок [https://techbase.kde.org TechBase], [https://userbase.kde.org UserBase] та [https://community.kde.org Community]. У цьому розділі наведено декілька прикладів використання git у контексті KBibTeX. | |||
=== | === Створення гілки для роботи над можливістю чи усування вади === | ||
У наведеномуни ничже прикладі замініть {{path|xxxx}} короткою і точною назвою можливості, яка розроблятиметься (як це обговорювалося вище). Гілки для виправлення вад створюються аналогічним чином, але для їхніх назв використовується схема {{path|bugs/kdeNNNN}}, де NNNN — номер вади у [https://bugs.kde.org системі стеження за вадами KDE]. Для вад у інших системах стеження за вадами, зокрема [https://gna.org/bugs/?group=kbibtex Gna!] або системі стеження за вадами у вашому дистрибутивів, використовується інший префікс, наприклад {{path|bugs/gnaNNNN}} або {{path|bugs/gentooNNNN}}. | |||
{{Input|1=git branch --track feature/xxxx origin/master && git checkout feature/xxxx}} | {{Input|1=git branch --track feature/xxxx origin/master && git checkout feature/xxxx}} | ||
=== | === Запис локальної гілки можливості чи вади === | ||
З метою мінімізації захаращення офіційного сховища KBibTeX або для випадків, коли у вас немає права запису до сховища, ви можете записувати ваші локальні гілки до іншого сховища Git, щоб інші розробники змогли вивчити внесені вами зміни. У наведеному нижче прикладі {{path|personalpublicclone}} є вашим власним відкритим сховищем Git, до якого ви можете записувати дані. | |||
Для оприлюднення внесених вами змін скористайтеся такою командою: | |||
{{Input|git push personalpublicclone feature/xxxx:feature/xxxx}} | {{Input|git push personalpublicclone feature/xxxx:feature/xxxx}} | ||
Інші розробники зможуть додати ваше сховище до власного локального клону сховища git KBibTeX, клонувати вашу гілку (у нашому прикладі ми припускаємо, що гілку розташовано на серверіgit KDE): | |||
{{Input|git remote add someonespublicclone [email protected]:clones/kbibtex/NAME/kbibtex # | {{Input|git remote add someonespublicclone [email protected]:clones/kbibtex/NAME/kbibtex # цю команду слід віддати один раз | ||
git fetch someonespublicclone feature/xxxx && git checkout feature/xxxx # | git fetch someonespublicclone feature/xxxx && git checkout feature/xxxx # під час кожного сеансу отримання оновлень | ||
git remote rm someonespublicclone && git checkout master && git branch -D feature/xxxx # | git remote rm someonespublicclone && git checkout master && git branch -D feature/xxxx # команда, щоб вилучити гілку}} | ||
=== | === Створення гілок і міток випусків === | ||
Для створення гілки випуску з {{path|master}} і надсилання її до {{path|origin}} віддайте такі команди: | |||
{{Input|git checkout -b kbibtex/0.6 master && git push origin kbibtex/0.6}} | {{Input|git checkout -b kbibtex/0.6 master && git push origin kbibtex/0.6}} | ||
Для створення випуску у гілці випуску віддайте такі команди: | |||
{{Input|git checkout kbibtex/0.6 # | {{Input|git checkout kbibtex/0.6 # перейти до відповідної гілки | ||
git pull --ff-only # | git pull --ff-only # отримати найсвіжіші оновлення з початкового сховища | ||
git status # | git status # перевірити, чи все гаразд | ||
git tag -s -u GPGKEY -m "Tagging 0.6" v0.6 # actual tagging, GnuPG signed | git tag -s -u GPGKEY -m "Tagging 0.6" v0.6 # actual tagging, GnuPG signed | ||
git push --tags # | git push --tags # явним чином надіслати мітку до початкового сховища}} | ||
== | == Створення випуску == | ||
{{ | {{Info_(uk)|У цьому розділі описано процес створення випусків на основі KDE4 (kdelibs4). Наведені інструкції не працюватимуть для KDE Frameworks 5.}} | ||
Для створення випуску скористайтеся скриптами мовою Ruby зі сховища {{path|git.kde.org:releaseme.git}}. Створення пакунка KBibTeX налаштовується за допомогою файлів {{path|kbibtex.rb}} і {{path|kbibtexrc}}. Виконайте редагування цих файлів і викличте {{path|kbibtex.rb}} із відповідними аргументами, ось так: | |||
{{Input|1=./kbibtex.rb --src=file:///${HOME}/git/kbibtex --version=0.6.0 --no-doc --no-l10n}} | {{Input|1=./kbibtex.rb --src=file:///${HOME}/git/kbibtex --version=0.6.0 --no-doc --no-l10n}} | ||
Отримання файлів перекладу інтерфейсу і документації є найдовшим етапом у цьому процесі. | |||
Криптографічні хеші можна створити і записати ось так: | |||
{{Input|1=sha512sum kbibtex-0.6.0.tar.xz >kbibtex-0.6.0.tar.xz.sha512 | {{Input|1=sha512sum kbibtex-0.6.0.tar.xz >kbibtex-0.6.0.tar.xz.sha512 | ||
gpg --default-key GPGKEY --output kbibtex-0.6.0.tar.xz.sha512.asc --detach-sign --armor kbibtex-0.6.0.tar.xz.sha512 | gpg --default-key GPGKEY --output kbibtex-0.6.0.tar.xz.sha512.asc --detach-sign --armor kbibtex-0.6.0.tar.xz.sha512 | ||
gpg --default-key GPGKEY --output kbibtex-0.6.0.tar.xz.asc --detach-sign --armor kbibtex-0.6.0.tar.xz}} | gpg --default-key GPGKEY --output kbibtex-0.6.0.tar.xz.asc --detach-sign --armor kbibtex-0.6.0.tar.xz}} |
Latest revision as of 14:20, 15 February 2021
Різноманітні корисні ресурси
Нижче наведено посилання на інші сторінки інтернету та ресурси, які пов'язано із розробкоюю KBibTeX.
- Invent (екземпляр GitLab Git)
- Сторінка проєкту на Phabricator
- Система неперервної інтеграції
- Щоденні збірки для Windows (binary-factory.kde.org)
- KDE Neon (build.neon.kde.org)
Як якомога швидше отримати і зібрати KBibTeX з Git
Швидким і простим способом отримати, зібрати і запустити KBibTeX з Git, тобто скористатися найсвіжішим кодом з гілки master, є використання run-kbibtex.sh, скрипту на Bash зі сховища пов'язаних із KBibTeX речей Томаса Фішера.
Щоб запустити скрипт, або зробіть його придатним до виконання і використовуйте команду
./run-kbibtex.sh
, або викликайте його командою
bash run-kbibtex.sh
Типово, скрипт виконає клонування сховища Git KBibTeX до тимчасового каталогу, збере програму, встановить її до тимчасового каталогу і запустити цю тимчасово встановлену версію KBibTeX.
Для роботи скрипту не потрібні права доступу root або sudo. Скрипт не вносить жодних постійних змін до вашої системи. Для збирання KBibTeX вам слід попередньо встановити різноманітні інструменти та бібліотеки для розробки, тобто скористатися для цього системою керування пакунками вашого дистрибутива.
Передбачено файл README.txt, у якому наведено докладніший опис цього скрипту.
Отримання початкового коду програми
Початкові коди KBibTeX доступні з інфраструктури Git KDE, назва сховища — kbibtex. Спосіб клонування сховища Git описано у рецептах щодо Git на TechBase. Якщо коротко, слід віддати таку команду у терміналі:
git clone https://invent.kde.org/office/kbibtex.git
Переглянути код KBibTeX можна за допомогою сервера git KDE.
Гілки
Основна розробка відбувається у «основній гілці» (має назву master). Розробники намагаються зробити так, щоб ця гілка була працездатною і майже стабільною, але її стабільність не гарантовано. Ви можете скористатися цією гілкою для того, щоб мати доступ до найновіших можливостей.
Для випусків створюються гілки випусків. Назви для цих гілок формуються таким чином: kbibtex/номер версії, де вмістом рядка номер версії може бути щось таке: 0.6. Самі випуски у такій гілці визначаються позначеними внесками («мітками»), наприклад v0.5.1. Гілок для випусків із виправленнями вад не створюється, наприклад, немає гілки kbibtex/0.6.1.
Для виправлення вад або реалізації можливостей, які потребують декількох внесків до коду і для яких окремі внески можуть призвести до непрацездатності коду у master або гілці випуску, використовуються так звані «гілки можливостей». Ці гілки має бути синхронізовано з master (типово для можливостей) або гілкою випуску (типово для виправлення вад). Гілки для виправлення вад призначено для злиття з гілкою випуску, щодо якої було створено повідомлення щодо вади, і з гілкою master (для майбутніх випусків). Гілки можливостей зливаються з гілкою master, у вибраних випадках із гілками випусків, де ще немає жодної мітки випуску, і лише іноді зворотно портуються до гілок випусків, де є мітки оприлюднених випусків програми. Прикладом гілки можливостей є гілка feature/zotero, у якій міститься код покращеної підтримки Zotero. Назвами гілок, які пов'язано зі звітами щодо вад, є bugs/'номер у системі стеження за вадами (наприклад bugs/kde338375) , де системою стеження за вадами може бути kde або назва дистрибутива Linux, а номером є номер повідомлення щодо вади. Назви гілок можливостей мають починатися з feature/, за яким має бути коротка описова назва можливості (малими літерами, без пробілів). Об'єднані гілки за деякий час буде вилучено.
Збирання з коду
Наведені нижче настанови стосуються збирання KBibTeX з командного рядка. Настанови для збирання на основі KDE4 (наприклад, для гілки kbibtex/0.5) і на основі KDE Frameworks 5 (наприклад, для гілки master) дещо відрізняються. Якщо ви збиратимете KBibTeX з комплексного середовища для розробки, наприклад KDevelop або Qt Creator, слід також застосувати вказані нижче параметри.
Запуск CMake
Збирання KBibTeX налаштовується за допомогою CMake. Для збирання проекту передбачено декілька параметрів:
CMAKE_INSTALL_PREFIX:PATH
визначає місце, де зберігатиметься зібрана програма. Існує декілька варіантів значень для цього параметра:- Каталог, куди встановлено вашу версію KDE, наприклад /usr. Команди
kde4-config --prefix
(збирання для KDE4) orkf5-config --prefix
(збирання для KDE Frameworks 5) виводять цю адресу. Потрібні права доступу адміністратора (наприклад, за допомогоюо sudo). Попередження: цей варіант не варто використовувати разом із системою для керування пакунками. - Каталог поза каталогами системи керування пакунками, наприклад /usr/local. Потребує встановлення певних змінних середовища, пояснення щодо яких наведено нижче. Встановлена до цього каталогу версія зможе пережити перезавантаження системи і буде доступною для усіх користувачів. Потребує прав доступу адміністратора (ці права можна отримати за допомогою, наприклад, команди sudo).
- Доступний для запису користувачам каталог, наприклад /tmp/usr або ~/usr. Подібний до попереднього варіант, потребує встановлення змінних середовища, але не потребує прав доступу адміністратора. У багатьох дистрибутивах налаштовано спорожнення каталогу /tmp під час перезавантаження системи.
- Каталог, куди встановлено вашу версію KDE, наприклад /usr. Команди
CMAKE_BUILD_TYPE
визначає обсяг діагностичних даних, які буде включено до остаточного коду. Звичайним користувачам варто встановити значенняrelease
, розробникам —debug
, а для покрокової діагностики найкращим варіантом єdebugfull
. Докладний опис усіх доступних варіантів наведено у документації з CMake на TechBase.
Приклад команди повністю:
cmake -DCMAKE_INSTALL_PREFIX:PATH=/tmp/usr -DCMAKE_BUILD_TYPE=debug ../kbibtex
Компіляція
GNU Make є типовим вибором для збирання початкових кодів. Для пришвидшення збирання коду на багатопроцесорних системах слід вказати кількість паралельних процесів збирання. Пріоритетність завдань зі збирання варто робити дещо нижчою за типову.
nice -n 16 make -j$(nproc)
Для використання ninja наведена вище інструкція cmake
має містити аргумент -GNinja
. Поєднання cmake і ninja може виглядати так:
cmake -GNinja -DCMAKE_INSTALL_PREFIX:PATH=/tmp/usr -DCMAKE_BUILD_TYPE=debug ../kbibtex && ninja
Встановлення
У KBibTeX використано технологію KDE KParts, для реалізації якої вам доведеться встановити деякі бібліотеки. Ви не зможете належним чином користуватися KBibTeX, якщо не виконаєте настанови щодо наступних кроків.
Команда
make install
встановить KBibTeX до каталогу, який було вказано як префікс встановлення раніше. Залежно від вибору префікса для встановлення, цю команду доведеться виконувати у межах sudo або іншої обгортки для зміни прав доступу.
Якщо як префікс встановлення не було вказано каталог, куди встановлено інші пакунки KDE, слід визначити змінні середовища тимчасово у межах активного сеансу оболонки, остаточно у налаштуваннях оболонки або створити невеличкий скрипт оболонки, який встановлюватиме значення цих змінних, а потім запускатиме нетипово встановлену програму KBibTeX.
- Лише для KDE4: встановіть таке значення змінної
KDEDIRS
, щоб до нього було включено каталог встановлення KDE і каталог встановлення KBibTeX, наприклад /usr:/tmp/usr - Лише для KF5: встановіть значення змінної середовища
QT_PLUGIN_PATH
так, щоб до неї було включено каталог додатків у каталозі бібліотеки каталогу, куди встановлено KBibTeX, наприклад /usr/lib/plugins:/usr/lib/qt5/plugins:/tmp/usr/lib64/plugins/ - Встановіть для змінної
LD_LIBRARY_PATH
значення, яке вказуватиме на каталог бібліотек у каталозі встановлення KBibTeX, наприклад, /tmp/usr/lib64 - Встановіть для змінної
XDG_DATA_DIRS
значення так, щоб до нього було включено каталоги спільних даних каталогу, до якого встановлено KDE, каталог встановлення KBibTeX та інші відповідні префікси, наприклад /usr/share:/usr/local/share:/tmp/usr/share
Запустіть kbuildsycoca4
(KDE4) або kbuildsycoca5
(KDE Frameworks 5), щоб повідомити підсистему KDE про появу нових бібліотек.
Тепер KBibTeX можна запустити, як це показано у прикладі:
/tmp/usr/bin/kbibtex
Настанови з роботи у git
Обговоренню використання git для керування початковим кодом програм присвячено багато сторінок TechBase, UserBase та Community. У цьому розділі наведено декілька прикладів використання git у контексті KBibTeX.
Створення гілки для роботи над можливістю чи усування вади
У наведеномуни ничже прикладі замініть xxxx короткою і точною назвою можливості, яка розроблятиметься (як це обговорювалося вище). Гілки для виправлення вад створюються аналогічним чином, але для їхніх назв використовується схема bugs/kdeNNNN, де NNNN — номер вади у системі стеження за вадами KDE. Для вад у інших системах стеження за вадами, зокрема Gna! або системі стеження за вадами у вашому дистрибутивів, використовується інший префікс, наприклад bugs/gnaNNNN або bugs/gentooNNNN.
git branch --track feature/xxxx origin/master && git checkout feature/xxxx
Запис локальної гілки можливості чи вади
З метою мінімізації захаращення офіційного сховища KBibTeX або для випадків, коли у вас немає права запису до сховища, ви можете записувати ваші локальні гілки до іншого сховища Git, щоб інші розробники змогли вивчити внесені вами зміни. У наведеному нижче прикладі personalpublicclone є вашим власним відкритим сховищем Git, до якого ви можете записувати дані.
Для оприлюднення внесених вами змін скористайтеся такою командою:
git push personalpublicclone feature/xxxx:feature/xxxx
Інші розробники зможуть додати ваше сховище до власного локального клону сховища git KBibTeX, клонувати вашу гілку (у нашому прикладі ми припускаємо, що гілку розташовано на серверіgit KDE):
git remote add someonespublicclone [email protected]:clones/kbibtex/NAME/kbibtex # цю команду слід віддати один раз git fetch someonespublicclone feature/xxxx && git checkout feature/xxxx # під час кожного сеансу отримання оновлень git remote rm someonespublicclone && git checkout master && git branch -D feature/xxxx # команда, щоб вилучити гілку
Створення гілок і міток випусків
Для створення гілки випуску з master і надсилання її до origin віддайте такі команди:
git checkout -b kbibtex/0.6 master && git push origin kbibtex/0.6
Для створення випуску у гілці випуску віддайте такі команди:
git checkout kbibtex/0.6 # перейти до відповідної гілки git pull --ff-only # отримати найсвіжіші оновлення з початкового сховища git status # перевірити, чи все гаразд git tag -s -u GPGKEY -m "Tagging 0.6" v0.6 # actual tagging, GnuPG signed git push --tags # явним чином надіслати мітку до початкового сховища
Створення випуску
Для створення випуску скористайтеся скриптами мовою Ruby зі сховища git.kde.org:releaseme.git. Створення пакунка KBibTeX налаштовується за допомогою файлів kbibtex.rb і kbibtexrc. Виконайте редагування цих файлів і викличте kbibtex.rb із відповідними аргументами, ось так:
./kbibtex.rb --src=file:///${HOME}/git/kbibtex --version=0.6.0 --no-doc --no-l10n
Отримання файлів перекладу інтерфейсу і документації є найдовшим етапом у цьому процесі.
Криптографічні хеші можна створити і записати ось так:
sha512sum kbibtex-0.6.0.tar.xz >kbibtex-0.6.0.tar.xz.sha512 gpg --default-key GPGKEY --output kbibtex-0.6.0.tar.xz.sha512.asc --detach-sign --armor kbibtex-0.6.0.tar.xz.sha512 gpg --default-key GPGKEY --output kbibtex-0.6.0.tar.xz.asc --detach-sign --armor kbibtex-0.6.0.tar.xz