Je suis sur le point de télécharger un projet sur lequel j'ai travaillé sur Sourceforge sous la GPL, et j'espérais obtenir des conseils sur la façon d'organiser le code d'une manière facile à comprendre et à utiliser par les développeurs qui pourraient regarde ça, ça marche bien avec git, et la façon dont Sourceforge présente les choses.Je suis sur le point d'ouvrir un projet C++ sur Sourceforge. Puis-je obtenir des conseils sur l'organisation du code?
Mes projets est une application de C++ multi-plateforme, et se compose des éléments suivants:
- Une partie de la bibliothèque, qui effectue le travail réel
- Une partie de l'interface graphique séparée, qui utilise la partie de la bibliothèque
- Bibliothèques à source ouverte, dont les chemins d'inclusion sont nécessaires pour compiler la bibliothèque
- Les bibliothèques open source modifiées, qui ont été modifiées, sont donc en quelque sorte une partie directe de ce projet
- Sortie compilée de toutes les bibliothèques
Quelle est la meilleure façon d'organiser cela?
Tout en travaillant sur moi-même, à partir de la racine du projet, je l'ai comme ceci:
/LibPortion
/GuiPortion
/libs/bibliothèques open source
/libs/modifiées bibliothèques open source
/libs/compilé/pour contenir les bibliothèques compilées, y compris lors de la compilation pour Windows certaines qui ne proviennent pas des bibliothèques open source, telles que les fichiers de la bibliothèque Cygwin
Est-ce une façon intelligente d'organiser les choses? Est-ce que cela correspond aux conventions et aux attentes?
Lors de la vérification de mon projet, est-il sensé de vérifier dans les bibliothèques open source ainsi que dans le cadre du projet? Je pense qu'il est logique de le faire, car cela minimise les frictions avec la mise en place du projet pour un nouveau dev. Certainement je devrais au moins vérifier dans les bibliothèques open source modifiées.
En outre, qu'est-ce qu'il est logique d'inclure dans le référentiel sous les bibliothèques compilées? Je pense qu'il vaudrait mieux dire à git d'ignorer ce répertoire et de le laisser vide, puisque son contenu sera différent sur chaque cible de construction, puisque mon projet est multi-plateforme.
Cependant, il semble également très bien pour les personnes qui ne veulent pas se tracasser avec la construction et/ou le téléchargement de toutes les bibliothèques elles-mêmes pour offrir les bibliothèques pré-compilées pour les plates-formes majeures. Quelle est la manière la plus intelligente de partager également ceux-là? Je regarde Sourceforge, et il n'est pas évident pour moi de savoir comment je devrais les partager, sinon dans le cadre de mon dépôt git.
@nantucket Tant que pas quelque chose vraiment terrible ce qui importe le plus est documentant tout - de la façon dont la source est structuré de façon à une façon de construire un exécutable et faire une version déployable. Je vérifie habituellement le code source des bibliothèques lorsque je fais des projets Windows et je compte sur les bibliothèques et les paquets installés quand vous utilisez Linux. Si j'ai besoin de faire les deux, je vérifie aussi dans les bibliothèques. Mais le mot clé est: * document * tout. –