Digamos que uma empresa queira manter o desenvolvimento de novos recursos de um pedaço de software interno, mas deseje tornar público o código fonte das versões anteriores, incluindo os recursos públicos existentes, inclusive, para que outras pessoas possam se beneficiar do uso e da modificação do software. e, possivelmente, contribuir com alterações que podem ser aplicadas ao ramo de desenvolvimento.
Existe um termo para esse tipo de arranjo e qual é a melhor maneira de realizá-lo usando as ferramentas e plataformas de controle de versão existentes?
Respostas:
Não sei o nome, mas para implementação, a seguinte configuração pode funcionar:
Crie dois repositórios no github (substitua por qualquer outra plataforma que faça o mesmo), um público e um privado. Mantenha a versão mais recente X em particular e vX-1 em pública. Ao liberar nova versão, atualize uma pública da privada. Dessa forma, você poderá usar facilmente o controle de versão e também permitir que os usuários do repositório público enviem suas contribuições por meio de solicitações pull e, em seguida, mesclá-lo ao seu repositório particular, envie problemas etc. Isso também fornecerá a você opções para permitir que usuários pagos façam o mesmo com seu código privado - conceda a eles acesso somente leitura ou mesmo leitura / gravação.
fonte
Parece Fonte Compartilhada, que é um termo usado pela Microsoft para descrever a maneira como eles permitem que os clientes obtenham uma cópia de seu código-fonte por razões como auditoria ou referência de segurança. A Microsoft mantém o controle total da base de código para novos desenvolvimentos.
fonte
Não conheço um termo para isso.
Talvez deva chamar o modelo Padlocked Barn Door. Em vez de "fechar a porta do celeiro depois que o cavalo disparou" (ou seja, tentar recuperar a exclusividade depois de liberar o software sob uma licença muito liberal), você trava a porta do celeiro e espera que o cavalo não morra de fome no estábulo. :-)
Sério, porém, se a gerência da empresa acha que isso é necessário para ganhar dinheiro com o código aberto, você realmente não pode argumentar. Afinal, eles são responsáveis por gerenciar o investimento em recursos que estão fazendo.
No entanto, este não é um modelo que seja bom para o cliente pagador. (Se o cliente não puder obter o código-fonte da versão premium que está executando, qual é o sentido de pagar o prêmio?) Não é provável que incentive contribuições da comunidade de usuários e fará essas contribuições de menos valor ... porque eles sempre serão contra uma versão antiga da base de código. Na verdade, você poderia argumentar que é mais provável incentivar a bifurcação.
fonte
Esse padrão é realmente bastante frequente no setor. Um exemplo é quando um produto está disponível como uma edição da comunidade e uma edição corporativa. Normalmente, a edição da comunidade está disponível sem custo e pode até ser um software de código aberto / gratuito e geralmente carece de alguns recursos comercializados como necessários apenas para usuários corporativos. A edição corporativa geralmente está disponível através da compra de uma licença comercial e pode ser opcionalmente fornecida com um pacote de suporte, atualizações de software integradas, mais recursos ou condições de uso mais permissivas. Esse padrão pode ser visto de várias formas e variações no mercado. Um exemplo é a plataforma Eclipse versus os produtos comerciais baseados nela, como o cliente IBM Lotus. Outro exemplo é o início do que agora é conhecido como Mozilla Firefox, que começou como Netscape Browser vs Mozilla Browser.
Outra abordagem é separar o produto em dois produtos independentes separados. Isso é adequado para grandes projetos compostos por muitos subprojetos menores. Um exemplo são as edições Fedora Linux vs Red Hat Enterprise Linux ou OpenSuse vs Suse Linux Enterprise.
fonte
Eu acredito que o termo é duplo licenciamento . (ou multi-licenciamento )
A parte do projeto em que você quer que as pessoas se envolvam com você é lançada sob, por exemplo, a LGPL, que permite chamar material proprietário. A porta do projeto que você deseja manter sob controle é um software proprietário para venda.
fonte
Se todo o código pertencer a você, você poderá confiar como achar melhor. Se mais alguém contribuiu com o código que você deseja fechar o código-fonte, DEVE obter a permissão deles ou fazer com que eles assinem seus direitos autorais. Quanto a um nome, não conheço um licenciamento padrão, talvez duplo? Eu acho que o MySQL está na mesma posição, e talvez QT?
fonte