Qu'est-ce que l'ingénierie des rejets?
L'ingénierie de publication, ou releng, est le processus de préparation du logiciel informatique complet pour la distribution. Cela peut impliquer de nombreuses disciplines de programmation et d'ingénierie distinctes, et toutes les définitions de l'ingénierie de publication ne sont pas les mêmes d'une entreprise à l'autre. Parmi les tâches pouvant être impliquées dans l’ingénierie des versions, citons la compilation du code source, le suivi et la maintenance des outils et environnements de développement, la maintenance d’une bibliothèque de versions tout au long du programme, et parfois la mise en œuvre du déploiement de logiciels sur un serveur ou un système actif. Quelques-uns des avantages d'avoir un ingénieur de publication dédié dans le cycle de développement logiciel sont une meilleure expérience pour les utilisateurs finaux - car les méthodes de version sont d'abord testées - une meilleure documentation globale du programme tout au long des mises à niveau, et une sorte de contrôle de la qualité dans des situations dans lesquelles différents les parties d'un programme proviennent de sources distinctes.
Au cours du développement du logiciel, il arrive un moment où l'application est terminée et doit être distribuée aux clients ou installée sur un serveur actif pour pouvoir être utilisée. Sans un ingénieur de publication, ce processus peut impliquer que les développeurs compilent un programme via des outils de développement, puis transfèrent les fichiers binaires sur le support ou le serveur cible. Certains des problèmes que l'on peut rencontrer avec ce processus sont que le programme peut avoir des dépendances non quantifiées, certains changements peuvent être oubliés ou, en fin de compte, le processus peut ne pas être nécessairement reproductible à l'avenir.
L’une des parties les plus importantes de l’ingénierie des versions consiste à suivre les progrès du développement d’un programme. Cela pourrait signifier l'utilisation d'un système de gestion des versions ou l'utilisation d'un autre logiciel non seulement pour suivre et identifier chaque étape d'un programme au cours de son développement, mais également pour stocker des instantanés du programme afin qu'ils puissent être rappelés ultérieurement. En plus de gérer simplement le code source, la création d'un programme nécessite la conservation des informations relatives aux outils utilisés et aux différentes bibliothèques ou autres ressources utilisées. Le but ultime est de pouvoir recompiler un programme à n'importe quel stade de son développement, indépendamment des systèmes de développement utilisés pour le créer.
Une autre partie possible de l’ingénierie des versions consiste à préparer une application en vue de sa distribution aux clients. Une fois que le programme a été compilé en fichiers binaires, des méthodes d’installation du programme sur l’ordinateur d’un utilisateur final sont développées et explorées. Cela peut impliquer d’écrire un programme d’installation ou de tester le programme dans différentes situations s’il est en direct pour s’assurer qu’il fonctionne conformément aux spécifications. L'ingénierie de publication implique parfois l'installation simultanée d'un programme sur plusieurs systèmes afin de s'assurer que les différentes configurations ou erreurs sont gérées correctement.