Taverna /dev/All

Como tornar um projeto open source?

Minha dúvida surgiu visto que eu pretendo criar um TCC com um projeto que será open source.

1 Curtida

Esta é uma excelente pergunta e algo com o qual venho lutando já há alguns anos no que diz respeito à abertura do código fonte do motor que está por trás tanto do Grails Brasil (http://www.grailsbrasil.com.br) quanto do Spring Brasil (http://www.springbrasil.com.br).

Pra começar você tem de escolher uma licença, o que não é algo fácil de ser feito. Cada uma oferece as suas limitações, e estas vão estar diretamente relacionadas aos seus objetivos com o projeto. Um site que pode te ajudar é este: https://choosealicense.com/licenses/

(e se não me engano em cada arquivo de código fonte você precisa incluir a licença)

Em segundo lugar você tem de ter cuidado com o que vai publicar nos repositórios (esta é a maior dificuldade). Pode ter conteúdo que jamais possa ser publicado: código fonte, por exemplo, que exponha o funcionamento interno da sua empresa e que não deva ser exposto jamais. Outro tipo de conteúdo seriam configurações, por exemplo. O sistema tem de ser feito de tal maneira que no seu desenvolvimento, caso seja necessário abrir os fontes, nenhuma informação sigilosa vaze.

No meu caso, o problema foi justamente este: como foi uma base de código criada por mim pra mim, ainda há muita configuração que precisa ser totalmente expurgada. A esmagadora maioria é, mas precisa haver uma documentação que possibilite a outros desenvolvedores conseguirem facilmente montar seu ambiente de desenvolvimento e, ainda mais importante, implantar o software.

Finalmente, você precisa pensar no idioma, outra dificuldade que enfrentei. Se você for abrir seu código fonte pro Brasil e países que falam língua portuguesa, ok programar em português. Mas e se for para o resto do mundo? Seu código vai em português mesmo?

1 Curtida

Saquei, mas não há nenhum “site” que confere esse título (“licença”) para o projeto?
Pois necessariamente é preciso ter garantias que aquele projeto será e continuará sendo open source certo?

Ex: da mesma forma que os sites seguros possui um certificado SSL, teria alguma certificação que o projeto é open?

desconheço, mas deve existir. Com certeza alguém já passou por este problema.

1 Curtida

Boa questão! Nunca parei para refletir sobre… Ao meu ver, uma vez disponibilizado num repositório público com a devida informação de licença, e tendo sido clonado por outrem, está sacramentado o caráter open source daquele código! Ou srja, saiu do seu domínio, não há mais volta. Se você se arrepender amanhã, ontem ele ainda era aberto e caiu nas mãos do mundo.

O mais próximo que eu consigo pensar dessa certificação que você menciona seria você ser amparado pela fundação Apache por exemplo. Um processo que também desconheço os detalhes… Se alguém souber mais sobre, é pertinente ao tema.

1 Curtida

Um outro ponto muito importante também: documentação do projeto.

Pro projeto ser usado por outras pessoas, tem de ter uma documentação decente.

No caso dos projetos que citei acima, esta foi uma falha grave que cometi. Como eram meus “pet projects”, ia desenvolvendo a esmo, com o tempo percebi que quem quisesse implantar o projeto sofreria horrores.

Qual ferramenta indica para documentação de projetos em java/web?

Em primeiro lugar um bom português/inglês pra que as pessoas possam entender o seu projeto.

Tirando isto, você tem as tecnologias de mercado mesmo.

  • Marckdown / Asciidoctor se quiser gerar um site em HTML contendo a documentação do projeto. No caso do Github, é inclusive usado por padrão o Markdown se não me engano.
  • O próprio JavaDoc, se você estiver interessado em expor as classes do seu projeto - é uma boa ideia pra ajudar outros desenvolvedores

itexto