Faccio molto sviluppo nel mio tempo. Questi progetti a cui lavoro sono tutti solo per divertimento e apprendimento (finora). Faccio comunemente sviluppo Java con Maven ma sono anche conosciuto per dilettarmi con .NET e Python. Tutti i progetti su cui lavoro utilizzano licenze open source, sebbene la maggior parte di essi non si trovi su nessun repository di codice pubblico.
Lo sviluppo di Java / Maven mi richiede di utilizzare una struttura unica groupId
(ad es. "Com.mydomain") e una package
(directory) unica , che di solito contiene groupId
mentre lo sviluppo .NET incoraggia univoco namespaces
in cui utilizzo convenzioni simili al package
concetto Java . Per garantire unicità, di solito uso solo uno dei miei nomi di dominio con le parti invertite (ad es. "Ca.jessewebb"); Credo che questa sia una pratica molto comune.
Sono nelle fasi iniziali della creazione di un nuovo progetto Java / Maven open source (chiamiamolo "newproj") e vorrei metterlo su GitHub. Il mio username su GitHub è "jessewebb" quindi questo darà un URL del tipo: https://github.com/jessewebb/newproj
. Non voglio disturbare la registrazione del "newproj.com" nome di dominio così ho deciso di usare "ca.jessewebb" e "ca.jessewebb.newproj" come groupId
e package
, rispettivamente.
Mi è venuto in mente che la presenza della mia identità personale nel codice e come parte della home del progetto (nell'URL GitHub) probabilmente farà pensare due volte a un potenziale collaboratore di essere coinvolto nel mio progetto. Questo è un problema, non voglio che sia il mio progetto. Preferirei se potessi, invece, trasmettere il messaggio che non possiedo il progetto. Ora, in tutta onestà, non è poi così grande di un affare perché dubito miei progetti raccogliere il coinvolgimento della comunità molto, ma vedo anche questo come ancora di più di una ragione per evitare ogni possibilità di dissuadere gli aspiranti collaboratori.
Per un altro esempio, alcuni anni fa ho creato un progetto Google Code (chiamiamolo "oldproj"). Quando ho creato il progetto, sapevo che lo avrei ospitato su Google Code, quindi ho usato il groupId
nome del pacchetto e "com.googlecode.oldproj", che è il contrario del nome di dominio predefinito che Google Code fornisce ogni nuovo progetto. Questa si è rivelata un'idea non così eccezionale; un anno più tardi, ho spostato il codice per un repo diversa e ho dovuto rinominare questi identificatori (beh non ho avutoa ma ...). All'epoca non possedevo alcun nome di dominio e ho finito per acquistare il nome di dominio "oldproj.com" e l'ho usato. Mi è piaciuto perché ha dato al progetto la propria identità e non ho impresso il mio nome sul codice ovunque. Avrei potuto facilmente registrare il nome di dominio "jessewebb.ca" e usare "ca.jessewebb.oldproj" come nome del pacchetto, ma non l'ho fatto perché allora avevo le stesse preoccupazioni.
Quindi la mia domanda è ...
Come posso evitare di usare i miei nomi (dominio) durante la creazione di progetti open source pur mantenendo l'unicità di pacchetti / spazi dei nomi?
Man mano che i progetti guadagnano più slancio, ha senso registrare i nomi di dominio, ma sembra sciocco e uno spreco di denaro farlo prima. Mi rendo conto che in realtà non devo possedere il nome di dominio per usarlo nel codice, ma questo sembra sbagliato e può portare a un abusante a strapparlo da sotto di te nel frattempo. Cosa fanno le altre persone su questo dilemma? Esistono esempi di progetti open source popolari (ampiamente utilizzati, di grandi dimensioni, ecc.) Che contengono l'identità dello sviluppatore originale come parte dei propri identificativi?