NI Package Manager (NIPM)

cancel
Showing results for 
Search instead for 
Did you mean: 

Using NIPM to distribute software internally

Hey Everyone,

 

Firstly, I'm not sure if this is possible (and supported) with NIPM (or maybe NI Package Builder?), but I thought I should ask... (conversely, this is the exact thing it solves... so apologies)

 

I occasionally write software for internal use at my company, and I have noticed that many departments and individuals have saved a local version of the installer and then use that local version whenever they need to install the software. This has to lead to people not knowing what the latest version is / a mix-match of versions being installed.

 

I like the idea of distributing an installer via NIPM, so if someone needs to install the latest version of a piece of internal software (or a previous version if needed), they can go to NIPM > click on the software > Choose the version > click install, this would then install the software as if it was a standard windows installer. And if I create an update, I want them to get a notification that there's an update/new version available.

 

Basically in the same way that NI distributes versions of LV/updates through NIPM (and we all get updates), I want to do that but with my own software on a company-wide level. Can I push updates on a local network?

 

I feel like, NIPM was designed for this, but I'm not really getting anywhere with the documentation. Could someone point me in the right direction?

0 Kudos
Message 1 of 4
(1,696 Views)

We are doing this for external installers needed for some of our LabVIEW instrument drivers. I was going to do NI Week 2020 😭 presentation on this, but oh well.

 

High level overview of requirements

  1. PC needs NIPM installed and subscribed to a feed (We use a shared internal folder)
  2. Use NI Package Builder to make a NI Packages of the installers you want wrapped up
  3. Publish the packages to the feed. Allen Hsu's NIPM Feed Manager is good enough for small manually managed set.

EDIT: I can help with the details on how to do this, but I have to run to meeting nor do I have them all written down on hand. Let me know and I can help point you in the correct direction.

__________________________________
Bill Eisenhower
Certified LabVIEW & TestStand Developer
Message 2 of 4
(1,683 Views)

Hi Tom,

 

Similar to CL_eisenwr,we are having the build release and distribution setup and automated. This link below, Allen put together, will show you more info.

 

NI Package Management Portal 

 

Base on my experience

Here are what you will or may need, 

Package Feed

LabVIEW Project configured for Package (For LabVIEW builds)

NI Package Builder (For 3-party installers)

 

Introduction to NI Package Manager (NIPM) Feeds

Quoted from the article above:

"

Feeds can be hosted via

"

Depending on your needs, if you just need to satisfy local needs or your company has a very good network infrastructure or setup, Network drive should be good enough. If there is privilege restrictions to access network drive for different user group, you can simply setup a web server on a windows VM. If you want to host for global distribution, I found that Amazon S3 or other cloud storage should be better in terms of download speed. 

 

LabVIEW Project configured for Package (For LabVIEW builds)

I normally don't use Feed manager to publish a package. The Package build spec has a add to feed feature that you can use to publish to a feed after building the package. If you want to manage the feed and packages in the feed, you may use Feed manager.

 

You can also enable create Package Installer in the same build spec. It will create an folder with NI Package offline installer that contains all dependent packages. This becomes really handy when you want to make it a one stop installer.

 

There is no auto-registering feeds feature for non-ni feeds/packages, I had a request and is under construction. Unless you want to walk through all users to add a feed in NI Package Manager on their machine manually, you can create a package that register the feed for the software and set it as a dependency package. So user will run package installer for the first time, the feed should be added for them. They will be able to come to NI Package Manager in the future and see the updates. There are more interesting things when you trying to do this and something you want to know before you do this. We can talk about it in more detail if you are interested.

 

To answer your other questions,

1.  If you go to settings in NI Package Manager(button on top right), enable Show available packages and feed management tools. You will see the PACKAGES tab. User will be able to select the package and there is a drop down on the versions column that they can pick and install the selected version. This drop down is not available for UPDATES or INSTALLED. Which means users will need to remove the installed package and go to PACKAGES to install an older version than the one they installed.

2. To notify user, NIPM API has methods to get information for feeds and packages. you can add a method to query if there is available update for the package within your app when startup, periodically, check for updates or whatever it is. You will be able to use the api to install the update, but within the app will of course cause problems. Well. It all depending on how well you want your application to perform, a LabVIEW app or like any other windows apps. 

 

I don't want to overwhelm you with too much information. But I am sure NI Package Manager is very capable of doing what you were describing. So feel free to reach out to me for any detail. Hopefully, I will see your YouTube video for a tutorial.😄

 

Thanks,

Yinhui Chen

 

0 Kudos
Message 3 of 4
(1,603 Views)

Addition to previous comment, distribute package via systemlink feed shoud be able to push updates and software to client according to this NIWeek 2019 presentation (Best Practices for Building and Distributing Componentized LabVIEW Applications).

0 Kudos
Message 4 of 4
(1,575 Views)