Hi Developers!

Often when we develop some library, tool, package, whatever on InterSystems ObjectScript we have a question, how we deploy this package on the target machine?

Also, we often expect that some other libraries already installed, so our package depends on them, and often on some particular version of it.

When you code on javascript, python, etc the role of packages deployment with dependency management takes package manager.

So, I'm pleased to announce that InterSystems ObjectScript Package Manager available!

12 19
3 2,130
Article
Jimmy Xu · Oct 11 2m read
ZPM Simple Implementation Cookbook

ZPM is designed to work with applications and modules for InterSystems IRIS Data Platform. It consists of two components, the ZPN Client which is a CLI to manage modules, and The Registry which is a database of modules and meta-information. We can use ZPM to search, install, upgrade, remove and publish modules. With ZPM you can install ObjectScript classes, Frontend applications, Interoperability productions, IRIS BI solutions, IRIS Datasets or any files such as Embedded Python wheels.

Today this cookbook will go through 3 sections:

15 4
7 410

Hi Developers!

As you know the concept of ObjectScript Package Manager consists of ZPM client - client application for IRIS which helps you to install packages from the registry. And the code which works "on the other side" is ZPM Registry - server which hosts packages and exposes API to submit, list and install it. Now when you install the ZPM client it installs packages from community package registry, which si hosted on pm.community.intersystems.com

But what if you want your own registry? E.g. you produce different software packages for your clients and you want to distribute it via private registry? Also, you may want to use your own registry to deploy solutions with different combinations of packages.

Is it possible? The answer is YES! You can have it if you deploy ZPM registry on your server with InterSystems IRIS.

To make it happen you would need to set up your own registry server.

How to do that?

2 1
1 515

I'm pleased to announce a milestone in the lifecycle of the ObjectScript package manager, ZPM. The package manager has offered developers the ability to neatly package up ObjectScript code and deployment configuration settings and version information in a convenient way. Over the last few years, it has evolved greatly into an integral part of many development workflows.

21 10
3 635

Hello fellow developers!

When developing with ObjectScript Package Manager, one crucial thing is the package version, which we place in the module.xml file. When we add changes to the package and are ready to publish a new version of the package in the registry, we also need to increase the version number. This is clear, but it is annoying, and we can often forget to do that.

This small article will help you to automate such a process.

Probot logo

6 1
0 251

A new release of ZPM has been published 0.5.0

New in this release

  • Added support for Python's requirements.txt file
  • Using tokens for publishing packages
  • Fixed various issues

Python's requirements.txt

Now, if your project uses Python embedded and requires some Python's dependencies, you can add requirements.txt file to the project, as usual for any Python project, file have to be in the root of a project next to module.xml. And with load command or install command, ZPM will install dependencies from that file with using pip.

3 2
1 109

A new release of ZPM has been published 0.4.0

New in this release

  • Added support for Deployed packages, publishing, and installation
  • Support for multiple registry servers, e.g. public community registry, private corporate, and so on, including Python embedded code
  • Ability to show all versions and package origin in search
  • Fixed issue for packages with preload code
  • The expanded limit for the length of arguments in Invoke

5 11
0 161

Hello,

I am getting the following error , and not sure how to get passed this.

We have removed storage on the classes , did a clean compile and still we get the error below on some of the classes

Compile FAILURE
ERROR! Storage on class [ MyClass] modified by storage compiler, developer should have run ^build to make sure all storage is updated correctly and saved to Perforce

Any Idea how to resolve this or what to look for ?

Regards

0 9
0 92

Hi Developers!

Sometimes we need to import CSV data programmatically to InterSystems IRIS either from CSV or from URL. And we expect the class with proper datatypes to be created and the data to be imported.

I published a module csvgen on Open Exchange which does exactly that.

If you just need the CSV file be imported into IRIS you can do the following:

USER>do ##class(community.csvgen).Generate("/usr/data/titanic.csv",,"Data.Titanic")

Class name: Data.Titanic
Header: PassengerId INTEGER,Survived INTEGER,Pclass INTEGER,Name VARCHAR(250),Sex VARCHAR(250),Age INTEGER,SibSp INTEGER,Parch INTEGER,Ticket VARCHAR(250),Fare MONEY,Cabin VARCHAR(250),Embarked VARCHAR(250)
Records imported: 891
USER>

Or if you have the CSV on the internet, e.g. COVID-19 Data on Github you can get the data in the following way:

USER>d ##class(community.csvgen).GenerateFromURL("https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_daily_reports/05-29-2020.csv",",","Data.Covid19")

Class name: Data.Covid19
Header: FIPS INTEGER,Admin2 VARCHAR(250),Province_State VARCHAR(250),Country_Region VARCHAR(250),Last_Update DATE,Lat MONEY,Long_ DOUBLE,Confirmed INTEGER,Deaths INTEGER,Recovered INTEGER,Active INTEGER,Combined_Key VARCHAR(250),Incidence_Rate DOUBLE,Case-Fatality_Ratio DOUBLE
Records imported: 3522
USER>

7 16
1 875

InterSystems and the developer community around ZPM have been working together to take ZPM to the next level, building it into IRIS and making it a tool that can not only manage 3rd-party code, but key parts of InterSystems' products. You can hear a lot more on this topic at Global Summit 2022, and attend an experience lab to get hands-on.

3 0
1 132

Hi Community,

This post is a introduction of my open exchange iris-fhir-client application.

iris-fhir-client can connect to any open FHIR Server by using embedded python with the help of fhirpy Library.
Get Resource information by terminal and by using CSP web application.

3 2
0 233

ZPM is a great tool.
You can compose a large WebApplication following the existing examples.
But differently, to Classes, Routines, Macros, or Globals I found no direct way
to deploy a few additional CSP pages directly into an existing Namespace
without touching the existing content.

A side issue was to find a solution that is independent of WIN or Linux directories.

My solution acts in 2 steps

2 0
1 105

Hi Developers!

This is yet another short post that is intended to simplify developers' life. Now we'll talk about how to make GitHub run unit tests with every push to the repository by adding just one file to the repo. For free. On Github Cloud. Sounds great, isn't it?

It is possible and very easy to do. Credit goes to @Dmitry Maslennikov (and his repo), ZPM Package Manager, and GitHub Actions. Let's see how this all works!

Something for Nothing by Robert Sheckley - YouTube

4 0
0 239
Question
Yone Moreno · May 13, 2020
How could we install zpm?

Hello,

We have read the installation guide to get started with zpm package manager:

https://openexchange.intersystems.com/package/ObjectScript-Package-Manag...

We wonder what means the second step:

"Import the zpm.xml into IRIS and compile via any desired way (Management Portal, Studio or Terminal)"

We have thought that it means to place the zpm-0.2.2.xml file inside "C:\InterSystems\HealthShare_2\opt\contenedor"

0 7
0 684

With the release of InterSystems IRIS 2021.2 Preview and all-new LOAD DATA functionality dataset can by added with Objectscript Package Manager (ZPM)

Medical Datasets contains following 12 datasets. For dataset tables and data details please visit ONLINE DEMO by using SuperUser | SYS

2 0
0 107

Hi developers!

ZPM Package Manager is getting more and more popular and thus the library of packages is growing.

And thus some solutions or samples can be built with InterSystems IRIS and one or two packages installed.

I want to share with you iris-docker-zpm-usage-template - a template that can be used exactly for this purpose.

3 0
0 126

Hi, Community!

Open Exchange (OEX) is getting more and more popular and more and more developers consider publishing their apps in the public package manager registry.

This is really great!

So the topic of thoughtful naming convention is getting more important and even critical. Let's discuss?

1 6
0 231

InterSystems Global Summit (or Virtual Summit this year) is traditionally a time of big announcements, and I'm sure our friends from InterSystems have quite a lot of new and exciting things to share with us this year. Here at Banksia Global, we have a big announcement for you as well. Please meet our new website built to make IRIS-based software distribution a breeze: ZpmHub.com!

5 0
0 138

I work as an Integration Engineer for United States Department of Veterans Affairs (VA). I work on a Health Connect production which processes many RecordMap files. I do not fully understand RecordMaps and I wanted to develop an application for the Interoperability contest where I could learn more about working with RecordMaps. I browsed InterSystems documentation for inspiration on how to start. I was happy to find CSV Record Wizard.

0 0
0 250