This is not a specific SystemLink issue but I figured there are a lot more here about NIPM than anywhere else on the forums...
I'm looking into how to efficiently distribute packages. I have packages that depends on NI stuffs (namely, the RTE and NI-XNET). I created my feed, added my packages.
Obviously they install fine on my dev PC but not on a fresh machine (that only runs NIPM), where it asks for the RTE and XNET... I certainly can install these manually from the Available Products in NIPM but I don't want to go this way. I don't want to explicitly add all the dependencies packages to my feed as it will be really heavy and not maintainable in the long term.
Now, how can I "force" my package to point to the NI feed so it can download the NI dependencies from there?
I notably tried to add the ni-package-manager-released-feed.nipkg to my feed but that does nothing (after all it's not one of my packages direct dependency)
Resource used - https://forums.ni.com/t5/NI-Package-Management/NI-Package-Management-Portal-READ-THIS-FIRST/ta-p/380... (and all outgoing links)
There currently isn't a way to have a package installation register feeds before dependencies are calculated. For now, we have two options if we want to depend on NI released packages and have the user run a package installation.
Alternatively, you could probably put together a batch file that would install a package that registered the ni.com feeds first, and then ran the package installation which would depend on packages included in those feeds.
I have a few questions to make sure I correctly understand your request. Making this better in several of NI's products is active development work so I'm looking to either confirm what we working on will satisfy your request, or figure out what we would need to modify in order to accommodate it.
- Eric Reffett
To expand on the alternative method of using a batch file...
If you have already created a feed with the package(s) you want to install and NI Package Manager is installed on the target computer, you could run a batch file on the target computer that does the following via the NIPM command-line interface (CLI):
As an example, the contents of your batch file (e.g. registerfeed_and_installpackage.bat) could look like this:
"c:\Program Files\National Instruments\NI Package Manager\nipkg.exe" feed-add --name="My Feed" "\\mynetwork\Feeds\My Feed"
"c:\Program Files\National Instruments\NI Package Manager\nipkg.exe" update
"c:\Program Files\National Instruments\NI Package Manager\nipkg.exe" install --accept-eulas -y my-package-name
For more information on the NIPM CLI, click here.
Thanks for the replies guys.
@Brandon: I've been looking for something like that (automating the registration of NI feeds from a package or CLI) as a workaround... Not so user friendly but at least it would work! I would call it the "Good" solution.
Do we have an accessible list of the NI's feeds URLs for common RTEs and drivers?
I'll be building packages with LabVIEW (Current Gen, and probably NXG in the near future).
As the package builder automatically detects what are the recommended dependent packages, I don't want to bother searching and finding/registering these dependencies if they're NI packages. Basically, I want my package to automatically search (by order):
1. in the same feed as my package
2. in the other feeds registered in the NIPM application running the .nipkg file
3. in other NI feeds/repos (even if they're not already added as feeds in NIPM)
The first two already work but to me we're missing #3. That would be the "Best" solution that relates to what you mentioned "Effectively, adding the Feed in NIPM could register other Feeds where the needed packages can be found."
Building an offline installer could be an option sometimes but I don't want it to be the preferred way to go. And for this offline option, I would take the action of gathering all the dependencies and add them my custom feed. That is doable as of now so I don't have questions regarding this
I'm not 100% sure how that would help detecting/registering/installing NI dependencies.
I'm pretty sure that running your commands on a fresh machine where there is no RTE/drivers (and no feed registered except NIPM one) results in an error as NIPM is unable to find NI's feeds on its own.
We don’t have a published list of feeds that we put out but you should be able to get the list of feeds from NI Package Manager.
Thank you for the confirmation.
LabVIEW CG will likely only have the ability to create a "complete" offline installer initially. LabVIEW NXG will have additional functionality. We will likely add the ability to create "partial installers" like you suggest with future releases as we iterate on the growing needs from users with how they use packages.
As Brandon said, we don't have a published list of NI feeds, but you can figure them out by installing things from the "Browse Products" tab in the NIPM GUI. Each item in this view will add Feeds to your NIPM list of known feeds. NI didn't want to just add "all known NI feeds" to the environment from the beginning because that would be overkill for a lot of NI customers. I suppose we could build a service that you could query to get the list of known feeds but we don't have that right now. Instead, we rely on users to pick the item from the "Browse Products" list and then we add the specific feeds for those products.
Do you consider this "all known NI Feeds" query browser to be a "must have" feature? It seems more like something that is nice to have as opposed to mission critical, but maybe I don't entirely understand the use case.
Well no it's not technically a critical feature request, but for alliance partners who are going to use NIPM more and more frequently, it'd be a really nice tool, so we are not necessarily forced to download stuffs individually from the available products section before building packages and feeds.
Do you guys want me to add an idea exchange so you get a better idea of the scope (admittedly I'm not the only one to want that ^^)?
Eric definitely isn't the only one to want that functionality. Every other package manager I've worked with (opkg, APT, RPM, JKI's VIPM) automatically adds dependencies when you try to install the dependent package. I was very confused the first time I tried distributing a package and NIPM didn't just pull in the NI driver feeds.
If you do throw this on the Idea Exchange, I can promise you a kudo from myself and at least one of my coworkers.
Good to know we're not alone in here ;D
Gonna post the idea exchange and see how it goes from there...