Je fais beaucoup de développement dans mon temps. Ces projets sur lesquels je travaille sont tous juste pour le plaisir et l'apprentissage (jusqu'à présent). Je fais couramment du développement Java avec Maven mais je suis également connu pour expérimenter en .NET et Python. Tous les projets sur lesquels je travaille utilisent des licences open source, bien que la plupart d'entre eux ne figurent sur aucun référentiel de code public.
Le développement Java / Maven nécessite que j'utilise une structure unique groupId
(par exemple "com.mydomain") et unique package
(répertoire), contenant généralement le groupId
développement while .NET encourage unique namespaces
dans lequel j'utilise des conventions similaires au package
concept Java . Pour garantir l'unicité, j'utilise généralement l'un de mes noms de domaine avec les parties inversées (par exemple "ca.jessewebb"); Je pense que c'est une pratique très courante.
Je suis dans les premières étapes de la création d'un nouveau projet Java / Maven open source (appelons-le "newproj") et je voudrais le mettre sur GitHub. Mon pseudo sur GitHub est « jessewebb » si cela lui donnera une URL comme: https://github.com/jessewebb/newproj
. Je ne veux pas déranger l' enregistrement du nom de domaine « newproj.com » alors j'ai décidé d'utiliser « ca.jessewebb » et « ca.jessewebb.newproj » comme groupId
et package
, respectivement.
Il m'est venu à l'esprit que la présence de mon identité personnelle dans le code et dans le domicile du projet (dans l'URL GitHub) incitera probablement un contributeur potentiel à réfléchir à deux fois avant de s'impliquer dans mon projet. C'est un problème, je ne veux pas que ce soit mon projet. Je préférerais que je transmette plutôt le message que je ne suis pas propriétaire du projet. Maintenant, en toute honnêteté, il est vraiment pas un gros problème parce que je doute mes projets recueilleront participation beaucoup communautaire mais je vois aussi cela comme encore plus d'une raison d'éviter toute possibilité de dissuader les cotisants-être.
Pour un autre exemple, j'ai créé un projet Google Code il y a quelques années (appelons-le "oldproj"). Lorsque j'ai créé le projet, je savais que j'allais l'héberger sur Google Code, j'ai donc utilisé le groupId
nom de package et "com.googlecode.oldproj", qui est l'inverse du nom de domaine par défaut que Google Code fournit à chaque nouveau projet. Cela s'est avéré être une idée pas si géniale; un an plus tard, je déplacé le code à un autre repo et je devais renommer ces identifiants (bien que je n'aimais ...). À l'époque, je ne possédais aucun nom de domaine et j'ai fini par acheter le nom de domaine "oldproj.com" et je l'ai utilisé. J'ai aimé cela car cela donnait au projet sa propre identité et je n'apposais pas mon nom sur le code partout. J'aurais pu tout aussi facilement enregistrer le nom de domaine "jessewebb.ca" et utiliser "ca.jessewebb.oldproj" comme nom de package, mais je ne l'ai pas fait car j'avais aussi les mêmes préoccupations à l'époque.
Donc ma question est ...
Comment puis-je éviter d'utiliser mes propres noms (de domaine) lors de la création de projets open source tout en conservant l'unicité des packages / espaces de noms?
Au fur et à mesure que les projets prennent de l'ampleur, il est logique d'enregistrer les noms de domaine, mais cela semble idiot et une perte d'argent de le faire plus tôt. Je me rends compte que je n'ai pas vraiment besoin de posséder le nom de domaine pour l'utiliser dans le code, mais cela ne va pas et peut conduire à un squatter qui vous l'arrache entre-temps. Que font les autres à propos de ce dilemme? Existe-t-il des exemples de projets open source populaires (largement utilisés, grande communauté, etc.) qui contiennent l'identité du développeur d'origine dans le cadre de ses propres identifiants?