NI Package Management Idea Exchange

Community Browser
cancel
Showing results for 
Search instead for 
Did you mean: 

NI Package Management Idea Exchange


Post your ideas that are related to NI package management. This includes NI Package Manager, NI Package Builder, creating NI packages (.nipkg), distributing NI packages (.nipkg), managing feeds, and more.

Post an idea

As I have come to using NI Package Manager (NIPM) more, I have come across a few user experience issues that need to be improved for NIPM. This is mostly centered around downgrading package version. Most of these are currently available in VI Package Manager

 

  1. For installed packages, you cannot downgrade/change versions of the package. To do this, you must first uninstall the package so you can select the version you want from the Packages screen. (Installed packages are removed from the Packages screen's listing.) There should be at least an option to show the installed packages on the Packages screen so a new version can be selected. It would not hurt to have the ability to select version(s) on the Installed and Updates as well.
  2. On the Updates screen, we should be able to select the available versions if there multiple upgrades available.
  3. If you install a package that requires a downgrade in a dependency, currently NIPM does not let you install that package. It can be down via the NIPKG command line interface (CLI). There should be at least an option/prompt to allow the downgrade. This capability seems to be able to be added by NI as I was prompted to Allow Downgrade/Removal when I updated InstrumentStudio last year. Our packages should be able to do this prompting as well. At least there could be an option added to NIPM that would allow downgrades/uninstalls so that this could be done via the GUI. Also the dialog could give more information about what specifically the issue is.

Too generic message without any recourseToo generic message without any recourse

I propose to add pre- and post build actions to the LabVIEW package build spec as already present in e.g. executable build spec

Let's say you have a really busy day and you need to test an application, but you need to install the LabVIEW or any other application like Test stand, for example, you go to your computer and use the Package Manager to install it. Then you have to go to another office, meanwhile, you let Package Manager take care of the installation that takes around 4-5 hours.

 

When you are back ready to run that test you found that there is an error saying that you have not stored available to install the software, and you wonder why NIPM did not check that requirement? There are literally thousands of software that have always performed that check before the installation some of then show a warning or they simply do not allow to start the installation. We really need this on NIPM.

 

Please help me with these guys.

When you add  folder in NI Package Builder it add all the files included. It can be usefull to remove automatically somes files or folder with filters.

 

Just to give some examples. I have to include some Python Script. Python is generating *.pyc files in _pycache_ folder. If I have the ability to exclude automatically a list of extension file, or file/folder of list based on regular expressio, it can be very usefull. 

 

My source code is under SVN source code control. When you selet a folder, it populates also hidden folder. So it adds my ".svn" folder.

 

Add ability to exclude hidden folder and have the first filter will help me better manage my files to distribute. This can be added to the propoerty page of the input folder.

 

Best regards

It would be super nice if NI would offer all their software through winget from Microsoft.

 

https://docs.microsoft.com/en-us/windows/package-manager/winget/

 

I understand that NI invested a lot in the NI Package Manager, so this idea could still simplify our lives even if NI would just offer to install the NI Package Manager through winget.

 

Currently, the flow is to:

  • Go to ni.com
  • Login (if not already logged in)
  • Go to the download page
  • Search for NI Package Manager
  • Download
  • Install

 

Using winget, a command like:

 

"winget install NI.PackgeManager"

 

would be the only thing to do to to install it.

 

Here is what's available currently through winget: https://winget.run/

 

Because I have the situation below posted in the forums, I thought it would be a great improvement to down-rev a package without first having to un-install said package and end up removing packages that list the subject as a dependency.  That way if I ran into an issue with an update, I could easily revert to the previous package without affecting any other packages.

 

Thanks!

 

DGriffithJr

 

 

https://forums.ni.com/t5/NI-Package-Manager-NIPM/I-want-to-uninstall-a-package-and-NOT-uninstall-its-dependencies/m-p/4041272#M423

 

Right now I can only add package dependencies that are either 

(a) Currently Installed

(b) In the solution being created

 

It would be extremely useful to:

(a) Select a package dependency from disk

(b) Select a package from a currently registered feed

 

On a development system, I often DON"T want to actually install the packages i'm developing, and if I have several related "solutions" I need a way to define dependency relationship between them.

 

Right now I either have to develop everything in the same solution (which means every time I build, it builds everything), or am forced to install the packages that I want to include as dependencies.... neither of which are desirable behaviors

Inside a solution, you have to build all the packages inside the solution.

 

If you split your project in different packages, it's easier to manage it inside only one solution for managing dependecies between packages. But building a fix of a small package will force to build all packages. So if you don't want to change version of other pacakges, you need to manually manage all the version by hand and make sure you are not replacing the previous pacakge that you don't want to rebuild.

 

Having abaility to rebuild only the selected pacakges, willl help to create patches for only a part of a bigger project well divided in smaller components.

 

MaximeR

Hello,

 

I want to distribute my packages with a specific feed. This can be very usefull to distribute application to customer and push updates. But if we use a specific feed, it's not straightforward. We can use the nipkg CLI command to add/remove the feed but it's not so easy to deploy to customer. It's often more easy to request IT to let NI Package Manager to have Admin right than to allow bat file for example.

 

So my idea is to give ability to install a package that also register the feed. After install the package, it can have access to updates more easily. If he uninstall the package it can interresting to unregister the feed. In this way, it can be also easy to update the feed by pushing an update of the package.

 

Note : I tried to do it with pre and post install command without success.

 

Best regards.

 

 

This feature is available in the LabVIEW package builder (very cool!), but it would be helpful to have this exposed in the NI Package Builder UI as well...

 

Currently my work around is to either

(a) Use the SystemLink REST API and (really requires a good development pipeline for automation)

(b) Target the feed at the SystemLink internal repository folder, which will create a "hidden" repository that is unavailable in the SystemLink Browser, but can still be referenced... While not too terrible for testing, this is probably not a great approach from a security point of view...

In the Item View, if some files are insert in a folder, you need to open all folder to make sure your solution is up to date :

MaximeR_0-1607090694572.png

 

Why not add the Blue Dot to the folder too :

 

MaximeR_1-1607090878057.png MaximeR_2-1607090907881.png

 

I don't know also if it's a good idea to allow to have file in multiple location in this view. This can be confusing.

 

Regards

 

 

 

 

When you create a solution with Ni Package Builder, you have the ability to create a Local Repository for a feed.

Everytime you build it it replace all.

 

For me, we missed a functionnality to update a feed. A feed is able to handle multiple version of a package, if you replace all, you lost the history.

Without this functionnality, you cannot mix sources of the package for the feed. In my case, I have a feed that contains package build with TS deployment tools and packages build with NI Package Builder. To include both packages, I have to build my own tool. If NI Pacakge builder was able to update existing feed, I can build all the packages of my solution and push it to the feed in one way.

 

Just hoping that i will have feedback !!!!

The NIPKG format allows dependencies to be listed by package name, and of particular interest, groups of packages to satisfy a dependency - that is, a dependency can be satisfied by any one of a collection of packages (see the "|" character at http://www.ni.com/documentation/en/ni-package-manager/latest/manual/control-file-attributes/).

 

Meanwhile, many packages are available in more than one format - e.g. NIPKG, VIPackage, GPM package.

However, if I install package A with VIPM, and package B depends on it, but I try to use NIPM, I'll see I have a "missing" dependency.

Worse, if I now install 'package A' with NIPM, (assuming the packages are equivalent) both systems will believe I have the package installed, but uninstalling from either won't affect the other (leading to broken code).

 

Could NIPM gain the ability to allow specifying dependencies on non-nipkg packages?

 

This could be either via specific other package managers that could be checked (VIPM, GPM?) or perhaps via some "pre-install dependency scanner" VI.

In the former case, perhaps I could list "PackageA|VIPM::PackageA" as the dependency.

In the latter case, I as the developer of B could write a VI which checks some details (e.g. existence of specific VIs on disk, or call into VIPM/GPM, etc), and then output a boolean indicating if I (the package B developer) believed my dependency on "PackageA|VIPM::PackageA" (by package name) was satisfied. (In this case, I'd probably just give the dependency as "PackageA" though...)

 

I think this would be useful especially when sharing code more widely.

I don't expect that this idea would cover searching for packages in other managers' repositories though - if it fails whatever "is currently installed?" test, and can't be sourced from NIPKG feeds, then the install should give the current dialog (missing PackageA).

I find myself installing for virtual machines often lately and I'm trying to minimize installation of packages that aren't needed for the sake of space. It would be great to have a way to deselect all of the support packages for various IDEs. For example, if I only work in .NET, let me deselect LabVIEW support. I currently only develop in LabVIEW and scrubbing the list for all of the C or .NET support packages is super tedious.

picklecolor2_0-1619638732575.png

 

I created a package in LabVIEW 2020 which (obviously) depends on LabVIEW runtime and other things.  When I create the feed from LabVIEW, it includes all of these -- Excellent!

 

I have additional packages that I want to create in NI Package Builder which are add-ons to the LV solution to support a Plugin Architecture.

I can include the LabVIEW package as a dependency (assuming it's installed), but when I create the feed, it does NOT include the nested dependencies.

 

It would be very nice to include an option for dependencies to "Detect and Include dependencies" 

Hello,

 

I used to distribute a software with non-package installer. Then, we switched to a package installer. It is built using NI Package Builder.
Unfortunately, NI Package builder doesn't uninstall previous versions as it doesn't know the relationship.

 

Please, could you implement in the UI the possibility to specify "conflicts" and "replaces" relationships as described in this document?
http://www.ni.com/documentation/en/ni-package-manager/latest/manual/control-file-attributes/ 

 

Also discussed on the forum: https://forums.ni.com/t5/NI-Package-Manager-NIPM/Nothing-but-confusion-about-building-and-using-packages/m-p/3938499/highlight/true?profile.language=fr#M91 

 

Romain

user can select path to install software

I'd like a way of "blacklisting" an NIPM package, even if it's in a feed and selected for install For example, I could register the feed for the package "ni-labview-2020-core-x86-en" and also want to install all of the recommended packages (using the --include-recommended flag), except for one. Let's say for some reason I don't want Report Gen Toolkit, for example.

 

The only option I can currently come up with is installing LabVIEW 2020 without any of it's recommended packages, then installing all of the recommended packages separately, except omitting RGTK. It would be really great if there was a command to simply prevent RGTK from ever installing, even when using the "--include-recommended" argument.

 

In terms of use cases, let's say an administrator wants to give their users some freedom, but never wants a particular package installed (or upgraded past a certain point) for some reason. This would be similar to the dpkg or apt functionality described here (https://www.linuxuprising.com/2018/10/how-to-keep-package-from-updating-in.html) or (I think) the okpg "flag" operation described here (https://openwrt.org/docs/guide-user/additional-software/opkg).

Hope the package management interface has a choosing install path option.

 

 

David 

Please allow a user to see which package(s) that were manually selected lead to the automatic removal of each package in the "will be automatically removed" list.

 

If you select some packages to remove, sometimes the uninstall dialog lists a collection of packages that depend on something you've selected.

These must also be removed if you want to remove whatever you selected (so as not to leave them broken).

 

However, if I select a collection of packages to remove, and see something in this list I want to retain, it can be difficult to see which package I should remove from my selection (after pressing cancel) in order to not trigger the removal of the package I want to retain.