Pular navegação

Compartilhamento de códigos-fonte (Integração GIT)

Compartilhamento de códigos-fonte (Integração GIT)

timer iconTempo 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.

Responsáveis: 
fred

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

Tempo registrado: 1 hora em março 09, 2013

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

Tempo registrado: 16 horas em agosto 04, 2013

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

Tempo registrado: 5 horas em agosto 05, 2013

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):

  1. repositório do servidor do site
  2. repositório na máquina local para trabalho
  3. repositório do GitHub para compartilhar código

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! :)