Written by

Senior Startups and Community Programs Manager at InterSystems Corporation
Discussion Evgeny Shvarov · Mar 4, 2021

Deploying Packages Without Source Code - commercial mode. Do we need it?

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?

Should we add the option to deploy ZPM modules without source code
VoteShow results

Comments

Robert Cemper · Mar 5, 2021

if the deployment is sensitive distribution happens a pure  *.OBJ

0
Timothy Leavitt  Mar 5, 2021 to Evgeny Shvarov

@Evgeny Shvarov there's internal work in the HS package manager to support packaging as a studio project, which may optionally include deployed code. (I believe this didn't make it into the ZPM fork.)

The downside to this approach is that you may need different artifacts for different target platform versions. (It's always safest to assume that you do, at least on the major.minor level.) This would be a new design consideration in zpm-registry.

One possible upside to this approach is that it may be possible to install the build artifact even on environments that don't have the package manager. For the internal implementation we generate an INSTALL.mac that automates things from the different resource processor classes. Uninstallation is still a bit of a conundrum though; I think we'd be better off requiring the package manager for any ZPM implementation of packaging/installing deployed code.

I can think of one extremely valuable internal project that would only be palatable to distribute via ZPM if we didn't have to ship all the source (specifically, a Mockito-style mock framework for ObjectScript that breaks the glass on some internal things not shipped in product source).

0
Timothy Leavitt  Mar 5, 2021 to Timothy Leavitt

I'll add - it should be an option (and in the HS package manager it is) to distribute some classes/routines as .OBJ and some with source within the same package.

0
Evgeny Shvarov  Mar 6, 2021 to Timothy Leavitt

thank you, Tim! This is very helpful

0
Dmitry Maslennikov  Mar 5, 2021 to Robert Cemper

Deployed classes still have to be delivered but without code, for sure, with just compiled OBJ code.

0
Evgeny Shvarov  Mar 6, 2021 to Dmitry Maslennikov

if we deliver .obj file - is it enough?

0
Robert Cemper  Mar 6, 2021 to Dmitry Maslennikov

Definitions might be wrapped into some $$$macro that calls the .INT directly.
Similar to some compiled class . Deployed classes provide more comfort.

0
Henrique Dias · Mar 5, 2021

When I worked with TrakCare, I remember that TrakCare classes had only the ClassMethod signatures and the obj file.

We could always find out which ClassMethod we have available, but we should never compile them! laugh

0