Um retrato permanente do seu projeto

Aquela bela mensagem que todos nós gostamos de receber: “Parabéns, seu artigo foi aceito para publicação na revista XXXXX”. Trabalho terminado, certo? É hora de encaixotar tudo e partir para outra empreitada científica? Não! Antes disso precisamos registar nosso código de modo que ele possa ser rastreado facilmente, citado e, acima de tudo, reproduzível de modo que quem o faça chegue nas mesmas conclusões que chegamos em nosso artigo. Porém, seu código está no GitHub, e volta e meia ele é modificado, ou por algum motivo técnico, instabilidade de servidor ou até mesmo porque você decidiu revisitá-lo e modificar um pouco esse código. A questão é, como fazer com que seu código possa ser registrado e guardado com segurança e de maneira permanente? Para isso utilizamos algum repositório para armazenamento permanente.

Aqui irei mostrar como isso pode ser feita a partir da utilização do Zenodo, mas outros repositórios permanentes de dados e códigos estão disponíveis por aí, por exemplo Dryad.

Para armazenar seu código no Zenodo, a primeira coisa a ser feita é criar uma conta nele. A minha sugestão é que esta conta seja criada através da sua conta do GitHub, isso faz com que o Zenodo já tenha conexão com seus repositórios, incluindo aquele que pretende fazer o armazenamento permanente.

Acessando seus repositórios via Zenodo

Para ver os seus repositórios através do Zenodo basta acessar a aba GitHub via zenodo, como mostrado na seta da Figura abaixo

Página do zenodo que apresenta conexão com seus repositórios no Github

Página do zenodo que apresenta conexão com seus repositórios no Github

Ao acessar a aba GitHub via Zenodo, todos os seus repositórios públicos irão aparecer, portanto, é importante que o repositório que você pretende fazer o armazenamento permanente dos dados seja público, como mostrado na imagem abaixo

Página do zenodo com seus repositórios públicos Github

Página do zenodo com seus repositórios públicos Github

O primeiro passo é habilitar o acesso do Zenodo ao repositório de interesse. Como mostrado na própria página do Zenodo. Em seguida você deve fazer um release do seu repositório, mas o que é isso? Como o próprio nome diz, o release é um lançamento do repositório, é como se fosse uma fotografia do repositório inteiro em um dado momento. Fazemos isso, por exemplo, quando temos uma versão estável de um pacote estatístico, ou quando submetemos o nosso manuscrito para uma revista ou repositórios de preprints. O release é importante pois é a partir dele que será criado o DOI (Digital Object Identifier), que é como um RG do seu repositório, um número único pelo qual ele pode ser identificado na internet.

Para criar um release clique no botão verde na figura seguinte. Ele te redicionará para a página do GitHub.

Página do zenodo que redicionará para o github para criar o release

Página do zenodo que redicionará para o github para criar o release

Ná página do GitHub dê um nome para esse seu novo release. Geralmente os nomes seguem um formato com três digitos separados por pontos, chamamos esse sistema de versionamento semântico e utilizamos ele para controlar as versões de lançamento de acordo com mudanças que podemos ir fazendo no nosso código. Isso é mais comum de ser utilizado para controlar versões de pacotes, mas não impede que utilize a mesma lógica no seu repositório que contém dados e códigos de análises.

Para lançar seu release basta atribuir um nome de versão para seu repositório e pronto! Basta clicar no botão para publicar o release e ele está pronto.

Página do github para preencher as informações do release

Página do github para preencher as informações do release

Após isso, volte para a página do Zenodo, lá você vai encontrar algumas coisas novas ao clicar no repositório que fez o release, a mais importante dela será o DOI.

Página do Zenodo mostrando as informações do release, com destaque para o DOI

Página do Zenodo mostrando as informações do release, com destaque para o DOI

Esse número, a partir de agora, identificará seu repositório no Zenodo. Você pode, por exemplo, adicionar esse número no seu README, de modo que quem acesse o seu repositório através do GitHub saiba que você tem uma versão de armazenamento permanente que pode ser acessada através desse DOI no sítio do Zenodo. Este número também pode ser adicionado na versão final do seu artigo, juntamente com o endereço eletrônico para o repositório no Zenodo. Abaixo veja as informações adequadas para diferentes tipos de documentos e situações

Página do Zenodo mostrando as informações do release

Página do Zenodo mostrando as informações do release

LS0tCnRpdGxlOiAiUmVsZWFzaW5nIgphdXRob3I6ICJHYWJyaWVsIE5ha2FtdXJhIgpkYXRlOiAiYHIgU3lzLkRhdGUoKWAiCm91dHB1dDogaHRtbF9kb2N1bWVudAotLS0KCiMgVW0gcmV0cmF0byBwZXJtYW5lbnRlIGRvIHNldSBwcm9qZXRvCgpBcXVlbGEgYmVsYSBtZW5zYWdlbSBxdWUgdG9kb3MgbsOzcyBnb3N0YW1vcyBkZSByZWNlYmVyOiAiUGFyYWLDqW5zLCBzZXUgYXJ0aWdvIGZvaSBhY2VpdG8gcGFyYSBwdWJsaWNhw6fDo28gbmEgcmV2aXN0YSBYWFhYWCIuIFRyYWJhbGhvIHRlcm1pbmFkbywgY2VydG8/IMOJIGhvcmEgZGUgZW5jYWl4b3RhciB0dWRvIGUgcGFydGlyIHBhcmEgb3V0cmEgZW1wcmVpdGFkYSBjaWVudMOtZmljYT8gTsOjbyEgQW50ZXMgZGlzc28gcHJlY2lzYW1vcyByZWdpc3RhciBub3NzbyBjw7NkaWdvIGRlIG1vZG8gcXVlIGVsZSBwb3NzYSBzZXIgcmFzdHJlYWRvIGZhY2lsbWVudGUsIGNpdGFkbyBlLCBhY2ltYSBkZSB0dWRvLCByZXByb2R1esOtdmVsIGRlIG1vZG8gcXVlIHF1ZW0gbyBmYcOnYSBjaGVndWUgbmFzIG1lc21hcyBjb25jbHVzw7VlcyBxdWUgY2hlZ2Ftb3MgZW0gbm9zc28gYXJ0aWdvLiBQb3LDqW0sIHNldSBjw7NkaWdvIGVzdMOhIG5vIEdpdEh1YiwgZSB2b2x0YSBlIG1laWEgZWxlIMOpIG1vZGlmaWNhZG8sIG91IHBvciBhbGd1bSBtb3Rpdm8gdMOpY25pY28sIGluc3RhYmlsaWRhZGUgZGUgc2Vydmlkb3Igb3UgYXTDqSBtZXNtbyBwb3JxdWUgdm9jw6ogZGVjaWRpdSByZXZpc2l0w6EtbG8gZSBtb2RpZmljYXIgdW0gcG91Y28gZXNzZSBjw7NkaWdvLiBBIHF1ZXN0w6NvIMOpLCBjb21vIGZhemVyIGNvbSBxdWUgc2V1IGPDs2RpZ28gcG9zc2Egc2VyIHJlZ2lzdHJhZG8gZSBndWFyZGFkbyBjb20gc2VndXJhbsOnYSBlIGRlIG1hbmVpcmEgcGVybWFuZW50ZT8gUGFyYSBpc3NvIHV0aWxpemFtb3MgYWxndW0gcmVwb3NpdMOzcmlvIHBhcmEgYXJtYXplbmFtZW50byBwZXJtYW5lbnRlLiAKCkFxdWkgaXJlaSBtb3N0cmFyIGNvbW8gaXNzbyBwb2RlIHNlciBmZWl0YSBhIHBhcnRpciBkYSB1dGlsaXphw6fDo28gZG8gW1plbm9kb10oaHR0cHM6Ly96ZW5vZG8ub3JnLyksIG1hcyBvdXRyb3MgcmVwb3NpdMOzcmlvcyBwZXJtYW5lbnRlcyBkZSBkYWRvcyBlIGPDs2RpZ29zIGVzdMOjbyBkaXNwb27DrXZlaXMgcG9yIGHDrSwgcG9yIGV4ZW1wbG8gRHJ5YWQuCgpQYXJhIGFybWF6ZW5hciBzZXUgY8OzZGlnbyBubyBaZW5vZG8sIGEgcHJpbWVpcmEgY29pc2EgYSBzZXIgZmVpdGEgw6kgY3JpYXIgdW1hIGNvbnRhIG5lbGUuIEEgbWluaGEgc3VnZXN0w6NvIMOpIHF1ZSBlc3RhIGNvbnRhIHNlamEgY3JpYWRhIGF0cmF2w6lzIGRhIHN1YSBjb250YSBkbyBHaXRIdWIsIGlzc28gZmF6IGNvbSBxdWUgbyBaZW5vZG8gasOhIHRlbmhhIGNvbmV4w6NvIGNvbSBzZXVzIHJlcG9zaXTDs3Jpb3MsIGluY2x1aW5kbyBhcXVlbGUgcXVlIHByZXRlbmRlIGZhemVyIG8gYXJtYXplbmFtZW50byBwZXJtYW5lbnRlLgoKIyBBY2Vzc2FuZG8gc2V1cyByZXBvc2l0w7NyaW9zIHZpYSBaZW5vZG8KClBhcmEgdmVyIG9zIHNldXMgcmVwb3NpdMOzcmlvcyBhdHJhdsOpcyBkbyBaZW5vZG8gYmFzdGEgYWNlc3NhciBhIGFiYSBHaXRIdWIgdmlhIHplbm9kbywgY29tbyBtb3N0cmFkbyBuYSBzZXRhIGRhIEZpZ3VyYSBhYmFpeG8KCmBgYHtyIGVjaG89RkFMU0UsIGV2YWw9VFJVRSwgZmlnLmNhcD0iUMOhZ2luYSBkbyB6ZW5vZG8gcXVlIGFwcmVzZW50YSBjb25leMOjbyBjb20gc2V1cyByZXBvc2l0w7NyaW9zIG5vIEdpdGh1YiJ9CmtuaXRyOjppbmNsdWRlX2dyYXBoaWNzKCJmaWdzL3plbm9kby1wYWdlLnBuZyIpCgpgYGAKCgpBbyBhY2Vzc2FyIGEgYWJhIEdpdEh1YiB2aWEgWmVub2RvLCB0b2RvcyBvcyBzZXVzIHJlcG9zaXTDs3Jpb3MgcMO6YmxpY29zIGlyw6NvIGFwYXJlY2VyLCBwb3J0YW50bywgw6kgaW1wb3J0YW50ZSBxdWUgbyByZXBvc2l0w7NyaW8gcXVlIHZvY8OqIHByZXRlbmRlIGZhemVyIG8gYXJtYXplbmFtZW50byBwZXJtYW5lbnRlIGRvcyBkYWRvcyBzZWphIHDDumJsaWNvLCBjb21vIG1vc3RyYWRvIG5hIGltYWdlbSBhYmFpeG8KCmBgYHtyIGVjaG89RkFMU0UsIGV2YWw9VFJVRSwgZmlnLmNhcD0iUMOhZ2luYSBkbyB6ZW5vZG8gY29tIHNldXMgcmVwb3NpdMOzcmlvcyBww7pibGljb3MgR2l0aHViIn0Ka25pdHI6OmluY2x1ZGVfZ3JhcGhpY3MoImZpZ3MvemVub2RvMi5wbmciKQoKYGBgCgpPIHByaW1laXJvIHBhc3NvIMOpIGhhYmlsaXRhciBvIGFjZXNzbyBkbyBaZW5vZG8gYW8gcmVwb3NpdMOzcmlvIGRlIGludGVyZXNzZS4gQ29tbyBtb3N0cmFkbyBuYSBwcsOzcHJpYSBww6FnaW5hIGRvIFplbm9kby4gRW0gc2VndWlkYSB2b2PDqiBkZXZlIGZhemVyIHVtICoqcmVsZWFzZSoqIGRvIHNldSByZXBvc2l0w7NyaW8sIG1hcyBvIHF1ZSDDqSBpc3NvPyBDb21vIG8gcHLDs3ByaW8gbm9tZSBkaXosIG8gcmVsZWFzZSDDqSB1bSBsYW7Dp2FtZW50byBkbyByZXBvc2l0w7NyaW8sIMOpIGNvbW8gc2UgZm9zc2UgdW1hIGZvdG9ncmFmaWEgZG8gcmVwb3NpdMOzcmlvIGludGVpcm8gZW0gdW0gZGFkbyBtb21lbnRvLiBGYXplbW9zIGlzc28sIHBvciBleGVtcGxvLCBxdWFuZG8gdGVtb3MgdW1hIHZlcnPDo28gZXN0w6F2ZWwgZGUgdW0gcGFjb3RlIGVzdGF0w61zdGljbywgb3UgcXVhbmRvIHN1Ym1ldGVtb3MgbyBub3NzbyBtYW51c2NyaXRvIHBhcmEgdW1hIHJldmlzdGEgb3UgcmVwb3NpdMOzcmlvcyBkZSBwcmVwcmludHMuIE8gcmVsZWFzZSDDqSBpbXBvcnRhbnRlIHBvaXMgw6kgYSBwYXJ0aXIgZGVsZSBxdWUgc2Vyw6EgY3JpYWRvIG8gRE9JIChEaWdpdGFsIE9iamVjdCBJZGVudGlmaWVyKSwgcXVlIMOpIGNvbW8gdW0gUkcgZG8gc2V1IHJlcG9zaXTDs3JpbywgdW0gbsO6bWVybyDDum5pY28gcGVsbyBxdWFsIGVsZSBwb2RlIHNlciBpZGVudGlmaWNhZG8gbmEgaW50ZXJuZXQuCgpQYXJhIGNyaWFyIHVtIHJlbGVhc2UgY2xpcXVlIG5vIGJvdMOjbyB2ZXJkZSBuYSBmaWd1cmEgc2VndWludGUuIEVsZSB0ZSByZWRpY2lvbmFyw6EgcGFyYSBhIHDDoWdpbmEgZG8gR2l0SHViLgoKYGBge3IgZWNobz1GQUxTRSwgZXZhbD1UUlVFLCBmaWcuY2FwPSJQw6FnaW5hIGRvIHplbm9kbyBxdWUgcmVkaWNpb25hcsOhIHBhcmEgbyBnaXRodWIgcGFyYSBjcmlhciBvIHJlbGVhc2UifQprbml0cjo6aW5jbHVkZV9ncmFwaGljcygiZmlncy96ZW5vZG8zLnBuZyIpCgpgYGAKCgpOw6EgcMOhZ2luYSBkbyBHaXRIdWIgZMOqIHVtIG5vbWUgcGFyYSBlc3NlIHNldSBub3ZvIHJlbGVhc2UuIEdlcmFsbWVudGUgb3Mgbm9tZXMgc2VndWVtIHVtIGZvcm1hdG8gY29tIHRyw6pzIGRpZ2l0b3Mgc2VwYXJhZG9zIHBvciBwb250b3MsIGNoYW1hbW9zIGVzc2Ugc2lzdGVtYSBkZSBbdmVyc2lvbmFtZW50byBzZW3Dom50aWNvXShodHRwczovL3NlbXZlci5vcmcvbGFuZy9wdC1CUi8pIGUgdXRpbGl6YW1vcyBlbGUgcGFyYSBjb250cm9sYXIgYXMgdmVyc8O1ZXMgZGUgbGFuw6dhbWVudG8gZGUgYWNvcmRvIGNvbSBtdWRhbsOnYXMgcXVlIHBvZGVtb3MgaXIgZmF6ZW5kbyBubyBub3NzbyBjw7NkaWdvLiBJc3NvIMOpIG1haXMgY29tdW0gZGUgc2VyIHV0aWxpemFkbyBwYXJhIGNvbnRyb2xhciB2ZXJzw7VlcyBkZSBwYWNvdGVzLCBtYXMgbsOjbyBpbXBlZGUgcXVlIHV0aWxpemUgYSBtZXNtYSBsw7NnaWNhIG5vIHNldSByZXBvc2l0w7NyaW8gcXVlIGNvbnTDqW0gZGFkb3MgZSBjw7NkaWdvcyBkZSBhbsOhbGlzZXMuCgpQYXJhIGxhbsOnYXIgc2V1IHJlbGVhc2UgYmFzdGEgYXRyaWJ1aXIgdW0gbm9tZSBkZSB2ZXJzw6NvIHBhcmEgc2V1IHJlcG9zaXTDs3JpbyBlIHByb250byEgQmFzdGEgY2xpY2FyIG5vIGJvdMOjbyBwYXJhIHB1YmxpY2FyIG8gcmVsZWFzZSBlIGVsZSBlc3TDoSBwcm9udG8uCgpgYGB7ciBlY2hvPUZBTFNFLCBldmFsPVRSVUUsIGZpZy5jYXA9IlDDoWdpbmEgZG8gZ2l0aHViIHBhcmEgcHJlZW5jaGVyIGFzIGluZm9ybWHDp8O1ZXMgZG8gcmVsZWFzZSJ9CmtuaXRyOjppbmNsdWRlX2dyYXBoaWNzKCJmaWdzL3plbm9kbzQucG5nIikKYGBgCgpBcMOzcyBpc3NvLCB2b2x0ZSBwYXJhIGEgcMOhZ2luYSBkbyBaZW5vZG8sIGzDoSB2b2PDqiB2YWkgZW5jb250cmFyIGFsZ3VtYXMgY29pc2FzIG5vdmFzIGFvIGNsaWNhciBubyByZXBvc2l0w7NyaW8gcXVlIGZleiBvIHJlbGVhc2UsIGEgbWFpcyBpbXBvcnRhbnRlIGRlbGEgc2Vyw6EgbyBET0kuCgpgYGB7ciBlY2hvPUZBTFNFLCBldmFsPVRSVUUsIGZpZy5jYXA9IlDDoWdpbmEgZG8gWmVub2RvIG1vc3RyYW5kbyBhcyBpbmZvcm1hw6fDtWVzIGRvIHJlbGVhc2UsIGNvbSBkZXN0YXF1ZSBwYXJhIG8gRE9JIn0Ka25pdHI6OmluY2x1ZGVfZ3JhcGhpY3MoImZpZ3MvemVub2RvNS5wbmciKQpgYGAKCkVzc2UgbsO6bWVybywgYSBwYXJ0aXIgZGUgYWdvcmEsIGlkZW50aWZpY2Fyw6Egc2V1IHJlcG9zaXTDs3JpbyBubyBaZW5vZG8uIFZvY8OqIHBvZGUsIHBvciBleGVtcGxvLCBhZGljaW9uYXIgZXNzZSBuw7ptZXJvIG5vIHNldSBSRUFETUUsIGRlIG1vZG8gcXVlIHF1ZW0gYWNlc3NlIG8gc2V1IHJlcG9zaXTDs3JpbyBhdHJhdsOpcyBkbyBHaXRIdWIgc2FpYmEgcXVlIHZvY8OqIHRlbSB1bWEgdmVyc8OjbyBkZSBhcm1hemVuYW1lbnRvIHBlcm1hbmVudGUgcXVlIHBvZGUgc2VyIGFjZXNzYWRhIGF0cmF2w6lzIGRlc3NlIERPSSBubyBzw610aW8gZG8gWmVub2RvLiBFc3RlIG7Dum1lcm8gdGFtYsOpbSBwb2RlIHNlciBhZGljaW9uYWRvIG5hIHZlcnPDo28gZmluYWwgZG8gc2V1IGFydGlnbywganVudGFtZW50ZSBjb20gbyBlbmRlcmXDp28gZWxldHLDtG5pY28gcGFyYSBvIHJlcG9zaXTDs3JpbyBubyBaZW5vZG8uIEFiYWl4byB2ZWphIGFzIGluZm9ybWHDp8O1ZXMgYWRlcXVhZGFzIHBhcmEgZGlmZXJlbnRlcyB0aXBvcyBkZSBkb2N1bWVudG9zIGUgc2l0dWHDp8O1ZXMKCmBgYHtyIGVjaG89RkFMU0UsIGV2YWw9VFJVRSwgZmlnLmNhcD0iUMOhZ2luYSBkbyBaZW5vZG8gbW9zdHJhbmRvIGFzIGluZm9ybWHDp8O1ZXMgZG8gcmVsZWFzZSJ9CmtuaXRyOjppbmNsdWRlX2dyYXBoaWNzKCJmaWdzL3plbm9kbzYucG5nIikKYGBgCg==