Todo ativo digital da Embrapa a ser disponibilizado para o público final deverá tramitar pelo Comitê Local de Propriedade Intelectual (CLPI) da Unidade Descentralizada e pela Supervisão de Propriedade Intelectual (SIN/GAT/PRIN) que, eventualmente, demandarão seu registro (ou depósito) junto ao Instituto Nacional da Propriedade Industrial (INPI).

No INPI o registro deverá ser realizado na modalidade “Programa de Computador”. Atualmente o INPI não resguarda mais o código-fonte em si do ativo digital, mas sim apenas o “resumo digital hash” deste código-fonte. Assim, durante o processo interno de registro do ativo digital, será demandada à equipe de desenvolvimento a geração desta hash.

Para fazer isso no Embrapa I/O, recomendamos considerar a macro-versão do ativo (veja sobre os conceitos de rodadas evolutivas e versões utilizados pela Plataforma). Assim, poderá ser realizado o depósito/registro da versão 1.0, depois de uma versão 2.0 e assim sucessivamente.

Atenção! Para macro-versões abaixo da TRL 8, recomenda-se utilizar como sufixo o qualificador de maturidade: INPI-PoC para TRL 5, INPI-Prototype para TRL 6 e INPI-MVP para TRL 7.

Para cada registro de uma macro-versão, deverão ser agrupados os códigos-fonte de todas as aplicações desenvolvidas no projeto que compõem o ativo digital. É importante que todos os ajustes essenciais nas aplicações sejam realizados antes de executar o procedimento de geração da hash, pois esta funciona como uma “foto” daquele estado exato do código-fonte e qualquer alteração posterior, por menor que seja, gera uma hash completamente diferente.

Para início do procedimento, deverá ser criada uma tag no commit no repositório GIT que será alvo do registro. Por exemplo, vamos supor que estamos fazendo o registro da 4ª macro-versão do aplicativo Pasto Certo e que este aplicativo é formado por 3 aplicações desacopladas:

  • pwa: aplicação de frontend que implementa a interface para os usuários (público final) em formato Progressive Web Application;
  • manager: aplicação de frontend que implementa a interface para os gestores da ferramenta em formato Single-Page Application; e
  • api: aplicação de backend (server side) que implementa uma API RESTful e persiste os dados da solução como um todo em nuvem.

Assim, para definir no repositório da aplicação pwa do Pasto Certo o commit exato que será depositado no INPI, é criada uma tag com prefixo INPI- seguido do número da macro-versão. No exemplo ficaria portanto “INPI-4.0”, conforme pode ser visto abaixo:

Criando a tag para registro no INPI.

É esperado que esta tag seja criada no mesmo commit de uma tag de deploy, que já tenha sido validada em ambiente de homologação (estágio beta) ou mesmo já esteja em produção (estágio release), caracterizando uma versão “finalizada” da aplicação. No exemplo acima, o registro está sendo feito para a versão 4.23.6-6 de produção (na branch de estágio release).

O mesmo deverá ser feito, seguindo o exemplo, nos repositórios das aplicações manager e api.

Atenção! Caso esteja utilizando um cliente GIT local, não se esqueça de fazer o push da tag para a origin.

Uma vez que os commits nos repositórios estejam devidamente ‘tagueados’, pode-se iniciar o processo de exportação do código e geração do “resumo digital hash”. Para isso, primeiro crie um novo diretório em seu sistema de arquivos no local que achar mais conveniente:

mkdir inpi
cd inpi

Em seguida, faça o clone dos repositórios de código-fonte (a partir da tag criada) de todas as aplicações que compõem o ativo digital:

git clone --depth 1 --branch INPI-4.0 git@git.embrapa.io:pasto-certo/api.git
git clone --depth 1 --branch INPI-4.0 git@git.embrapa.io:pasto-certo/pwa.git
git clone --depth 1 --branch INPI-4.0 git@git.embrapa.io:pasto-certo/manager.git

Agora, apague os diretórios .git de forma a remover a relação com o repositório GIT. Com isso restará puramente o código-fonte a ser registrado:

rm -rf api/.git
rm -rf pwa/.git
rm -rf manager/.git

Em seguida, compacte todo o diretório inpi, inicialmente criado, utilizando, p.e., o ZIP:

cd ..
zip -vr pasto-certo_v4_inpi_20240905.zip inpi -x "*.DS_Store"

No comando acima foi utilizado o utilitário de linha de comando zip do MacOS. Reparem que são excluídos arquivos denominados .DS_Store, que são criados automaticamente por este sistema operacional e não fazem parte do código-fonte.

Por fim, gere a hash SHA-512:

shasum -a 512 pasto-certo_v4_inpi_20240905.zip

É recomendado que o arquivo compactado e a hash sejam armazenadas de forma permanente no repositório io-doc do GIT do projeto.

Atenção! Conforme a norma atual, a Unidade Descentralizada deverá resguardar o código-fonte a ser depositado no INPI. Portanto, o NTI da Unidade também deve manter uma cópia permanente, em ambiente local, do arquivo compactado gerado acima.