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

Hi,

 

While trying to automate the building of packages of custom devices I found out that there was no practical way to automate what version the package should have (modifying the xml was not streightforward due to multiple namespaces)

 

The package builder manual shows "-v" command line option, but that will just print the version of the ni package builder itself. 

 

I want to propose that a "--set-version" command line option is added, which takes a "x.x.x.x" formatted string and would overwrite the <Version> tag in the .pbs file.  

 

Thank you!

Hi,

 

I'm facing almost the same problem as mentionned in this thread of the Forum : NIPB: Custom location for ProcessingStage folder - NI Community

 

I'm working with TestStand Framework. When building sequences for specific projects, we have a dedicated repo and we build a package to deploy that project on the target PC. The source of the project and the PBS file are in the same folder hierarchie to simplify Source Code Control.

 

By creating the ProcessingStage folder in the folder of the pbs you have a copy of your TestStand sequences and code modules with a risk of that you have in the same based folder the sources and the temporary files generated by build in the same location. When developing you have a risk to point on the wrong file when teststand is searchning for a file based on search directories.

 

If we can't change the processing stage folder destination (information is already present in the xml of the PBS file) can we imagine to add at least an option to delete the Processing stage folder after build.

 

Without ability to change this destination, we have to manage folder to exclude from SCC for temporary files that serve nothing after building the package.

 

Best 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 !!!!

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

Inside NI Package Builder, you can define different packages for a solution.

Because you have a lot of option to configure and many are more just for information, it can be easier to be able to copy an already existing package than start from 0 for each package.

 

I don't think it cost a lot because .pbs are XML based. I don't want to build my one tool and modify the xml to be able to do that.

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

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...

I propose to allow adding dependencies in NI Package Builder that is not part of the active solution - and that are not NI packages. It should be possible to press "add dependency" and then type in the package name as free text

When creating NI Packages with NI Package Builder, you are currently stuck with the limited set of categories/sections. It would help if we could customize this field.

If a package fails to install, there is never anything helpful presented to try to diagnose the problem. 

 
 
 
 
 
 
 
 
 
 
 

image (8).png

 

This is hot garbage.

 

I end up having to run nipkg.exe from command line to get some modicum of feedback, but even then it's usually still insufficient.

 

My latest use case is that I have created a pre-install.bat file (configured to run as a pre-install custom execute, per my package build spec), and that bat file is intended to throw an error (set nonzero return code and route message to stderr) if some required dependencies do not exist. I went to the trouble of doing these sanity checks and building meaningful errors, but they don't actually get exposed when I run the installer, so I'm left guessing as to what went wrong.

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

 

 

 

 

It would be nice if NI Package Builder could detect and prevent Windows path length limitations. Since where a package solution is built and where it is installed can be different, they typical building of the folder structure to be packed can run into the Windows 260 file path character limit. I would like if NIPB could detect that this will happen and relocate the packing folder automatically to avoid the issue. I would recommend a warning is issued; also, I have no issue that it might take longer to build as it would try and fail then redo in a new location.

 

Example:

image-2020-01-02-16-02-37-354.png

When I go to download a new piece of NI software, there is an online installer which:

1) Installs the latest version of NIPM

2) Registers any needed feeds

3) Presents an installer dialog to user

4) Installs product

5) exits gracefully.

 

And is <10 KB in size.

 

It would be incredibly useful to be able to create such an installer through on of the available builder interfaces that points to (for instance) network feeds, or a partner feed, or something like that.

 

There are currently some "work arounds" but they all are rather complex, clunky, and require a level of BAT file execution that's not really easy.

(I could probably do this easier through LV coding, but if the LVRuntime isn't installed, that doesn't really help me :-))

When adding a Package Installer, NI Package Builder is currently limited to only configuring the options on the top level, first page of a suited installer (i.e. "NI-IMAQdx", etc.), but not configuration of the second page "Additional items you may want to install:", where it lists "recommended" items.  This means one cannot create a fully customized NI Software suited installation (like was possible in the past with the .spec file).

 

NIPB needs to analyze the installer configuration and expose a list of recommends/suggests for each top-level package or for the whole installer itself, just like Install.exe does.

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

It would be nice to define "absolute paths" for packages, installer, and feed builds.

I applaud the relative path detection used (better than that used in LabVIEW builder!), but sometimes, I just need to define an absolute (In my case that path is actually defined directly off of a root drive (E:\Builds\...), so that all of my build artifacts are in a well defined location...

jyoung8711_0-1614989033788.png

 

It would be helpful to have the ability to duplicated portions of a Solution, such as package. This would speed up the creation of similar items using an existing as a starting point. I was looking for a button and/or right-click entry to duplicate a Package. However, the ability to duplicate would helpful throughout the NIPM GUI.

This probably applies more to building a NI Package via Application Builder, but would be helpful if you could do it with NI Package Builder (NIPB). It should be easier to call a VI(s) as a custom execute steps of a package. You can do this currently by making your VI follow the LabVIEW CLI pattern. However this does requiring a lot of manual entry from the user to do in NIPB, thus being error prone. Also to do with the Application Builder, you have to make a batch file and add that to project even thought the batch fill does not need to exist other than to do the install/uninstall.