Uma das maiores capacidades do Embrapa I/O é o de fomentar o desenvolvimento colaborativo de ativos digitais. Para isso, a plataforma faz uso intensivo dos recursos do GIT, possibilitando que manutenções corretivas e evolutivas no código-fonte de diferentes aplicações em projetos distintos possam ser compartilhadas. Este recurso está fortemente embasado no conceito de boilerplates inerente à plataforma, que faz com que toda aplicação criada seja na realidade um fork de um repositório-base. Desta forma, uma vez estabelecido um vínculo entre o repositório-base (upstream) e o derivado (fork), torna-se possível que alterações sejam mescladas (do inglês, merged) do primeiro para o segundo e vice-versa.
É possível, portanto, que erros encontrados ou melhorias identificadas nas apps que remetam ao boilerplate sejam corrigidos e retroalimentem o repositório-base, de forma que novos projetos derivados do mesmo boilerplate se beneficiem destas alterações. Da mesma forma, repositórios derivados já existentes podem ser atualizados a partir das novas revisões do repositório-base, recebendo manutenções corretivas e evolutivas que tenham sido realizadas após sua criação a partir do boilerplate.
Os repositórios de boilerplates são projetos públicos no GitLab da plataforma Embrapa I/O e podem ser acessados por qualquer usuário da plataforma:
Além disso, todo repositório de aplicação tem a indicação (link) de qual repositório-base foi realizado o fork, possibilitando o acesso direto a ele:
Uma vez que tenham sido identificadas alterações relevantes no repositório-base, pode-se trazer estas alterações para as aplicações em seu projeto que tenham sido derivadas deste boilerplate. Há diversas formas de fazer isso, mas apresentaremos aqui um passo-a-passo que possibilita fazê-lo de forma simples, utilizando o próprio clone do repositório da aplicação e um cliente GIT em seu ambiente de desenvolvimento local. Para este exemplo, está sendo utilizando o cliente GitKraken.
Utilizando seu cliente GIT, abra o repositório da sua aplicação. Primeiramente, vamos adicionar o repositório do boilerplate original como um novo remote, chamando-o de upstream
:
Desta forma, seu repositório estará agora com dois remotes: o origin
e o upstream
. Em seguida, sincronize a branch main
do boilerplate (remote upstream
recém adicionado) criando uma branch local denominada boilerplate
:
Faça agora o merge da branch boilerplate
para a branch main
(ou seja, na prática será um merge da branch main
do remote upstream
para a branch main
do remote origin
), resolvendo os conflitos um-a-um:
Feito isso, a branch boilerplate
pode ser apagada e o remote upstream
removido. Para manter sua aplicação atualizada com as manutenções corretivas e evolutivas do boilerplate, basta repetir os passos acima sempre que necessário.