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!

13 19
4 2.8K
InterSystems Official
· Nov 8, 2022
ZPM is now InterSystems Package Manager (IPM)

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.

22 10
3 1.3K
Article
· Oct 11, 2022 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:

19 10
10 851

Hi colleagues!

Every day Johns Hopkins University publishes new data on coronavirus COVID-19 pandemic status.

I built a simple InterSystems IRIS Analytics dashboard using InterSystems IRIS Community Edition in docker deployed on GCP Kubernetes which shows key measures of the disease outbreak.

This dashboard is an example of how information from CSV could be analyzed with IRIS Analytics and deployed to GCP Kubernetes in a form of InterSystems IRIS Community Edition.

Added the interactive map of the USA:

19 13
3 939

Hi folks!

Recently I was in need to setup a local FHIR server using IRIS For Health and I think I found the easiest and simplest way ever.

Just run in terminal these two lines below :

docker run --rm --name my-iris -d --publish 9091:1972 --publish 9092:52773 intersystemsdc/irishealth-community

and

docker exec -it my-iris iris session iris -U "USER" '##class(%ZPM.PackageManager).Shell("install fhir-server")'

And you'll have FHIR server running locally at http://localhost:9092/fhir/r4.

That's it!

The FHIR server will use the latest build of InterSystems IRIS for Health Community Edition and will deploy FHIR server from this app via IPM package in FHIRSERVER namespace.

This is for Mac, so please add in comments how it works in Windows.

This is a very short article as it is really easy to setup a local FHIR server with InterSystems IRIS for Health and IPM Package Manager.

12 6
0 541

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!

7 3
4 991

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 1.1K

Hi folks!

Sometimes when we develop a mockup or PoC there is a need for a simple interface that will provide data in IRIS in JSON against SQL queries.

And recently I contributed a simple module that does exactly that:

accepts SQL string and returns the JSON.

How to install? Just call:

zpm "install sql-rest"

If you install it in a namespace X it will setup a /sql endpoint to your system that will accept POST requests with SQL string and will return the result for you for the data available in the namespace X.

7 0
2 389
Article
· May 7, 2020 4m read
Unit Testing with ZPM

Hi Developers!

I want to share with you the approach you can use working with Unit Testing which I personally find very convenient and robust.

Will not talk much here about Unit Testing, we have documentation, enough good articles on the topic not only on the Internet but here on Developers Community too, e.g. this one.

How can you manage the Unit Testing of your ZPM module?

This is pretty handy with ZPM. It has a special command "test" which runs all the tests you mentioned in the module. You can execute it as shown below:

zpm:USER>module-name test

And this command runs all the tests you mentioned in module.xml.

Let's see how it works.

6 5
3 567

InterSystems is pleased to announce the central component for InterSystems Supply Chain Orchestrator™, the 2023.1 release of InterSystems IRIS for Supply Chain, is now Generally Available (GA).

6 1
0 401

Hi Community!

Just want to share with you an exercise I made to create "my own" chat with GPT in Telegram.

It became possible because of two components on Open Exchange: Telegram Adapter by @Nikolay Soloviev and IRIS Open-AI by @Kurro Lopez

So with this example you can setup your own chat with ChatGPT in Telegram.

Let's see how to make it work!

6 8
1 339

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 612

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.

6 2
0 612

Hi Developers!

Recently we released the updated version 0.1.3 of ObjectScript Package Manager (ZPM) which comes with the support of simplified ObjectScript sources folder structure.

What 'simplified' does mean?

Before 0.1.3 ZPM expected the following structure:

/src

---/cls  - for ObjectScript classes

---/cls/package_name/class_name.cls

---/cls/package_name/class_name2.cls

---/mac - or Mac ObjectScript routines

---/mac/package_name/mac_routine.mac

---/mac/package_name/mac_routine2.mac

---/inc - for ObjectScript macro include files.

---/inc/package_name/include_file.inc

6 3
1 754

Hi Developers!

Recently we launched InterSystems Package Manager - ZPM. And one of the intentions of the ZPM is to let you package your solution and submit into the ZPM registry to make its deployment as simple as "install your-package" command.

To do that you need to introduce module.xml file into your repository which describes what is your InterSystems IRIS package consists of.

This article describes different parts of module.xml and will help you to craft your own.

I will start from samples-objectscript package, which installs into IRIS the Sample ObjectScript application and could be installed with:

zpm: USER>install samples-objectscript

It is probably the simplest package ever and here is the module.xml which describes the package:

<?xml version="1.0" encoding="UTF-8"?>
<Export generator="Cache" version="25">
  <Document name="samples-objectscript.ZPM">
    <Module>
      <Name>samples-objectscript</Name>
      <Version>1.0.0</Version>
      <Packaging>module</Packaging>
      <SourcesRoot>src</SourcesRoot>
      <Resource Name="ObjectScript.PKG"/>
    </Module>
  </Document>
</Export>

6 12
6 1.4K

Hi Devs!

Last weekend I had been testing the newborn csvgen module and was looking for a CSV file to test - thus I came across an interesting datafile on Data.World with Game of Throne episodes statistics. Death statistics. These folks documented all the murders through all the 8 seasons and noted where, who, from what clan with what weapon had killed another one.

So I imported it and made an IRIS Analytics dashboard.

You Know Nothing, Jon Snow | You Know Nothing, Jon Snow | Know ...

Don't worry, Jon, with this dashboard we can figure out something ). See the details below.

6 0
2 557

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 316

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

5 0
0 442

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 166

Hi Developers,

Please welcome the new video on InterSystems Developers YouTube:

Building REST API with InterSystems IRIS Docker Container in 5 Minutes

https://www.youtube.com/embed/VVpIE1jfi1M
[This is an embedded link, but you cannot view embedded content directly on the site because you have declined the cookies necessary to access it. To view embedded content, you would need to accept all cookies in your Cookies Settings]

5 0
0 302

Hi Community,

Please welcome the new video on InterSystems Developers YouTube:

ObjectScript Package Manager ZPM: Installing, Building, Testing, Publishing IRIS

https://www.youtube.com/embed/UzrG91_swLM
[This is an embedded link, but you cannot view embedded content directly on the site because you have declined the cookies necessary to access it. To view embedded content, you would need to accept all cookies in your Cookies Settings]

4 3
0 254

Hi Developers,

Enjoy watching this new video presented by @Evgeny Shvarov:

Package First Development Approach with InterSystems IRIS and ZPM

https://www.youtube.com/embed/havPyPbUj1I
[This is an embedded link, but you cannot view embedded content directly on the site because you have declined the cookies necessary to access it. To view embedded content, you would need to accept all cookies in your Cookies Settings]

4 0
0 138

Hi Developers!

Thank you for using ZPM Package Manager and contributing more and more useful packages to the public registry!

But as you already aware ZPM packages are always deployed with source code.

Do you think we need to add the option to deploy without source code - e.g. if you want to deploy a commercial package?

Will you develop commercial modules if there will be an option and deploy it with ZPM?

How do you deploy commercial applications today?

4 10
0 249