KBibTeX/Développement
Ressources diverses utiles
Les liens suivants se rapportent à d'autres pages web pages ou ressources en rapport avec le développement de KBibTeX.
Récupérer le code source
Les sources de KBibTeX sont disponibles dans Git KDE, le nom du dépôt est kbibtex. La manière de cloner un dépôt Git est expliquée dans les Recettes Git de TechBase. En résumé, exécutez la commande suivante dans votre terminal:
git clone git://anongit.kde.org/kbibtex
Vous pouvez voir le code source de KBibTeX sur le serveur Git de KDE.
Branches
Le développement principal (Main) se fait dans la branche maître (appelée master). L'objectif est que cette branche soit fonctionnelle et stable la lplupart du temps, mais cela n'est pas garanti. Utilisez cette branche pour essayer les nouvelles fonctions.
Pour les versions, des branches de version sont créées. La règle de nommage est kbibtex/numéroDeVersion, où le numéro de version est quelque chose comme 0.6. Les versions actuelles sont des labels ('tags') de validation (commit) à l'intérieur de cette branche, par exemple v0.5.1. Il n'y aura pas de branches pour les versions concernant la correction de bogues, par exemple pas de 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.
Compiler le code
Les instructions suivantes donnent des informations sur la manière de de compiler KBibTeX à partir de la ligne de commande. Les instructions sont similaires mais diffèrent légèrement entre les compilations basées sur KDE4 (par exemple la branche kbibtex/0.5) et celles basées sur KDE Frameworks 5 (par exemple la branche master). En compilant KBibTeX à partir d'un IDE comme KDevelop ou Qt Creator, ces initialisations doivent également être réalisées.
Exécuter CMake
KBibTeX est configuré en utilisant CMake. Il existe quelques options particulières pour la configuration de ce projet:
CMAKE_INSTALL_PREFIX:PATH
donne l'emplacement de l'installation. Il existe un nombre de choix disponibles pour cette option :- The location of your KDE installation, for example /usr. The commands
kde4-config --prefix
(compiling for KDE4) orkf5-config --prefix
(compiling for KDE Frameworks 5) print this location. Picking this option most likely will require root permissions (e. g. via sudo) for the actual installation. Caution: This choice will interfere with the package management. - A directory outside the package management's control, for example /usr/local. Requires setting some environment variables as explained below. This installation stays available across reboots and is available to all users. Picking this option most likely will require root permissions (e. g. via sudo) for the actual installation.
- Un répertoire accessible en écriture par l'utilisateur comme /tmp/usr ou ~/usr. Similaire au choix ci-dessus, il nécessite d'initialiser certaines variables d'environnement, mais pas les droits « root ». Plusieurs distributions sont configurées pour vider /tmp au redémarrage.
- The location of your KDE installation, for example /usr. The commands
CMAKE_BUILD_TYPE
determine la quantité d'informations de deboggage incluse dans le code final. Les utilisateurs réguliers peuvent la positionner àrelease
, les développeurs àdebug
, et pour la mise au point pas-à-pas, àdebugfull
c'est ce qui fonctionne le mieux. Toutes les options sont discutées dans la documentation CMake dans TechBase.
Un exemple complet ressemble à ceci:
cmake -DCMAKE_INSTALL_PREFIX:PATH=/tmp/usr -DCMAKE_BUILD_TYPE=debug ../kbibtex
Compilation
Le Make de GNU est le choix par défaut pour la compilation du code source. Le nombre de processus parallèles doit être précisé pour raccourcir le temps restant sur les systèmes multi-coeurs. La priorité des tâches de compilation peut être abaissée.
nice -n 16 make -j$(nproc)
Pour que make utilise ninja, l'instruction cmake
ci-dessus doit inclure l'argument -GNinja
. La combinaison à la fois de cmake et de ninja pourrait ressembler à ceci:
cmake -GNinja -DCMAKE_INSTALL_PREFIX:PATH=/tmp/usr -DCMAKE_BUILD_TYPE=debug ../kbibtex && ninja
Installation
KBibTeX utilise la technologie KParts de KDE, qui nécessite que vous aayez installé quelques bibliothèques. KBibTeX peut ne pas fonctionner correctement si les étapes suivantes sont omises.
Running
make install
will install KBibTeX into the directory as specified as installation prefix earlier. Depending on your choice of installation prefix, this statement has to be run with sudo or alike.
Unless the installation prefix equals the KDE install directory, the following environment variables have to be specified. You may set the variables temporarily in an active shell session, permanently setting them in your shell's configuration, or create a small shell script that both sets those variables and then launches your custom KBibTeX installation.
- Seulement pour KDE4: initialiser la variable
KDEDIRS
pour inclure le répertoire d'installation de KDE et celui de KBibTeX, par exemple /usr:/tmp/usr - Only for KF5: Set variable
QT_PLUGIN_PATH
to include the plugin directory inside the library directory of KBibTeX's installation directory, for example /usr/lib/plugins:/usr/lib/qt5/plugins:/tmp/usr/lib64/plugins/ - Set variable
LD_LIBRARY_PATH
to the library directory inside KBibTeX's installation directory, for example /tmp/usr/lib64 - Set variable
XDG_DATA_DIRS
to include the shared data directories of the KDE installation directory, KBibTeX's installation directory, and other relevant prefixes, for example /usr/share:/usr/local/share:/tmp/usr/share
Run kbuildsycoca4
(KDE4) or kbuildsycoca5
(KDE Frameworks 5) to make the KDE subsystem aware of the new libraries.
Now KBibTeX can be started, like shown in this example:
/tmp/usr/bin/kbibtex
Cookbook de Git
A number of pages in TechBase, UserBase, and Community discuss using Git for source code management. This section shows some examples how Git is used for KBibTeX.
Créer une branche de développement de fonction ou de correction de bogue
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
Pousser une branche de fonctionalité locale ou de correction de bogue
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.
Pour publier vos modifications, utilisez une commande comme :
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 remote add someonespublicclone git@git.kde.org:clones/kbibtex/NAME/kbibtex # run once git fetch someonespublicclone feature/xxxx && git checkout feature/xxxx # every time to get updates git remote rm someonespublicclone && git checkout master && git branch -D feature/xxxx # to erase branch
Créer des branches de livraison et des labels
To create a release branch from master and push it to origin, run
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:
git checkout kbibtex/0.6 # be in right branch git pull --ff-only # get latest changes from origin git status # just check that everything is ok git tag -s -u GPGKEY -m "Tagging 0.6" v0.6 # actual tagging, GnuPG signed git push --tags # explicitly push tag to origin
Créer une version
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
Fetching documentation and translation files is the most time-consuming part of this process.
Detached cryptographic hashes can be created and signed like this:
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