Compartilhamento de códigos-fonte (Integração GIT)
Tempo registrado: 22 horas |
Descobri que existe um módulo para Open Atrium que integra com um servidor GIT para compartilhamento de códigos-fonte de programação. Não sei até que ponto é usável.
http://drupal.org/project/Gitosis
Já verifiquei e a Locaweb oferece o servidor GIT pra gente.
http://wiki.locaweb.com.br/pt-br/Usando_GIT_na_Hospedagem_Linux
O primeiro projeto a oferecer a ferramenta seria o próprio Corais, que já está na hora de ter seu código-fonte disponibilizado. Precisarei de ajuda para pensar como empacotar essa customização que fiz do Open Atrium dentro das regras da comunidade Drupal.
- Faça o Login para adicionar Comentários
- 11513 acessos
- Imprimir
- Completada
Comentários
#1
Estou conversando com um ex-colega de trabalho que é expert em Drupal. Ele já passou por diversos projetos e certamente terá dicas valiosas pra nos ajudar neste processo.
Em paralelo, temos a questão do Git. A princípio, na empresa em que trabalho hoje utilizamos o Bitbucket onde criamos os repositórios em cloud server. Este serviço oferece diversos recursos que facilitam e agilizam muito as tarefas do dia-a-dia, controle e histórico dos commits.
A desvantagem para um projeto sem fins lucrativos seria o custo, já que o plano gratuito oferece capacidade máxima para 5 usuários no time de desenvolvimento.
Uma alternativa bastante conhecida e utilizada no mundo todo é o GitHub que disponibiliza contas ilimitadas sem qualquer custo desde que o projeto (código) seja aberto, ou seja, qualquer pessoa na web pode acessar e reutilizar o código do projeto.
Criar um repositório Git no atual servidor em que o Corais.org está hospedado também é uma alternativa válida, porém, haverá um trabalho muito grande de configuração do ambiente e permissões para acesso. Além disso, não teríamos como disponibilizar uma interface tão prática como a destes serviços citados anteriormente (Bitbucket e Github).
De qualquer forma, é preciso analisar todo o impacto que geraria a migração da plataforma do Corais.org para um outro servidor ou mesmo para a estrutura Git no próprio servidor da Locaweb.
Nos próximos dias estarei conversando com outro colega de trabalho que possui bastante conhecimento sobre o Git e GitHub e assim que tiver novas informações compartilho novamente.
#2
De fato será complicada essa configuração inicial, mas pelo visto é necessária para atrair mais desenvolvedores. Aqui tem um guia http://drupal.org/node/803746
Pelo que li o módulo Gitosis é capaz de fornecer uma interface similar ao Github dentro do próprio Corais, como mais uma feature.
Se não der certo, podemos usar o Github.
#3
Conversei com um expert de Drupal sobre como fazer a distribuição de uma nova instalação do Drupal com o Open Atrium e todos os módulos e configurações já pré-definidas no Corais.org . Ele me indicou o seguinte artigo http://drupal.org/node/1022020
Sobre a questão do Git falei com outro profissional já bastante experiente na área de desenvolvimento também que orientou não ser a melhor alternativa instalar este módulo Gitosis. Primeiro pela baixa quantidade de usuários do módulo (apenas 345 downloads), segundo porque como o módulo foi desenvolvido sob a versão 6 do Drupal este não possui novas atualizações e está fadado a ser descontinuado.
O ideal seria alocar o projeto todo no GitHub mesmo e, se quisermos, configurar localmente o Git no servidor da Locaweb de maneira que utilizaríamos este Git local como "origin".
Ainda há mais o que se discutir, mas por hora é isso que já posso contribuir.
#4
Obrigado pelas dicas Filipe! O problema é o seguinte: o Open Atrium é Drupal 6 e não tão cedo irá migrar para o 7. Nós temos que trabalhar com a realidade do 6. Eu já instalei vários módulos experimentais com poucos usuários e deu certo. Se não der, a gente parte pra essa ideia de colocar a interface no Github. Uma das vantagens do Gitosis é que ele permite que cada projeto tenha o seu Git, ou seja, o Corais poderia ajudar outros projetos de software livre a se desenvolverem oferecendo uma interface Git. A dúvida é se o servidor da locaweb vai permitir isso de ter vários usuários. Tenho que ver isso.
Ainda ficou em aberto a questão das licenças. Nós podemos redistribuir o Open Atrium usando um installation profile? Que licença a gente teria que usar para nossas contribuições? Eu praticamente não escrevi código, apenas algumas features. Porém, tem muito trabalho de configurar os módulos existentes.
#5
Fiz um diagrama de como seria um possível ecossistema de troca de dados entre o Corais e as plataformas clonadas a partir do código-fonte, organizado como uma distribuição de Drupal. Acredito que possa haver integração também entre as bases de conhecimento de cada plataforma através de um padrão RDF.
#6
A liberação do código-fonte está progredindo. Já configurei o GIT com o código original e estou fazendo um clone para entender como funciona. Para se ter uma ideia do tamanho, são 21.049 arquivos e 200 MB, isso sem incluir os arquivos anexados no Corais e outros arquivos de sistema. No total 368 módulos de Drupal em uso. Ainda não conferi os hacks nos módulos, mas são poucos. O desafio é entender como manter a atualização do código-fonte por módulo, permitindo que as contribuições sejam compartilhadas com os projetos originais no Drupal. Por enquanto, o que tenho é um repositório e um branch pra tudo. Provavelmente terei que dividir isso mais pra frente.
Aprender como funciona o GIT foi dose. O que se encontra na web são receitas de códigos mágicos que você digita no terminal e as coisas acontecem, mas ninguém explica o porque desses códigos. O melhor recurso que encontrei foram os slides abaixo:
Outros recursos úteis para quem estiver pensando em usar GIT
O trabalho está sendo árduo e cheio de percalços.
Vale lembrar que a disponibilização do código-fonte não será suficiente para que as pessoas façam o download e instalem suas próprias versões do Corais porque existem milhares de customizações gravadas no banco de dados que eu ainda não sei como compartilhar.
#7
Consegui finalmente disponibilizar o código-fonte no GitHub. Aqui está o link:
https://github.com/usabilidoido/corais
O código está igual como no servidor, excluindo é claro os arquivos de configuração específicos da instalação do Corais.
O mais difícil do processo foi entender que eu precisava de 3 repositórios (e não 2 como eu pensava):
Ainda será necessário mais pra frente acrescentar um 4 repositório que são os repositórios originais do Drupal e de seus módulos. Ainda não sei como fazer isso. Ainda preciso aprender muito como funciona o esquema de versionamento de GIT para receber colaboração de outras pessoas no código do Corais, encaminhá-las aos projetos Drupal e manter uma distribuição coerente.
Com o código acima não é possível instalar a configurar um site igual ao Corais, em primeiro lugar porque não acompanha uma base de dados. Parte das configurações está exportada como features, mas não tudo. Nem sei se é possível colocar todas elas como features. O que é possível fazer é mixar os arquivos faltantes com a distribuição drupal e ver se dá pra instalar alguma coisa.
Ainda vai demorar um longo tempo até que tenhamos uma distribuição instalável.
#8
Bom trabalho, é um grande avanço! :)