Faccio molto sviluppo nel mio tempo libero. Questi progetti su cui lavoro sono tutti solo per divertimento e apprendimento (finora). Io di solito faccio sviluppo Java con Maven, ma sono anche conosciuto per dilettarsi in .NET e Python. Tutti i progetti su cui lavoro utilizzano licenze open source, sebbene la maggior parte di essi non si trovi in nessun repository di codice pubblico.
Lo sviluppo Java / Maven richiede l'utilizzo di un groupId
unico (ad es. "com.mydomain") e una struttura package
(directory) unica, in genere contenente groupId
mentre lo sviluppo .NET incoraggia%% escluso% in cui utilizzo convenzioni simili al concetto di namespaces
di Java. Per garantire unicità, di solito uso solo uno dei miei nomi di dominio con le parti invertite (ad esempio "ca.jessewebb"); Credo che questa sia una pratica molto comune.
Sono nelle fasi iniziali della creazione di un nuovo progetto open source, Java / Maven (chiamiamolo "newproj") e vorrei inserirlo in GitHub. Il mio nome utente su GitHub è "jessewebb", quindi questo gli darà un URL come: package
. Non voglio disturbare la registrazione del nome di dominio "newproj.com", quindi ho deciso di utilizzare "ca.jessewebb" e "ca.jessewebb.newproj" come https://github.com/jessewebb/newproj
e groupId
, rispettivamente.
Mi è venuto in mente che la presenza della mia identità personale nel codice e come parte della casa del progetto (nell'URL GitHub) probabilmente causerà a un potenziale contributore di pensarci due volte prima 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 è davvero un grosso problema perché dubito che i miei progetti guadagneranno molto coinvolgimento della comunità, ma considero anche questo più di un motivo per evitare qualsiasi possibilità di scoraggiare potenziali contributori.
Per un altro esempio, ho creato un progetto Google Code alcuni anni fa (chiamiamolo "oldproj"). Quando ho creato il progetto, sapevo che stavo per ospitarlo su Google Code, quindi ho utilizzato package
e il nome del pacchetto di "com.googlecode.oldproj", che è il contrario del nome di dominio predefinito Google Code fornisce ogni nuovo progetto. Questa risultò essere un'idea non tanto eccezionale; circa un anno dopo, ho spostato il codice su un repository diverso e ho dovuto rinominare questi identificatori (beh, non ho ho ma ...). All'epoca non possedevo alcun nome di dominio e alla fine ho comprato il nome di dominio "oldproj.com" e l'ho usato. Mi è piaciuto perché ha dato al progetto una sua identità e non stavo stampando il mio nome sul codice ovunque. Avrei potuto registrare con la stessa facilità il nome di dominio "jessewebb.ca" e usare "ca.jessewebb.oldproj" come nome del pacchetto, ma non l'ho fatto perché avevo gli stessi dubbi anche in quel momento.
Quindi la mia domanda è ...
Come posso evitare di usare i miei nomi (di dominio) durante la creazione di progetti open source mantenendo l'unicità dei pacchetti / spazi dei nomi?
Poiché i progetti acquistano più slancio, è logico 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 che si sente sbagliato e può portare a un abusivo che lo strappa da sotto di te nel frattempo. Cosa fanno gli altri riguardo a questo dilemma? Ci sono esempi di progetti open source popolari (ampiamente usati, di grandi dimensioni, ecc.) Che contengono l'identità dello sviluppatore originale come parte dei propri identificatori?