#InterSystems Package Manager (IPM)

13 Followers · 144 Posts

InterSystems Package Manager (IPM) is a tool to deploy the packages and solutions into InterSystems IRIS with dependencies.

Download Package Manager client.

InterSystems staff + admins Hide everywhere
Hidden post for admin
Article Evgeny Shvarov · May 16, 2023 1m read

Hi folks!

Just want to introduce you a new util to import CSV into IRIS - csvgenpy!

Install

USER>zpm "install csvgenpy"

Use:

do ##class(shvarov.csvgenpy.csv).Generate("file or url","table","schema")

Example:

USER>do ##class(shvarov.csvgenpy.csv).Generate("https://raw.githubusercontent.com/datasciencedojo/datasets/master/titanic.csv","titanic","data")

This will create table and class data.titanic in IRIS and will load the data.  you can proof it with:

1.
0
1 336
Announcement Anastasia Dyubaylo · Mar 17, 2023

Hey Community,

Tired of entering login-password during the docker build with your InterSystems IRIS every time?

There is a handy way to turn it on and off – use the passwordless zpm module.

Watch this video to explore how to use the passwordless ipm module to turn on and off entering login-password during docker build with your InterSystems IRIS:

⏯️ Passwordless mode for development with InterSystems IRIS

0
0 432
Article Evgeny Shvarov · Jun 24, 2020 3m read

Hi Developers!

Suppose you have a persistent class with data and you want to have a simple Angular UI for it to view the data and make CRUD operations.

Recently @Alberto Fuentes described how to build Angular UI for your InterSystems IRIS application using RESTForms2. 

In this article, I want to tell you how you can get a simple Angular UI to CRUD and view your InterSystems IRIS class data automatically in less than 5 minutes.

Let's go!

3
4 1371
Article Sergey Mikhailenko · Jan 24, 2023 8m read

image

Introduction

There are many entities in IRIS which are extremely difficult to transfer to another system.They usually contain important system-stored objects: users, roles, privileges, mappings, and applications. The exception to this list is for resources, which are facilitated by the ability to select and save them from the management portal interface [System > Security Management > Resources]. Yet, things are not as good with other system objects. I even got an idea for this topic

I devoted this article to the explanation of how to transfer gateway connection settings [System >

2
0 699
InterSystems Official Raj Singh · Jan 10, 2023

We have just released a minor update to the package manager, which has been renamed from ZPM to IPM as I explained in November.  It purely a bug fix release, properly interpreting ROBOCOPY return codes and fixing a regression that prevented installation of certain packages.

Get it here:

https://github.com/intersystems/ipm/releases/tag/v0.5.2

0
0 457
InterSystems Official Raj Singh · Nov 8, 2022

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.

It has proven so important that InterSystems has decided to use it for packaging our own components, and that has led us to a decision to move the GitHub repository from the community into our corporate one, and rename it InterS

10
3 2167
Article Evgeny Shvarov · Aug 14, 2022 2m read

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

1
0 808
Announcement Dmitry Maslennikov · Oct 28, 2022

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.

USER>zpm "install python-faker" 

[USER|python-faker]     Reload
2
1 306
Announcement Dmitry Maslennikov · Oct 3, 2022

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
11
0 533
Question sween · Oct 5, 2022

Anybody willing to share a method form the ZPM cli (or othewise) where zpm will "Install package if not already installed?"  I would want this to count for updates too I think as I would want to control that too.

The use case is in a CI-CD pipeline, where the pipeline can be used to provision start to state, but for somethings only do once.  An example would be I have a package that provisions a fhir package or search parameter in my own way, but doesnt do it again when somebody merges operational code and the pipeline fires again, it would not attempt to load the fhir package again.

6
0 329
Article Nikolay Solovyev · Nov 23, 2021 1m read

A new release of ZPM has been published - ZPM 0.3.2.

New in this release:

  • Various changes in the output command of help
  • Changes in colors in the outputs
  • Added an ability to add more repo types
  • Added an ability to specify a post-installation message, with AfterInstallMessage tag in module.xml
  • Added variable ${webroot}, which refers to url with host and port where the internal web-server is available
  • Fixed issue when during install if no module was specified (issue #243)
  • Fixed issue with uppercased FileCopy resource
  • Some other minor bugfixes
2
0 429
Question Thomas Kotze · Sep 27, 2022

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

9
0 280
Article Evgeny Shvarov · May 30, 2020 2m read

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>
16
1 1479
Announcement Raj Singh · Jun 15, 2022

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. 

As a developer, you can also join the ongoing discussion about some final key design issues we are exploring with the community.

0
1 250
Article Muhammad Waseem · May 30, 2022 3m read

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.

2
0 1028
Article Evgeny Shvarov · May 28, 2022 3m read

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

0
0 571
Article Sergey Mikhailenko · Jan 18, 2022 5m read

It is becoming more and more common to see beautiful badges in the README.MD file with useful information about the current project in the repositories of GitHub, GitLab and others. For instance:

imageimage

The project is being developed The quality of the code, which also provides its own badge, which immediately shows the status of code validation of the project. If you insert a line into the README.MD file

 [![Quality Gate
4
3 815
Article Evgeny Shvarov · Nov 12, 2019 3m read

Hi Developers!

Suppose you want to create your ObjectScript library to be distributed via ObjectScript Package Manager. And there is an obvious question: what is the naming convention on the packages and class names?

Naming packages and classnames

There is already some accepted practice with package managers and we will follow the best practices in this field. The most reasonable and simple looks the approach with having company as the first package then project as the second and then classes and subpackages of the project.

The folder structure in this case looks like:

/src/cls/company/project/subp

6
2 1139
Question Yone Moreno · May 13, 2020

Hello,

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

https://openexchange.intersystems.com/package/ObjectScript-Package-Mana…

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"

Then in the terminal, go inside one namespace:

zn "esbsscc"

After that we load and compile the .xml:

write $SYSTEM.OBJ.Load("C:\InterSystems\HealthShare_2\opt\contenedor\zpm-0.2.2.xml")

The

7
1 1784
Article Evgeny Shvarov · Dec 12, 2021 1m read

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.

You can create a new repository or clone it and change the package name to the one that is needed for you and once the docker image is built you get an InterSystems IRIS in a docker container with a package (or set of packages) you like.

By default it installs csvgen packag

0
0 257
Discussion Evgeny Shvarov · Nov 29, 2021

Hi, Community!

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

This is really great!

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

6
1 605
Announcement Timothy Leavitt · Oct 28, 2021

I'd like to bring your attention to my two Virtual Summit sessions, even though they're not HALF as cool as Embedded Python.

Git & GitLab for Shared Development Environments details the newly-released git-source-control package (see also on the Open Exchange) which provides a new best-of-breed solution for server-side IRIS/Git integration, especially for shared remote development environments. (I need to write up a post about this package specifically and plan to do so soon.)

InterSystems Package Manager Advanced Topics shows that our package manager (affectionately referred to as "ZPM") is

2
0 342
Announcement Sergei Shutov · Oct 25, 2021

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!

 

0
0 215
Article Oliver Wilms · Oct 17, 2021 3m read

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.I had created a CSV file for my Analytics contest entry.I wanted to use it to test the CSV Record Wizard.It was not obvious how to use it.

0
0 501