Bug fix release.
Helps to install ObjectScript classes and routines, globals, Embedded Python modules, CSP and Frontend packages, and any files into InterSystems IRIS published on the official ZPM Registry or private ZPM registry of your own.
s r=##class(%Net.HttpRequest).%New(),r.Server="pm.community.intersystems.com",r.SSLConfiguration="ISC.FeatureTracker.SSL.Config" d r.Get("/packages/zpm/latest/installer"),$system.OBJ.LoadStream(r.HttpResponse.Data,"c")
OR:
After that you can use PackageManager to install modules from community repository in any namespace.
zpm: USER>
USER> zpm
zpm: USER>repo -list-modules -n registry
deepseebuttons 0.1.7 dsw 2.1.35 holefoods 0.1.0 isc-dev 1.2.0 mdx2json 2.2.0 objectscript 1.0.0 pivotsubscriptions 0.0.3 restforms 1.6.1 thirdpartychartportlets 0.0.1 webterminal 4.8.3 zpm 0.0.7
zpm: USER> install webterminal
USER> zpm
zpm: USER> uninstall webterminal
This is described in the following set of articles
The simplest and template repository can be found here. Here is the alternative supported folder structure.
ObjectScript Package Manager is a community supported project and thus open to collaboration via Pull Requests. Issues and feature requests are very welcome
Bug fix release.
Learn more in the release notes
changelog
help
repo
typesAfterInstallMessage
tag in module.xml
${webroot}
, which refers to url with host and port where the internal web-server is availableThe key features of the ZPM 0.2.14 release are:
Here are the release notes.
The timeout issue is fixed.
File copy fix
Improvements and fixes to FileCopy
Added some improvements to already existing tag FileCopy
Example of module.xml
<?xml version="1.0" encoding="UTF-8"?>
<Export generator="Cache" version="25">
<Document name="test-binary.ZPM">
<Module>
<Name>test-binary</Name>
<Version>0.0.1</Version>
<Packaging>module</Packaging>
<SourcesRoot>src</SourcesRoot>
<FileCopy Name="lib" Target="${libdir}my-lib"/> <!-- Copies content of lib folder to target -->
<FileCopy Name="somefile.jar" Target="${libdir}my-lib"/> <!-- Copies just desired file to target -->
</Module>
</Document>
</Export>
Added aliases Target and Dest to attribute InstallDirectory
Supports files as well as directories, no wildcards, just folder content of which should be copied, or particular file
${libdir}, ${bindir} added, installdir/lib and installdir/bin respectively.
Using bindir in docker environments may cause to security issues during install. ${libdir} works in with docker.
Don't need wrapper tag anymore
Added a few more attributes:
CheckStatus (Default: false), expects that invoked method returns %Status, and use it to check the status of installation.
Phase, (Default: Configure), the phase during which it should be executed
When, (Default: After), values: Before and After. To execute before or after the main execution for the phase
added support for variables, added ${verbose} variable
<Invoke Class="%EnsembleMgr" Method="EnableNamespace" Phase="Compile" When="Before" CheckStatus="true">
<Arg>${namespace}</Arg>
<Arg>${verbose}</Arg>
</Invoke>
New in this release:
1)** Interoperability support** - support for dtl, bpl, lut, esd, x12 in module.xml
Now it's allowed to refer to DTL and BPL files. ZPM stores and uses them as CLS.
<Resource Name="ResourceTest.TestDTL.dtl"/>
<Resource Name="ResourceTest.TestBPL.bpl"/>
Other interoperability components such as LUT, ESD, X12 should be in XML format with .xml extension and expected in the folder named i14y (short form of interoperability)
<Resource Name="Test_HIPAA_5010.X12"/>
<Resource Name="hl7_2.5.LUT"/>
2) InterSystems BI - DFI files support
Allows multiple ways of defining InterSystems BI (DeepSee) DFI resources
By Fullname
<Resource Name="Sample Operational Reports-Auditing Overview.dashboard.DFI"/>
Wildcard with the folder name
<Resource Name="Sample Operational Reports-*.DFI"/>
Just everything
<Resource Name="*.DFI"/>
Limited by keywords, used only during the export.
<Resource Name="*.DFI" Keywords="myapp"/>
Search command enhancements:
search -d - shows package description
search zpm* - shows packages with names starts with "zpm"
$zpm function
set sc=$zpm("install bla")
Now .DFI resources in xml format supported.
<SystemRequirements>
- new tag in modul.xml to<SystemRequirements Version=">=2020.1" Interoperability="enabled" />
To check if your package is published in the registry and then installed from it, use the test registry: https://test.pm.community.intersystems.com/registry/
login: test
password: test
To switch to the test registry use the command
repo -r -n registry -url https://test.pm.community.intersystems.com/registry/ -user test -pass test
Once a day, the test registry is updated and all data in it is reset
Previously, to publish a module in the current registry, you had to use the module-action command, for example module-action mymodule publish
, and it could be written shorter mymodule publish
.
Now you can use the publish command: publish mymodule
- use the organic word order
New commands:
Using the generate
command, you can create a module.xml file template in a second.
Usage:
generate -template /my/project
Creates a module.xml file with fictional data in /my/project
After that you must open and edit this file to change module meta information and specify module resources (classes, csp pages, globals, test)
generate /my/project
Without -template (or -t) flag this command creates a module.xml file in an interactive mode. Just answer several questions. Use -author (-a) flag to add information about module author
zpm: USER>generate /temp/zzzz
Enter module name: zzzz
Enter module version: 1.0.0 => 1.0.1
Enter module description: module description
Enter module keywords: module keywords
Enter module source folder: src =>
Existing Web Applications:
/csp/user
Enter a comma separated list of web applications or * for all: /csp/user
Enter path to csp files for /csp/user: src/web
Dependencies:
Enter module:version or empty string to continue: sslclient:1.0.1
Enter module:version or empty string to continue:
zpm: USER>
Now Globals are expected in /src/gbl (but not in /gbl )
Version command displays currently installed zpm version number; shows locally installed zpm registry and connected remote repository and their version.
zpm: USER>version
zpm 0.2.2
Locally installed zpm-registry not found
https://pm.community.intersystems.com - 0.0.2
If you do not specify the username and password modifiers in the repo command for the remote registry, the previously set values for username and password will be reset.
zpm: USER>repo -r -n registry -url https://pm.community.intersystems.com/
fixed bug with getting the latest version of the package
Show module repository
Use -show-repo modifier with search command to show repositories
zpm: USER>search -show-repo
CSP Applications
For REST applications no longer need to specify attributes: Directory and Path
Custom parameters to modules installation support
Add Default element in the module.xml to define a parameter and default value
<Defaults>
<Default Name="count" Value="7" />
</Defaults>
Use parameters in module.xml as ${count}
In install command use -Dcount=42 to pass a new value
Wiki documentation is added
Fix issue when extracted file size less than original
Read and discuss all the release news
Show module repository
Use -show-repo
modifier with search
command to show repositories
zpm: USER>search -show-repo
CSP Applications
For REST applications no longer need to specify attributes: Directory and Path
Custom parameters to modules installation support
Add Default element in the module.xml to define a parameter and default value
<Defaults>
<Default Name="count" Value="7" />
</Defaults>
Use parameters in module.xml as ${count}
In install command use -Dzpm.count=42
to pass a new value
Wiki documentation is added
Fix analytics issue
What’s new:
Added synonyms to Path and Directory parameters of CSPApplication
SourcePath=Path
DeployPath=Directory
${parameter} supported:
${namespace}
${mgrdir}
${cspdir}
${root}
${dbrole}
search command introduced to show the available modules in a current remote registry
zpm:USER>search
moduleX 1.0.0
moduleY 1.0.0
test reporting issues fixed
Tests can run in test and verify phases
Tests with same root don't run twice
Support for running test suites
Support for JUnit output
Inversion of control to support TestCoverage
New simplified sourcecode folder structure is supported.
Updated the Download link
invoke introduced
using auto-publishing