KBibTeX/Development/uk: Difference between revisions

    From KDE UserBase Wiki
    No edit summary
    (Created page with "Запустіть <code>kbuildsycoca4</code> (KDE4) або <code>kbuildsycoca5</code> (KDE Frameworks 5), щоб повідомити підсистему KDE про появ...")
    (52 intermediate revisions by 2 users not shown)
    Line 3: Line 3:
    == Різноманітні корисні ресурси ==
    == Різноманітні корисні ресурси ==


    The following links refer to other web pages or resources relevant for the development of KBibTeX.
    Нижче наведено посилання на інші сторінки інтернету та ресурси, які пов'язано із розробкоюю KBibTeX.


    * [https://cgit.kde.org/kbibtex.git Git repository's webpage]
    * [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=Importance&product=KBibTeX&query_format=advanced Bug reports]
    * [https://cgit.kde.org/kbibtex.git Сторінка сховиащ git]


    * [https://build.kde.org/job/Extragear%20kbibtex%20kf5-qt5%20SUSEQt5.9/ Continuous Integration]
    * [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=Importance&product=KBibTeX&query_format=advanced Звіти щодо вад]
     
    * [https://build.kde.org/job/Extragear%20kbibtex%20kf5-qt5%20SUSEQt5.9/ Система неперервної інтеграції]


    * [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 Coverity Scan]
    * [https://scan.coverity.com/projects/kbibtex Сканування покриття коду]
     
    * [https://t-fischer.dreamwidth.org/tag/kbibtex Блог, який присвячено KBibTeX]


    == Getting the Source Code ==
    == Отримання початкового коду програми ==


    KBibTeX's sources are available through KDE's Git infrastructure, the repository's name is {{path|kbibtex}}. How to clone a Git repository is explained in the [https://techbase.kde.org/Development/Git/Recipes#Cloning_a_Repository Git Recipes in TechBase]. In short, run the following command in your terminal:
    Початкові коди KBibTeX доступні з інфраструктури Git KDE, назва сховища — {{path|kbibtex}}. Спосіб клонування сховища Git описано у [https://techbase.kde.org/Development/Git/Recipes#Cloning_a_Repository рецептах щодо Git на TechBase]. Якщо коротко, слід віддати таку команду у терміналі:


    {{Input|git clone git://anongit.kde.org/kbibtex}}
    {{Input|git clone git://anongit.kde.org/kbibtex}}


    You can browse KBibTeX's source code at [https://cgit.kde.org/kbibtex.git KDE's Git server].
    Переглянути код KBibTeX можна за допомогою [https://cgit.kde.org/kbibtex.git сервера git KDE].


    === Branches ===
    === Гілки ===


    Main development happens in the ''master branch'' (named {{path|master}}). It is an objective that this branch is functional and mostly stable, although it is not guaranteed. Use this branch to enjoy new features.
    Основна розробка відбувається у «основній гілці» (має назву {{path|master}}). Розробники намагаються зробити так, щоб ця гілка була працездатною і майже стабільною, але її стабільність не гарантовано. Ви можете скористатися цією гілкою для того, щоб мати доступ до найновіших можливостей.


    For releases, ''release branches'' are created. The naming scheme is {{path|kbibtex/}}''versionnumber'', where ''versionnumber'' may be something like {{path|0.6}}. Actual releases are tagged commits ('tags') within such a branch, for example {{path|v0.5.1}}. There won't be branches for bug fix releases, e.g. no {{path|kbibtex/0.6.1}}.
    Для випусків створюються ''гілки випусків''. Назви для цих гілок формуються таким чином: {{path|kbibtex/}}''номер версії'', де вмістом рядка ''номер версії'' може бути щось таке: {{path|0.6}}. Самі випуски у такій гілці визначаються позначеними внесками («мітками»), наприклад {{path|v0.5.1}}. Гілок для випусків із виправленнями вад не створюється, наприклад, немає гілки {{path|kbibtex/0.6.1}}.


    For bugs or features that require multiple commits and where individual commits may break {{path|master}} or a release branch, so-called ''feature branches'' are used. These branches are supposed to track {{path|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 {{path|feature/zotero}}, which may contain the code for an improved Zotero support. Names for bug report-related branches are {{path|bugs/}}''bugsystemnumber'' (for example {{path|bugs/kde338375}}) , where ''bugsystem'' would be {{path|kde}} or the name of a Linux distribution and ''number'' the actual bug number. Feature branches start with {{path|feature/}} followed by a short descriptive name for this feature (all lowercase, no spaces). Merged branches will be delete after some time.
    For bugs or features that require multiple commits and where individual commits may break {{path|master}} or a release branch, so-called ''feature branches'' are used. These branches are supposed to track {{path|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 {{path|feature/zotero}}, which may contain the code for an improved Zotero support. Names for bug report-related branches are {{path|bugs/}}''bugsystemnumber'' (for example {{path|bugs/kde338375}}) , where ''bugsystem'' would be {{path|kde}} or the name of a Linux distribution and ''number'' the actual bug number. Feature branches start with {{path|feature/}} followed by a short descriptive name for this feature (all lowercase, no spaces). Merged branches will be delete after some time.


    == Compiling the Code ==
    == Збирання з коду ==


    The following instructions provide information how to compile KBibTeX on the command line. Instructions are similar but differ slightly between KDE4-based builds (e.g. branch {{path|kbibtex/0.5}}) and KDE Frameworks 5-based builds (e.g. branch {{path|master}}). When compiling KBibTeX from inside of an IDE like KDevelop or Qt Creator, those settings have to be applied as well.
    Наведені нижче настанови стосуються збирання KBibTeX з командного рядка. Настанови для збирання на основі KDE4 (наприклад, для гілки {{path|kbibtex/0.5}}) і на основі KDE Frameworks 5 (наприклад, для гілки {{path|master}}) дещо відрізняються. Якщо ви збиратимете KBibTeX з комплексного середовища для розробки, наприклад KDevelop або Qt Creator, слід також застосувати вказані нижче параметри.


    === Running CMake ===
    === Запуск CMake ===


    KBibTeX is configured using CMake. There are a few options relevant for the configuration of this project:
    Збирання KBibTeX налаштовується за допомогою CMake. Для збирання проекту передбачено декілька параметрів:


    # <code>CMAKE_INSTALL_PREFIX:PATH</code> specifies the installation location. There are a number of choices available for this option:
    # <code>CMAKE_INSTALL_PREFIX:PATH</code> визначає місце, де зберігатиметься зібрана програма. Існує декілька варіантів значень для цього параметра:
    ## The location of your KDE installation, for example {{Path|/usr}}. The commands <code>kde4-config --prefix</code> (compiling for KDE4) or <code>kf5-config --prefix</code> (compiling for KDE Frameworks 5) print this location. Requires root permissions (e. g. via sudo). Caution: This choice will interfere with the package management.
    ## Каталог, куди встановлено вашу версію KDE, наприклад {{Path|/usr}}. Команди <code>kde4-config --prefix</code> (збирання для KDE4) or <code>kf5-config --prefix</code> (збирання для KDE Frameworks 5) виводять цю адресу. Потрібні права доступу адміністратора (наприклад, за допомогоюо sudo). Попередження: цей варіант не варто використовувати разом із системою для керування пакунками.
    ## A directory outside the package management's control, for example {{Path|/usr/local}}. Requires setting some environment variables as explained below. This installation stays available across reboots and is available to all users. Requires root permissions (e. g. via sudo).
    ## Каталог поза каталогами системи керування пакунками, наприклад {{Path|/usr/local}}. Потребує встановлення певних змінних середовища, пояснення щодо яких наведено нижче. Встановлена до цього каталогу версія зможе пережити перезавантаження системи і буде доступною для усіх користувачів. Потребує прав доступу адміністратора (ці права можна отримати за допомогою, наприклад, команди sudo).
    ## A user-writable directory like {{Path|/tmp/usr}} or {{Path|~/usr}}. Similar to above choice, it requires setting some environment variables, but no root permissions. Many distributions are configured to clean {{Path|/tmp}} on reboot.
    ## Доступний для запису користувачам каталог, наприклад {{Path|/tmp/usr}} або {{Path|~/usr}}. Подібний до попереднього варіант, потребує встановлення змінних середовища, але не потребує прав доступу адміністратора. У багатьох дистрибутивах налаштовано спорожнення каталогу {{Path|/tmp}} під час перезавантаження системи.
    # <code>CMAKE_BUILD_TYPE</code> determines the amount of debug information included in the final code. Regular users may set it to <code>release</code>, developers to <code>debug</code>, and for step-by-step debugging <code>debugfull</code> works best. All available options are discussed in the [https://techbase.kde.org/Development/CMake/Addons_for_KDE#Buildtypes CMake documentation in TechBase].
    # <code>CMAKE_BUILD_TYPE</code> determines the amount of debug information included in the final code. Regular users may set it to <code>release</code>, developers to <code>debug</code>, and for step-by-step debugging <code>debugfull</code> works best. All available options are discussed in the [https://techbase.kde.org/Development/CMake/Addons_for_KDE#Buildtypes CMake documentation in TechBase].


    A complete example looks like this:
    Приклад команди повністю:
    {{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}}


    === Compiling ===
    === Компіляція ===


    GNU Make is the default choice for source code compilation. The number of parallel processes should be specified to shorten the time to finish on multi-core systems. The priority of the compilation tasks may get reduced.
    GNU Make є типовим вибором для збирання початкових кодів. Для пришвидшення збирання коду на багатопроцесорних системах слід вказати кількість паралельних процесів збирання. Пріоритетність завдань зі збирання варто робити дещо нижчою за типову.


    {{Input|nice -n 16 make -j$(nproc)}}
    {{Input|nice -n 16 make -j$(nproc)}}


    To make use of of [https://ninja-build.org/ ninja], the <code>cmake</code> statement above has to include the argument <code>-GNinja</code>. Combining both cmake and ninja may look like this:
    Для використання [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}}


    == Installation ==
    == Встановлення ==


    KBibTeX uses KDE's KParts technology, which requires you to install some libraries. KBibTeX may not run properly if the following steps are omitted.
    У KBibTeX використано технологію KDE KParts, для реалізації якої вам доведеться встановити деякі бібліотеки. Ви не зможете належним чином користуватися KBibTeX, якщо не виконаєте настанови щодо наступних кроків.


    Running
    Команда
    {{Input|make install}}
    {{Input|make install}}
    will install KBibTeX into the directory as specified as installation prefix earlier.
    встановить KBibTeX до каталогу, який було вказано як префікс встановлення раніше.


    Unless the installation prefix equals the KDE install directory, the following environment variables have to be specified:
    Якщо як префікс встановлення не було вказано каталог, куди встановлено інші пакунки KDE, слід визначити такі змінні середовища:


    # '''Only for KDE4''': Set variable <code>KDEDIRS</code> to include the KDE installation directory and KBibTeX's installation directory, for example {{Path|/usr:/tmp/usr}}
    # '''Лише для KDE4''': встановіть таке значення змінної <code>KDEDIRS</code>, щоб до нього було включено каталог встановлення KDE і каталог встановлення KBibTeX, наприклад {{Path|/usr:/tmp/usr}}
    # '''Only for KF5''': Set variable <code>QT_PLUGIN_PATH</code> to include the plugin directory inside the library directory of KBibTeX's installation directory, for example {{Path|/usr/lib/plugins:/usr/lib/qt5/plugins:/tmp/usr/lib64/plugins/}}
    # '''Лише для KF5''': встановіть значення змінної середовища <code>QT_PLUGIN_PATH</code> так, щоб до неї було включено каталог додатків у каталозі бібліотеки каталогу, куди встановлено KBibTeX, наприклад {{Path|/usr/lib/plugins:/usr/lib/qt5/plugins:/tmp/usr/lib64/plugins/}}
    # Set variable <code>LD_LIBRARY_PATH</code> to the library directory inside KBibTeX's installation directory, for example {{Path|/tmp/usr/lib64}}
    # Встановіть для змінної <code>LD_LIBRARY_PATH</code> значення, яке вказуватиме на каталог бібліотек у каталозі встановлення KBibTeX, наприклад, {{Path|/tmp/usr/lib64}}
    # Set variable <code>XDG_DATA_DIRS</code> to include the shared data directories of the KDE installation directory, KBibTeX's installation directory, and other relevant prefixes, for example {{Path|/usr/share:/usr/local/share:/tmp/usr/share}}
    # Встановіть для змінної <code>XDG_DATA_DIRS</code> значення так, щоб до нього було включено каталоги спільних даних каталогу, до якого встановлено KDE, каталог встановлення KBibTeX та інші відповідні префікси, наприклад {{Path|/usr/share:/usr/local/share:/tmp/usr/share}}


    Run <code>kbuildsycoca4</code> (KDE4) or <code>kbuildsycoca5</code> (KDE Frameworks 5) to make the KDE subsystem aware of the new libraries.
    Запустіть <code>kbuildsycoca4</code> (KDE4) або <code>kbuildsycoca5</code> (KDE Frameworks 5), щоб повідомити підсистему KDE про появу нових бібліотек.


    Now KBibTeX can be started, like shown in this example:
    Тепер KBibTeX можна запустити, як це показано у прикладі:


    {{Input|/tmp/usr/bin/kbibtex}}
    {{Input|/tmp/usr/bin/kbibtex}}


    == Git cookbook ==
    == Настанови з роботи у git ==


    A number of pages in [https://techbase.kde.org TechBase], [https://userbase.kde.org UserBase], and [https://community.kde.org Community] discuss using Git for source code management. This section shows some examples how Git is used for KBibTeX.
    Обговоренню використання git для керування початковим кодом програм присвячено багато сторінок [https://techbase.kde.org TechBase], [https://userbase.kde.org UserBase] та [https://community.kde.org Community]. У цьому розділі наведено декілька прикладів використання git у контексті KBibTeX.


    === Create a Feature or Bug Branch ===
    === Створення гілки для роботи над можливістю чи усування вади ===


    In below example, replace {{path|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 {{path|bugs/kdeNNNN}}, where NNNN is the bug number in [https://bugs.kde.org KDE's bug tracker]. Bugs in other bug trackers such as [https://gna.org/bugs/?group=kbibtex Gna!] or your distribution may use a different prefix such as {{path|bugs/gnaNNNN}} or {{path|bugs/gentooNNNN}}.
    In below example, replace {{path|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 {{path|bugs/kdeNNNN}}, where NNNN is the bug number in [https://bugs.kde.org KDE's bug tracker]. Bugs in other bug trackers such as [https://gna.org/bugs/?group=kbibtex Gna!] or your distribution may use a different prefix such as {{path|bugs/gnaNNNN}} or {{path|bugs/gentooNNNN}}.
    Line 89: Line 94:
    {{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}}


    === Pushing a Local Feature or Bug Branch ===
    === Запис локальної гілки можливості чи вади ===


    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, {{path|personalpublicclone}} is your personal, public Git repository where you want to push to.
    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, {{path|personalpublicclone}} is your personal, public Git repository where you want to push to.


    To publish you changes, use a command like this:
    Для оприлюднення внесених вами змін скористайтеся такою командою:


    {{Input|git push personalpublicclone feature/xxxx:feature/xxxx}}
    {{Input|git push personalpublicclone feature/xxxx:feature/xxxx}}


    Others can add your repository to their local clone of KBibTeX's git and clone your branch (assuming in this example it is located on KDE's Git server):
    Інші розробники зможуть додати ваше сховище до власного локального клону сховища git KBibTeX, клонувати вашу гілку (у нашому прикладі ми припускаємо, що гілку розташовано на серверіgit KDE):


    {{Input|git remote add someonespublicclone [email protected]:clones/kbibtex/NAME/kbibtex # run once
    {{Input|git remote add someonespublicclone [email protected]:clones/kbibtex/NAME/kbibtex # цю команду слід віддати один раз
    git fetch someonespublicclone feature/xxxx && git checkout feature/xxxx # every time to get updates
    git fetch someonespublicclone feature/xxxx && git checkout feature/xxxx # під час кожного сеансу отримання оновлень
    git remote rm someonespublicclone && git checkout master && git branch -D feature/xxxx # to erase branch}}
    git remote rm someonespublicclone && git checkout master && git branch -D feature/xxxx # команда, щоб вилучити гілку}}


    === Create Release Branches and Tags ===
    === Створення гілок і міток випусків ===


    To create a release branch from {{path|master}} and push it to {{path|origin}}, run
    Для створення гілки випуску з {{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}}


    To tag a release in a release branch, run the following commands:
    Для створення випуску у гілці випуску віддайте такі команди:


    {{Input|git checkout kbibtex/0.6 # be in right branch
    {{Input|git checkout kbibtex/0.6 # перейти до відповідної гілки
    git pull --ff-only # get latest changes from origin
    git pull --ff-only # отримати найсвіжіші оновлення з початкового сховища
    git status # just check that everything is ok
    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 # explicitly push tag to origin}}
    git push --tags # явним чином надіслати мітку до початкового сховища}}


    == Creating a Release ==
    == Створення випуску ==


    {{Info|This section describes how to create releases based on KDE4 (kdelibs4). It will not work for KDE Frameworks 5.}}
    {{Info|This section describes how to create releases based on KDE4 (kdelibs4). It will not work for KDE Frameworks 5.}}
    Line 124: Line 129:
    {{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}}


    Fetching documentation and translation files is the most time-consuming part of this process.
    Отримання файлів перекладу інтерфейсу і документації є найдовшим етапом у цьому процесі.


    Detached cryptographic hashes can be created and signed like this:
    Криптографічні хеші можна створити і записати ось так:


    {{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}}

    Revision as of 19:58, 9 December 2017

    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 determines the amount of debug information included in the final code. Regular users may set it to release, developers to debug, and for step-by-step debugging debugfull works best. All available options are discussed in the CMake documentation in 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 # явним чином надіслати мітку до початкового сховища

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

    Information

    This section describes how to create releases based on KDE4 (kdelibs4). It will not work for KDE Frameworks 5.

    To create a release, use the Ruby scripts from the git.kde.org:releaseme.git repository. KBibTeX's package generation is configured through files kbibtex.rb and kbibtexrc. Configure those files or invoke kbibtex.rb with the correct arguments, such as:

    ./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