KBibTeX/Розробка

From KDE UserBase Wiki
Revision as of 16:30, 19 December 2017 by Yurchor (talk | contribs) (Created page with "# <code>CMAKE_BUILD_TYPE</code> визначає обсяг діагностичних даних, які буде включено до остаточного коду. Зв...")
Other languages:

Різноманітні корисні ресурси

Нижче наведено посилання на інші сторінки інтернету та ресурси, які пов'язано із розробкоюю KBibTeX.

Отримання початкового коду програми

Початкові коди KBibTeX доступні з інфраструктури Git KDE, назва сховища — kbibtex. Спосіб клонування сховища Git описано у рецептах щодо Git на TechBase. Якщо коротко, слід віддати таку команду у терміналі:

git clone git://anongit.kde.org/kbibtex

Переглянути код KBibTeX можна за допомогою сервера git KDE.

Гілки

Основна розробка відбувається у «основній гілці» (має назву master). Розробники намагаються зробити так, щоб ця гілка була працездатною і майже стабільною, але її стабільність не гарантовано. Ви можете скористатися цією гілкою для того, щоб мати доступ до найновіших можливостей.

Для випусків створюються гілки випусків. Назви для цих гілок формуються таким чином: kbibtex/номер версії, де вмістом рядка номер версії може бути щось таке: 0.6. Самі випуски у такій гілці визначаються позначеними внесками («мітками»), наприклад v0.5.1. Гілок для випусків із виправленнями вад не створюється, наприклад, немає гілки kbibtex/0.6.1.

For bugs or features that require multiple commits and where individual commits may break master or a release branch, so-called feature branches are used. These branches are supposed to track master (typical for features) or a release branch (typical for bugs). Branches for bugs are meant to be merged into the release branch where the bug was reported for as well as into the master branch (for future releases). Feature branches are merged into the master branch, in selected cases into releases branches where no release has been tagged yet, and only in rare cases back-ported to release branches with published releases. An example for a feature branch would be feature/zotero, which may contain the code for an improved Zotero support. Names for bug report-related branches are bugs/bugsystemnumber (for example bugs/kde338375) , where bugsystem would be kde or the name of a Linux distribution and number the actual bug number. Feature branches start with feature/ followed by a short descriptive name for this feature (all lowercase, no spaces). Merged branches will be delete after some time.

Збирання з коду

Наведені нижче настанови стосуються збирання KBibTeX з командного рядка. Настанови для збирання на основі KDE4 (наприклад, для гілки kbibtex/0.5) і на основі KDE Frameworks 5 (наприклад, для гілки master) дещо відрізняються. Якщо ви збиратимете KBibTeX з комплексного середовища для розробки, наприклад KDevelop або Qt Creator, слід також застосувати вказані нижче параметри.

Запуск CMake

Збирання KBibTeX налаштовується за допомогою CMake. Для збирання проекту передбачено декілька параметрів:

  1. CMAKE_INSTALL_PREFIX:PATH визначає місце, де зберігатиметься зібрана програма. Існує декілька варіантів значень для цього параметра:
    1. Каталог, куди встановлено вашу версію KDE, наприклад /usr. Команди kde4-config --prefix (збирання для KDE4) or kf5-config --prefix (збирання для KDE Frameworks 5) виводять цю адресу. Потрібні права доступу адміністратора (наприклад, за допомогоюо sudo). Попередження: цей варіант не варто використовувати разом із системою для керування пакунками.
    2. Каталог поза каталогами системи керування пакунками, наприклад /usr/local. Потребує встановлення певних змінних середовища, пояснення щодо яких наведено нижче. Встановлена до цього каталогу версія зможе пережити перезавантаження системи і буде доступною для усіх користувачів. Потребує прав доступу адміністратора (ці права можна отримати за допомогою, наприклад, команди sudo).
    3. Доступний для запису користувачам каталог, наприклад /tmp/usr або ~/usr. Подібний до попереднього варіант, потребує встановлення змінних середовища, але не потребує прав доступу адміністратора. У багатьох дистрибутивах налаштовано спорожнення каталогу /tmp під час перезавантаження системи.
  2. 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 до каталогу, який було вказано як префікс встановлення раніше.

Якщо як префікс встановлення не було вказано каталог, куди встановлено інші пакунки KDE, слід визначити такі змінні середовища:

  1. Лише для KDE4: встановіть таке значення змінної KDEDIRS, щоб до нього було включено каталог встановлення KDE і каталог встановлення KBibTeX, наприклад /usr:/tmp/usr
  2. Лише для KF5: встановіть значення змінної середовища QT_PLUGIN_PATH так, щоб до неї було включено каталог додатків у каталозі бібліотеки каталогу, куди встановлено KBibTeX, наприклад /usr/lib/plugins:/usr/lib/qt5/plugins:/tmp/usr/lib64/plugins/
  3. Встановіть для змінної LD_LIBRARY_PATH значення, яке вказуватиме на каталог бібліотек у каталозі встановлення KBibTeX, наприклад, /tmp/usr/lib64
  4. Встановіть для змінної 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.

Створення гілки для роботи над можливістю чи усування вади

In below example, replace xxxx with a short and concise name for a feature to be developed (as discussed above). Branches for bugs are created similarly, but follow the scheme bugs/kdeNNNN, where NNNN is the bug number in KDE's bug tracker. Bugs in other bug trackers such as Gna! or your distribution may use a different prefix such as bugs/gnaNNNN or bugs/gentooNNNN.

git branch --track feature/xxxx origin/master && git checkout feature/xxxx

Запис локальної гілки можливості чи вади

To minimize polluting the official KBibTeX repository or when you do not have write access, you may push your local branches to another Git repository to allow others to inspect your changes. In below example, personalpublicclone is your personal, public Git repository where you want to push to.

Для оприлюднення внесених вами змін скористайтеся такою командою:

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 # явним чином надіслати мітку до початкового сховища

Створення випуску

Інформація

У цьому розділі описано процес створення випусків на основі KDE4 (kdelibs4). Наведені інструкції не працюватимуть для KDE Frameworks 5.


Для створення випуску скористайтеся скриптами мовою 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