Anúncio
· Out. 4, 2022

Lançamento do Gerenciador de Pacotes InterSystems ZPM 0.4.0

Uma nova versão do ZPM foi publicada, a 0.4.0

Novidades da nova versão

  • Adicionado o suporte a pacotes Implantados, publicação e instalação
  • Suporte a múltiplos servidores de registro, ex. servidores de registro públicos de comunidades, privados corporativos e outros, incluindo código embutido Python
  • Habilidade de exibição de todas as versões e pacotes de origem na busca
  • Corrigido o problema de pacotes com código pré carregado
  • Expandido o limite de tamanho de argumentos na chamada

Múltiplos registros

Agora é possível definir mais de um registro em sua instância e assim, você poderá utilizar registros públicos de comunidades, de teste ou privados corporativos ao mesmo tempo. Basta utilizar outro nome para o registro

Por exemplo, podemos adicionar um registro de teste:

zpm:USER>repo -n test -r -url https://test.pm.community.intersystems.com/registry/ -user test -pass PassWord42 

test
        Source:                 https://test.pm.community.intersystems.com/registry/
        Enabled?                Yes
        Available?              Yes
        Use for Snapshots?      Yes
        Use for Prereleases?    Yes
        Is Read-Only?           No
        Deployment Enabled?     No
        Username:               test
        Password:               <set>

zpm:USER>repo -list

test
        Source:                 https://test.pm.community.intersystems.com/registry/
        Enabled?                Yes
        Available?              Yes
        Use for Snapshots?      Yes
        Use for Prereleases?    Yes
        Is Read-Only?           No
        Deployment Enabled?     No
        Username:               test
        Password:               <set> 


registry
        Source:                 https://pm.community.intersystems.com
        Enabled?                Yes
        Available?              Yes
        Use for Snapshots?      Yes
        Use for Prereleases?    Yes
        Is Read-Only?           No
        Deployment Enabled?     No

E além desta alteração, agora é possível redefinir propriedades para registros apenas enviando o nome de um registro existente. Por exemplo, atualizando apenas a senha:

zpm:USER>repo -n test -pass PassWord42 

test
        Source:                 https://test.pm.community.intersystems.com/registry/
        Enabled?                Yes
        Available?              Yes
        Use for Snapshots?      Yes
        Use for Prereleases?    Yes
        Is Read-Only?           No
        Deployment Enabled?     No
        Username:               test
        Password:               <set>

Pacotes Implantados

A partir da versão 0.4.0, o  ZPM passou a suportar pacotes implantados. O reduzido module.xml pode parecer como o exibido abaixo, o importante aqui é a flag Deploy="true" 

<?xml version="1.0" encoding="UTF-8"?>
<Export generator="Cache" version="25">
<Document name="demo.ZPM">
<Module>
  <Name>demo</Name>
  <Version>1.0.0</Version>
  <Description>DEMO.</Description>
  <Keywords>demo</Keywords>
  <SourcesRoot>src</SourcesRoot>
  <Resource Name="Sample.Demo.PKG" Deploy="true"/>
</Module>
</Document>
</Export>

O processo de implantação é o mesmo que o anterior, você deve utilizar o comando load para carregar o módulo em modo desenvolvimento (por padrão)

zpm "load /home/irisowner/myproject"

Neste caso, o zpm irá carregar o código fonte e ignorar a flag Deploy devido ao Modo Desenvolvimento e assim, você poderá alterar o código.

Publicando

Para publicar um módulo Implantado você deverá utilizar seu próprio registro ou poderá utilizar registros de teste de comunidades para testes.

zpm:USER>publish demo -DPublishTo=test

[USER|demo]     PrepareDeploy START
[USER-PACKAGE-429287|demo]      PrepareDeploy SUCCESS
[USER-PACKAGE-429287|demo]      Reload START (/home/irisowner/zpm/packages/demo/)
[USER-PACKAGE-429287|demo]      Reload SUCCESS
[demo]  Module object refreshed.
[USER-PACKAGE-429287|demo]      Validate START
[USER-PACKAGE-429287|demo]      Validate SUCCESS
[USER-PACKAGE-429287|demo]      Compile START
[USER-PACKAGE-429287|demo]      Compile SUCCESS
[USER-PACKAGE-429287|demo]      Activate START
[USER-PACKAGE-429287|demo]      Configure START
[USER-PACKAGE-429287|demo]      Configure SUCCESS
[USER-PACKAGE-429287|demo]      Activate SUCCESS
[USER-PACKAGE-429287|demo]      Package START
[USER-PACKAGE-429287|demo]      MakeDeployed START
[USER-PACKAGE-429287|demo]      MakeDeployed SUCCESS
[USER|demo]     Package SUCCESS
[USER|demo]     Register START
[USER|demo]     Register SUCCESS
[USER|demo]     Publish START
[USER|demo]     Publish SUCCESS

Quando o ZPM verifica que o pacote utiliza a flag Deploy=true para alguns recursos, para propósitos de empacotamento e publicação, ele cria um novo namespace temporário, carrega o pacote lá, implanta o código e empacota o que resta sem o código-fonte original, onde não deveria estar. O log exibe cada passo e o namespace onde ele foi executado. Um parâmetro adicional -DPublishTo=test, define o nome do registro onde se publicar o pacote. E se você desejar, você poderá alterar o número da versão também -DNewVersion=1.0.0

Instalação de pacotes Implantados

A instalação é feita como usualmente , mas você não poderá instalar o pacote implantado, ou qualquer pacote no modo de produção, se já tiver o pacote instalado no modo de desenvolvimento.

zpm:USER>install demo

ERROR! Cannot install 'demo' over previously installed in developer mode

Você precisaria desinstalar o pacote instalado no modo de desenvolvimento ou usar um namespace ou instância limpa para ele.

É importante lembrar que os pacotes implantados não possuem código-fonte, portanto, o empacotamento deve ser concluído em uma versão específica do IRIS que suporte o desenvolvedor. O registro suporta várias versões de plataforma para uma versão específica do pacote, portanto, durante a instalação, o zpm solicitará a versão para a plataforma. Para comparar a versão, ele usa apenas a maior e a menor parte da versão IRIS, por exemplo. 2022.2, 2021.1. Quando você tentar instalar o pacote em uma versão não suportada do IRIS, receberá o erro

zpm:USER>install test/demo

ERROR! Deployed package 'demo' 1.0.0 not supported on this platform 2022.1.

Instalação com sucesso

zpm:USER>install test/demo

[USER|demo]     Reload START (/usr/irissys/mgr/.modules/USER/demo/1.0.0/)
[USER|demo]     Reload SUCCESS
[demo]  Module object refreshed.
[USER|demo]     Validate START
[USER|demo]     Validate SUCCESS
[USER|demo]     Compile START
[USER|demo]     Compile SUCCESS
[USER|demo]     Activate START
[USER|demo]     Configure START
[USER|demo]     Configure SUCCESS
[USER|demo]     Activate SUCCESS

Imagens Docker com ZPM

O ZPM mais recente já está disponível com a Comunidade IRIS e o ZPM pré-instalado

Nomes das imagens

  • intersystemsdc/iris-community
  • intersystemsdc/irishealth-community
  • intersystemsdc/iris-ml-community
  • intersystemsdc/irishealth-ml-community

E tags disponíveis

  • tag de versão mais recente e completa 2022.1.0.209.0-zpm
  • prévia e tag de versão completa 2022.2.0.345.0-zpm
  • 2021.2.0.651.0-zpm

Todas as imagens estão disponíveis para x86-64 e ARM64 pelo mesmo nome.

Discussão (0)1
Entre ou crie uma conta para continuar