KBibTeX/Development/fr: Difference between revisions

From KDE UserBase Wiki
(Created page with "* [https://scan.coverity.com/projects/kbibtex analyse de couverture]")
(Updating to match new version of source page)
 
(77 intermediate revisions by 2 users not shown)
Line 5: Line 5:
Les liens suivants se rapportent à d'autres pages web pages ou ressources en rapport avec le développement de KBibTeX.
Les liens suivants se rapportent à d'autres pages web pages ou ressources en rapport avec le développement de KBibTeX.


<div class="mw-translate-fuzzy">
* [https://phabricator.kde.org/project/view/176/ page projet de Phabricator]
* [https://phabricator.kde.org/project/view/176/ page projet de Phabricator]
</div>
** [https://phabricator.kde.org/source/kbibtex/ Vue de Diffusion du dépôt Git]
** [https://phabricator.kde.org/source/kbibtex/ Vue de Diffusion du dépôt Git]


* [https://cgit.kde.org/kbibtex.git page web du dépôt 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=changeddate%20DESC%2Cpriority%2Cbug_severity&product=KBibTeX&query_format=advanced Rapports de bogues]


* [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 rapports de bogue]
<div class="mw-translate-fuzzy">
 
* [https://build.kde.org/job/Extragear/job/kbibtex/  Intégration continue]
* [https://build.kde.org/job/Extragear%20kbibtex%20kf5-qt5%20SUSEQt5.9/ intégration continue]
</div>


* [https://ebn.kde.org/krazy/reports/extragear/office/kbibtex/index.html Réseau du petit déjeuner anglais]
* [https://ebn.kde.org/krazy/reports/extragear/office/kbibtex/index.html Réseau du petit déjeuner anglais]
Line 18: Line 20:
* [https://scan.coverity.com/projects/kbibtex analyse de couverture]
* [https://scan.coverity.com/projects/kbibtex analyse de couverture]


* [https://t-fischer.dreamwidth.org/tag/kbibtex Blog postings on KBibTeX]
* [https://t-fischer.dreamwidth.org/tag/kbibtex poster des billets sur le blogue de KBibTeX]
 
== Démarrage rapide pour exécuter KBibTeX à partir de Git ==
 
<div class="mw-translate-fuzzy">
Une méthode rapide et facile pour récupérer, compiler, et exécuter KBibTeX à partir de Git, par exemple pour le dernier code de la branche {{path|master}} , est de récupérer le script Bash [https://cgit.kde.org/scratch/thomasfischer/kbibtex-related.git/tree/run/run-kbibtex.sh {{path|run-kbibtex.sh}}] du [https://cgit.kde.org/scratch/thomasfischer/kbibtex-related.git/ dépôt Git relatif à 'KBibTeX' de Thomas Fischer].
</div>
 
Pour lancer le script, soit vous le rendez exécutable et vous le lancez par {{Input/fr|./run-kbibtex.sh}} soit vous l'invoquez par {{Input/fr|bash run-kbibtex.sh}}
 
Par défaut le script va cloner le dépôt Git de KBibTeX vers un répertoire temporaire, le compiler, l'installer dans un dossier temporaire, et exécuter cette installation temporaire de KBibTeX.
 
Il n'est pas utile d'exécuter ce script en tant que root ni avec sudo. Il ne va faire aucune modification permanente sur votre système.  Pour compiler KBibTeX, des outils variés et des bibliothèques de développement doivent d'abord être disponibles, c'est à dire installés via le système de gestion de paquets de la distribution.
 
<div class="mw-translate-fuzzy">
Il existe un fichier [https://cgit.kde.org/scratch/thomasfischer/kbibtex-related.git/tree/run/README.txt README.txt] qui explique le script de manière plus approfondie.
</div>


== Getting the Source Code ==
== Récupérer le code source ==


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:
Les sources de KBibTeX sont disponibles dans Git KDE, le nom du dépôt est {{path|kbibtex}}. La manière de cloner un dépôt Git est expliquée dans les [https://techbase.kde.org/Development/Git/Recipes#Cloning_a_Repository Recettes Git de TechBase]. En résumé, exécutez la commande suivante dans votre terminal:


{{Input|git clone git://anongit.kde.org/kbibtex}}
<div class="mw-translate-fuzzy">
{{Input/fr|git clone git://anongit.kde.org/kbibtex}}
</div>


You can browse KBibTeX's source code at [https://cgit.kde.org/kbibtex.git KDE's Git server].
<div class="mw-translate-fuzzy">
Vous pouvez voir le code source de KBibTeX sur le [https://cgit.kde.org/kbibtex.git serveur Git de KDE].
</div>


=== Branches ===
=== 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.
Le développement principal (Main) se fait dans la ''branche maître'' (appelée {{path|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.


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}}.
Pour les versions, des ''branches de version'' sont créées. La règle de nommage est {{path|kbibtex/}}''numéroDeVersion'', où le numéro de version est quelque chose comme {{path|0.6}}. Les versions actuelles sont des labels ('tags') de validation (commit) à l'intérieur de cette branche, par exemple {{path|v0.5.1}}. Il n'y aura pas de branches pour les versions concernant la correction de bogues, par exemple pas de {{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.
Pour les bogues ou les fonctionnalités qui nécessitent plusieurs validations (commit) et où des validations individuelles peuvent casser {{path|master}} ou une branche de version, les "branches de fonctionnalités" sont utilisées. Ces branches sont supposées suivre {{path|master}} (typique pour les fonctionnalités) ou une branche de version (typique pour les bogues). Les branches pour les bogues doivent être fusionnées dans la branche de version où le bogue a été signalé ainsi que dans la branche master ( principale - pour les versions futures).
Les branches de fonctions sont fusionnées dans la branche principale (master), dans certains cas, en branches de versions, où aucune version n'a encore été étiquetée, et seulement dans de rares cas, reportées à postériori pour les branches de version avec des versions publiées. Un exemple de branche de fonctionnalité serait {{path|feature/zotero}}, qui peut contenir le code d'une prise en charge améliorée de Zotero.
Les noms des branches associées aux rapports de bogues sont {{path|bugs/}}''bugsystemnumber'' (par exemple {{path|bugs/kde338375}}), ''bugsystem'' serait {{path|kde}} ou le nom d'une distribution Linux et ''numéro'', le numéro du bogue actuel. Les branches de fonctionnalités commencent par {{path|feature/}} suivi d'un nom descriptif court pour cette fonctionnalité (toutes en minuscules, sans espaces). Les branches fusionnées seront supprimées après un certain temps.


== Compiling the Code ==
== Compiler le 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.
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 {{path|kbibtex/0.5}}) et celles basées sur KDE Frameworks 5 (par exemple la branche {{path|master}}). En compilant KBibTeX à partir d'un IDE comme KDevelop ou Qt Creator, ces initialisations doivent également être réalisées.


=== Running CMake ===
=== Exécuter CMake ===


KBibTeX is configured using CMake. There are a few options relevant for the configuration of this project:
KBibTeX est configuré en utilisant CMake. Il existe quelques options particulières pour la configuration de ce projet:


# <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> donne l'emplacement de l'installation. Il existe un nombre de choix disponibles pour cette option :
## 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. 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.
## L'emplacement de votre installation KDE, par exemple {{Path|/usr}}. Les commandes <code>kde4-config --prefix</code> (compilations KDE4) ou <code>kf5-config --prefix</code> (compilations KDE Frameworks 5) affichent cet emplacement. En choisissant cette option vous devrez probablement avoir les droits root (par exemple via sudo) pour la présente installation. Attention: ce choix interfère avec la gestion des archives.
## 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. Picking this option most likely will require root permissions (e. g. via sudo) for the actual installation.
## Un répertoire en dehors du controle de la gestion de l'archive, par exemple {{Path|/usr/local}}. Nécessite d'initialiser les quelques variables d'environnement décrites ci-dessous. Cette installation reste disponible au-delà des redémarrages et pour tous les utilisateurs. En choisissant cette option, il est probable que vous devrez avoir les droits root (par exemple via sudo) pour la présente installation.
## 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.
## Un répertoire accessible en écriture par l'utilisateur comme {{Path|/tmp/usr}} ou {{Path|~/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 {{Path|/tmp}} au redémarrage.
# <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> determine la quantité d'informations de deboggage incluse dans le code final. Les utilisateurs réguliers peuvent la positionner à <code>release</code>, les développeurs à <code>debug</code>, et pour la mise au point pas-à-pas, à  <code>debugfull</code> c'est ce qui fonctionne le mieux. Toutes les options sont discutées dans la [https://techbase.kde.org/Development/CMake/Addons_for_KDE#Buildtypes documentation CMake dans TechBase].


A complete example looks like this:
Un exemple complet ressemble à ceci:
{{Input|1=cmake -DCMAKE_INSTALL_PREFIX:PATH=/tmp/usr -DCMAKE_BUILD_TYPE=debug ../kbibtex}}
{{Input/fr|1=cmake -DCMAKE_INSTALL_PREFIX:PATH=/tmp/usr -DCMAKE_BUILD_TYPE=debug ../kbibtex}}


=== Compiling ===
=== Compilation ===


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


{{Input|nice -n 16 make -j$(nproc)}}
{{Input/fr|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:
Pour que make utilise [https://ninja-build.org/ ninja], l'instruction <code>cmake</code> ci-dessus doit inclure l'argument <code>-GNinja</code>. La combinaison à la fois de cmake et de ninja pourrait ressembler à ceci:


{{Input|1=cmake -GNinja -DCMAKE_INSTALL_PREFIX:PATH=/tmp/usr -DCMAKE_BUILD_TYPE=debug ../kbibtex && ninja}}
{{Input/fr|1=cmake -GNinja -DCMAKE_INSTALL_PREFIX:PATH=/tmp/usr -DCMAKE_BUILD_TYPE=debug ../kbibtex && ninja}}


== Installation ==
== 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 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
En exécutant
{{Input|make install}}
{{Input/fr|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.
vous installerez KBibTeX dans le répertoire comme spécifié plus tôt en tant que préfixe d'installation. En fonction de votre choix pour le préfixe d'installation, cette commande doit être exécutée avec sudo ou 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.
A moins que le préfixe d'installation ne soit le répertoire d'installation de KDE, les variables d'environnement suivantes doivent être initialisées. Vous pouvez les initialiser temporairement dans une session shell active, ou d'une manière permanente dans la configuration de votres shell, ou encore créer un petit script de shell qui à la fois initialise ces variables et exécute votre installation de KBibTeX personnalisée.


# '''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}}
# '''Seulement pour KDE4''': initialiser la variable <code>KDEDIRS</code> pour inclure le répertoire d'installation de KDE et celui de KBibTeX, par exemple {{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/}}
# '''Seulement pour KF5''': initialisez la variable <code>QT_PLUGIN_PATH</code> pour inclure le répertoire des greffons (plugin) dans le répertoire des bibliothèques du répertoire d'installation de KBibTeX, par exemple  {{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}}
# Initialiser la variable <code>LD_LIBRARY_PATH</code> vers le répertoire des bibliothèques à dans le répertoire d'installation de KBibTeX, par exemple {{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}}
# Initialisez la variable <code>XDG_DATA_DIRS</code> pour inclure les répertoires de données partagées du repertoire d'installation de KDE, celui de KBibTeX, ainsi que les autres préfixes associés, par exemple {{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.
Exécuter <code>kbuildsycoca4</code> (KDE4) ou <code>kbuildsycoca5</code> (KDE Frameworks 5) pour que le sous-système KDE connaisse les nouvelles bibliothèques.


{{attention|KBibTeX consists of the actual progam and a number of libraries. To avoid undefined behavior, it is important to uninstall any other KBibTeX installations (e.g. those done via the Linux distribution's package management system) and to remove any remaining KBibTeX libraries (e.g. those files found anywhere under {{Path|/usr}} that match the pattern {{Path|*kbibtex*.so*}}.}}
{{attention/fr|KBibTeX est composé du programme actuel ainsi que d'un certain nombre de bibliothèques. Pour éviter les comportements indéfinis, il est important de désinstaller toute version de KBibTeX actuellement présente (c'st à dire celles installées par le système de gestion de la distribution Linux) et de supprimer toute bibliothèque KBibTeX qui resterait (c'est à dire les fichiers accessibles par {{Path|/usr}}) qui correspondent à l'expression {{Path|*kbibtex*.so*}}.}}


Now KBibTeX can be started, like shown in this example:
Maintenant KBibTeX peut être exécuté, comme indiqué dans cet exemple :


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


== Git cookbook ==
== Cookbook de 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.
Un certain nombre de pages dans [https://techbase.kde.org TechBase], [https://userbase.kde.org UserBase], et [https://community.kde.org Community] présentent l'utilisation de Git pour la gestion du code source. Cette section ne montre que quelques exemples sur la façon dont Git est utilisé pour KBibTeX.


=== Create a Feature or Bug Branch ===
=== Créer une branche de développement de fonction ou de correction de bogue ===


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}}.
Dans l'exemple ci-dessous, replacez {{path|xxxx}} par un nom court et concis représentant une fonctionalité à développer (comme expliqué ci-dessus). Les branches relatives aux corrections de bogues sont créées de manière similaire, mais suivent la structure {{path|bugs/kdeNNNN}}, NNNN est le numéro de bogue dans le [https://bugs.kde.org suivi des bogues de KDE]. Les bogues dans les autres gestionnaires de bogues tel que [https://gna.org/bugs/?group=kbibtex Gna!] ou votre distribution, peuvent être numérotés avec un préfixe différent tel que {{path|bugs/gnaNNNN}} ou bien {{path|bugs/gentooNNNN}}.


{{Input|1=git branch --track feature/xxxx origin/master && git checkout feature/xxxx}}
{{Input/fr|1=git branch --track feature/xxxx origin/master && git checkout feature/xxxx}}


=== Pushing a Local Feature or Bug Branch ===
=== 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, {{path|personalpublicclone}} is your personal, public Git repository where you want to push to.
Pour minimiser le risque de perturber le répertoire officiel de KBibTeX ou lorsque vous n'avez pas d'accès en écriture, vous pouvez pousser (push) vos branches locales dans un autre dépôt Git pour permettre aux autres personnes de voir vos modifications. Dans l'exemple ci-dessous, {{path|personalpublicclone}} est votre propre dépôt Git publique dans lequel vous voulez faire le push.


To publish you changes, use a command like this:
Pour publier vos modifications, utilisez une commande comme :


{{Input|git push personalpublicclone feature/xxxx:feature/xxxx}}
{{Input/fr|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):
Les autres utilisateurs peuvent ajouter votre dépôt à leur clône local du KBibTeX de Git et ainsi clôner votre branche (en supposant dans cet exemple qu'elle soit déja sur le serveur Git de KDE) :


{{Input|git remote add someonespublicclone [email protected]:clones/kbibtex/NAME/kbibtex # run once
{{Input/fr|git remote add someonespublicclone [email protected]:clones/kbibtex/NAME/kbibtex # run once
git fetch someonespublicclone feature/xxxx && git checkout feature/xxxx # every time to get updates
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}}
git remote rm someonespublicclone && git checkout master && git branch -D feature/xxxx # to erase branch}}


=== Create Release Branches and Tags ===
=== Créer des branches de livraison et des labels ===


To create a release branch from {{path|master}} and push it to {{path|origin}}, run
Pour créer une branche de version à partir du {{path|master}} et le pousser (push) dans {{path|origin}}, exécutez :


{{Input|git checkout -b kbibtex/0.6 master && git push origin kbibtex/0.6}}
{{Input/fr|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:
Pour poser un label de version dans une branche de version, exécutez les commandes suivantes :


{{Input|git checkout kbibtex/0.6 # be in right branch
{{Input/fr|git checkout kbibtex/0.6 # be in right branch
git pull --ff-only # get latest changes from origin
git pull --ff-only # get latest changes from origin
git status # just check that everything is ok
git status # just check that everything is ok
Line 124: Line 148:
git push --tags # explicitly push tag to origin}}
git push --tags # explicitly push tag to origin}}


== Creating a Release ==
== Créer une version ==


{{Info|This section describes how to create releases based on KDE4 (kdelibs4). It will not work for KDE Frameworks 5.}}
{{Info/fr|Cette section décrit la manière de créer des versions basées sur KDE4 (kdelibs4). Cela ne fonctionnera pas pour KDE Frameworks 5.}}
To create a release, use the Ruby scripts from the {{path|git.kde.org:releaseme.git}} repository. KBibTeX's package generation is configured through files {{path|kbibtex.rb}} and {{path|kbibtexrc}}. Configure those files or invoke {{path|kbibtex.rb}} with the correct arguments, such as:
Pour créer une version, utilisez les scripts Ruby du répertoire {{path|git.kde.org:releaseme.git}} . La génération de l'archive KBibTeX est configurée par les fichiers {{path|kbibtex.rb}} et {{path|kbibtexrc}}. Configurez ces fichiers ou appelez {{path|kbibtex.rb}} avec les arguments corrects, tels que :


{{Input|1=./kbibtex.rb --src=file:///${HOME}/git/kbibtex --version=0.6.0 --no-doc --no-l10n}}
{{Input/fr|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.
Atteindre la documentation et les fichiers de traduction est la partie qui prend le plus de temps dans ce processus.


Detached cryptographic hashes can be created and signed like this:
Les hachages cryptographiques détachés peuvent être créés et signés comme suit:


{{Input|1=sha512sum kbibtex-0.6.0.tar.xz >kbibtex-0.6.0.tar.xz.sha512
{{Input/fr|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 11:03, 17 January 2021

Other languages:

Ressources diverses utiles

Les liens suivants se rapportent à d'autres pages web pages ou ressources en rapport avec le développement de KBibTeX.

Démarrage rapide pour exécuter KBibTeX à partir de Git

Une méthode rapide et facile pour récupérer, compiler, et exécuter KBibTeX à partir de Git, par exemple pour le dernier code de la branche master , est de récupérer le script Bash run-kbibtex.sh du dépôt Git relatif à 'KBibTeX' de Thomas Fischer.

Pour lancer le script, soit vous le rendez exécutable et vous le lancez par

./run-kbibtex.sh

soit vous l'invoquez par

bash run-kbibtex.sh

Par défaut le script va cloner le dépôt Git de KBibTeX vers un répertoire temporaire, le compiler, l'installer dans un dossier temporaire, et exécuter cette installation temporaire de KBibTeX.

Il n'est pas utile d'exécuter ce script en tant que root ni avec sudo. Il ne va faire aucune modification permanente sur votre système. Pour compiler KBibTeX, des outils variés et des bibliothèques de développement doivent d'abord être disponibles, c'est à dire installés via le système de gestion de paquets de la distribution.

Il existe un fichier README.txt qui explique le script de manière plus approfondie.

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:

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.

Pour les bogues ou les fonctionnalités qui nécessitent plusieurs validations (commit) et où des validations individuelles peuvent casser master ou une branche de version, les "branches de fonctionnalités" sont utilisées. Ces branches sont supposées suivre master (typique pour les fonctionnalités) ou une branche de version (typique pour les bogues). Les branches pour les bogues doivent être fusionnées dans la branche de version où le bogue a été signalé ainsi que dans la branche master ( principale - pour les versions futures). Les branches de fonctions sont fusionnées dans la branche principale (master), dans certains cas, en branches de versions, où aucune version n'a encore été étiquetée, et seulement dans de rares cas, reportées à postériori pour les branches de version avec des versions publiées. Un exemple de branche de fonctionnalité serait feature/zotero, qui peut contenir le code d'une prise en charge améliorée de Zotero. Les noms des branches associées aux rapports de bogues sont bugs/bugsystemnumber (par exemple bugs/kde338375), où bugsystem serait kde ou le nom d'une distribution Linux et numéro, le numéro du bogue actuel. Les branches de fonctionnalités commencent par feature/ suivi d'un nom descriptif court pour cette fonctionnalité (toutes en minuscules, sans espaces). Les branches fusionnées seront supprimées après un certain temps.

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:

  1. CMAKE_INSTALL_PREFIX:PATH donne l'emplacement de l'installation. Il existe un nombre de choix disponibles pour cette option :
    1. L'emplacement de votre installation KDE, par exemple /usr. Les commandes kde4-config --prefix (compilations KDE4) ou kf5-config --prefix (compilations KDE Frameworks 5) affichent cet emplacement. En choisissant cette option vous devrez probablement avoir les droits root (par exemple via sudo) pour la présente installation. Attention: ce choix interfère avec la gestion des archives.
    2. Un répertoire en dehors du controle de la gestion de l'archive, par exemple /usr/local. Nécessite d'initialiser les quelques variables d'environnement décrites ci-dessous. Cette installation reste disponible au-delà des redémarrages et pour tous les utilisateurs. En choisissant cette option, il est probable que vous devrez avoir les droits root (par exemple via sudo) pour la présente installation.
    3. 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.
  2. 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.

En exécutant

make install

vous installerez KBibTeX dans le répertoire comme spécifié plus tôt en tant que préfixe d'installation. En fonction de votre choix pour le préfixe d'installation, cette commande doit être exécutée avec sudo ou alike.

A moins que le préfixe d'installation ne soit le répertoire d'installation de KDE, les variables d'environnement suivantes doivent être initialisées. Vous pouvez les initialiser temporairement dans une session shell active, ou d'une manière permanente dans la configuration de votres shell, ou encore créer un petit script de shell qui à la fois initialise ces variables et exécute votre installation de KBibTeX personnalisée.

  1. 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
  2. Seulement pour KF5: initialisez la variable QT_PLUGIN_PATH pour inclure le répertoire des greffons (plugin) dans le répertoire des bibliothèques du répertoire d'installation de KBibTeX, par exemple /usr/lib/plugins:/usr/lib/qt5/plugins:/tmp/usr/lib64/plugins/
  3. Initialiser la variable LD_LIBRARY_PATH vers le répertoire des bibliothèques à dans le répertoire d'installation de KBibTeX, par exemple /tmp/usr/lib64
  4. Initialisez la variable XDG_DATA_DIRS pour inclure les répertoires de données partagées du repertoire d'installation de KDE, celui de KBibTeX, ainsi que les autres préfixes associés, par exemple /usr/share:/usr/local/share:/tmp/usr/share

Exécuter kbuildsycoca4 (KDE4) ou kbuildsycoca5 (KDE Frameworks 5) pour que le sous-système KDE connaisse les nouvelles bibliothèques.

Attention

KBibTeX est composé du programme actuel ainsi que d'un certain nombre de bibliothèques. Pour éviter les comportements indéfinis, il est important de désinstaller toute version de KBibTeX actuellement présente (c'st à dire celles installées par le système de gestion de la distribution Linux) et de supprimer toute bibliothèque KBibTeX qui resterait (c'est à dire les fichiers accessibles par /usr) qui correspondent à l'expression *kbibtex*.so*.


Maintenant KBibTeX peut être exécuté, comme indiqué dans cet exemple :

/tmp/usr/bin/kbibtex

Cookbook de Git

Un certain nombre de pages dans TechBase, UserBase, et Community présentent l'utilisation de Git pour la gestion du code source. Cette section ne montre que quelques exemples sur la façon dont Git est utilisé pour KBibTeX.

Créer une branche de développement de fonction ou de correction de bogue

Dans l'exemple ci-dessous, replacez xxxx par un nom court et concis représentant une fonctionalité à développer (comme expliqué ci-dessus). Les branches relatives aux corrections de bogues sont créées de manière similaire, mais suivent la structure bugs/kdeNNNN, où NNNN est le numéro de bogue dans le suivi des bogues de KDE. Les bogues dans les autres gestionnaires de bogues tel que Gna! ou votre distribution, peuvent être numérotés avec un préfixe différent tel que bugs/gnaNNNN ou bien bugs/gentooNNNN.

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

Pousser une branche de fonctionalité locale ou de correction de bogue

Pour minimiser le risque de perturber le répertoire officiel de KBibTeX ou lorsque vous n'avez pas d'accès en écriture, vous pouvez pousser (push) vos branches locales dans un autre dépôt Git pour permettre aux autres personnes de voir vos modifications. Dans l'exemple ci-dessous, personalpublicclone est votre propre dépôt Git publique dans lequel vous voulez faire le push.

Pour publier vos modifications, utilisez une commande comme :

git push personalpublicclone feature/xxxx:feature/xxxx

Les autres utilisateurs peuvent ajouter votre dépôt à leur clône local du KBibTeX de Git et ainsi clôner votre branche (en supposant dans cet exemple qu'elle soit déja sur le serveur Git de KDE) :

git remote add someonespublicclone [email protected]: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

Pour créer une branche de version à partir du master et le pousser (push) dans origin, exécutez :

git checkout -b kbibtex/0.6 master && git push origin kbibtex/0.6

Pour poser un label de version dans une branche de version, exécutez les commandes suivantes :

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

Information

Cette section décrit la manière de créer des versions basées sur KDE4 (kdelibs4). Cela ne fonctionnera pas pour KDE Frameworks 5.

Pour créer une version, utilisez les scripts Ruby du répertoire git.kde.org:releaseme.git . La génération de l'archive KBibTeX est configurée par les fichiers kbibtex.rb et kbibtexrc. Configurez ces fichiers ou appelez kbibtex.rb avec les arguments corrects, tels que :

./kbibtex.rb --src=file:///${HOME}/git/kbibtex --version=0.6.0 --no-doc --no-l10n

Atteindre la documentation et les fichiers de traduction est la partie qui prend le plus de temps dans ce processus.

Les hachages cryptographiques détachés peuvent être créés et signés comme suit:

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