Welcome to the VIPM Idea Exchange. Here's your chance to collaborate with JKI engineers and other users to influence the future of VI Package Manager. How can VIPM make your life easier or help you work smarter? Tell us!
To submit an idea:
- Type your idea in the box below. The Idea Exchange will show you similar ideas as you're typing.
- If someone else has already submitted a similar idea, vote that idea up and add a comment to the discussion.
- If they haven't, submit your idea as a new suggestion by clicking Next. Then provide a detailed description in the submission form. Add links, images, and video to make your suggestion clear and compelling!
To vote for an existing idea:
- Click the Vote balloon next to any idea to show your support. Better yet, also add a comment to the discussion.
- You will be prompted to create a new account if you don't have one, or login, if you do.
If you need technical support for VIPM or any of JKI's other products, click here.
My VIPM Package Table has so many entries now that I have to scroll up and down to view all the entries. I was thinking that a Tree View of the packages would make it easier to view and organise.
For instance the OpenG Package would be the root folder and clicking on this folder would show all the individual packages ie. Array Library, Boolean Library etc..
I think it would be really cool if a dynamic palettes (I will call it that after the OpenG package name, but there maybe a better descriptor for it?) were a first class feature of VIPM. There would be nothing better than being able to open up a native LabVIEW palette and being able to select from your code - all conveniently in the one place just like the OpenG ogrsc_dynamicpalette package does for OpenG etc...
I thought a cool new feature would be to allow adding multiple files on Insert... >> VI... to the Palette Editor instead of one at a time (and opposed to the entire folder).
So I have a lightbulb moment today: why do I have to switch from LabVIEW to VIPM to build packages? Why can't I right click on a package build definition in my project's "Build Specifications" and either edit the configuration or build it directly from there?
I not sure if this got bought up before (in the beta?) but I would like a better UI for interacting with dependencies then there currently is. I just find it hard to find what I want unless I know the exact spelling of the package name (VIPM 3.0) or display name (VIPM 2010) and scrolling through everything is not that fun
The idea is that Palette to Installation Location relationship would be one to many.
Sometimes my source for folder has old (or not yet finalized) VIs that I don't want to distribute, in my project I remove these VIs from the library/class, but since VIPM picks a whole folder as the build-source these VIs show up in the package.
By selecting library or class as the build source these functions wouldn't be included.
When removing the block diagram from reuse VIs destined for the LV Dev environment, we limit that toolset for a single LV version obviously. Thus it would be nice to have the ability to build more than one package with a single build specification; one for each of a number of specified LV versions. Instead of specifying "LabVIEW 2012" vs. "LabVIEW 2012 or later", then maybe an optional selection list where you could tick of which LV versions to build for (resulting in N vip-files).
Or maybe I should just automate our dev process some more to do the above myself? Maybe I can use the VIPB API to do that...
This should be possible with a post-build custom action VI.
(it's still not a native feature)
I ventured into the wonderful world of VIPM package building recently, and am impressed. However, one thing that immediately caused me issues was the use of a Source Folder as the root of the package definition. I wanted to point VIPM at my existing LabVIEW Project. Why? Because in my harddisk folder I have VIs not included in the Project, legacy files and VIs no longer in use. When pointing VIPM to the root folder it automatically picked up all these unwanted files, and it was a nightmare of "build error" after "build error" attempting to find them all and selectively remove them from the "Source File Settings" tree.
Idea: Can VIPM analyse the LabVIEW Project tree in the first instance of creating a new package to determine which VIs (files) are wanted and which are not to initialise/populate the Source File Settings?
At the moment I need to go over each license and find afterwards that I actually installed a trial version or some other tool that I won't be able to use.
If VIPM could organize the packages not only by the name of the license type but also by a deeper understanding of it (there aren't that many license types in VIPM after all) then I'll feel much safer while installing packages from VIPM.
VIPM currently allows the user to install for the LV version that the package was developed for, and for later versions as well if we have configured the package to allow this. VIPM uses Mass Compile for this (unless the user has disabled Mass Compile in VIPM of course). I suggest one of two changes:
1) Either allow the end-user to install a package for an earlier version of LabVIEW than the package was built for. This requires the user to have installed the lowest LV version that the downloaded package demands, as well as having installed the target LV version as well. Then VIPM could use the "Save for Previous..." method and re-create the palette for the user.
2) Or, allow the VIP-developer to build packages for earlier versions of LV than the VIs are developed for. This poses the same requirements on the developer, having both the source and target LV versions installed, and would enable VIPB to use "Save for Previous..." when building the packages.
I prefer 2), as that basically automates the process I'd otherwise go through to make our VIPs available for earlier versions of LV, but without me having to handle duplicate build scripts for VIPB. And it puts fewer requirements on our end users.
This will probably require a new tag in the project file to specify where the dependencies package is on disk. It'll probably also require access to a new Filter event from LV that notifies some process/tool of an impending File Open operation. So I don't expect much out of this request, but I'd sure like to see it!
I ran into the situation a few times when I wanted to abort what I was doing but couldn't. This seemed to be for network tasks. I thought it would be cool if I could abort these in the future.
Have been playing with the Custom Category and I really like it.
One way could be to allow the Custom Category to be synchronised to the currently installed Category palette with the press of a button:
I am just trying to think of the best of both worlds where your Top Level mnu package is not an external dependency and its really easy to update wrt changes.
Another idea is that it could be a separate package that is included as a sub-package (ties into Expose Sub Package idea. VIPM can upgrade to the latest if not already installed, but the user is only ever distributing/installing one package.
In VI Package Builder I'd like to be able to specify a less-than-or-equal package version in the Incompatible Packages section.
The use case is this:
I update a low-level reuse VIP A, breaking compatibility with some of the VIPs that depend on A. Currently (VIPM 2013), in A, I can only select Incompatible Packages with versions "greater-than-or-equal", or "equal". What I'd like is for the VIP A installer to tell the user that they must upgrade their already installed VIP B, that depends on A, if they want to proceed with upgrading A. To do that I need to be able to specify package B from a version downwards as an Incompatible Package in package A.
I recently gave a presentation on VIPM Professional to a room full of colleagues, trying to convince them that we should all own a copy. The question was asked "Would this tool provide me with a flexible way to search our reuse libraries for some functionality that I am looking for"? Alas, I had to answer "No". This would be IMMENSELY helpful!
It would be really cool if I could add multiple dependency packages to a package as sub-packages so I could ship one package that contained all required packages.
I can currently do this with a .vipc file, but love the idea that a package could do it.
Another good reason for sub-packages over .vipc files that I forgot to mention: .vipc files currently have to be installed in the same version they were created. For example, this means that to support multiple versions of LabVIEW for a package release, I have to add multiple .vipc files if I want to include dependencies + package in a .zip release.
To start with I don't mind if its not exposed through the UI - as I would more than happy to do it myself with hooks.
Backwards support for OGPB would be nice too.
This could be useful if you have to setup lots of computers with the same libraries. If a unattended way was provided, this could be put in scrips etc.
Especially in our case this could be a reason why we cannot use VIPM. I created a *.vipc file and imported them manually. This worked very nice and easy but I am not willed to do this on all of our computers. A in my opinion easy and usual approach could be to put the functionality in a command line argument. I.e.:
VI Package Manager.exe /addLibrary "C:\library.vipc"
I know that there is the VIPM API. The problem is, that this is usable with the pro version only. To install the pro version on all of our computer would be too expensive and never needed any more after this step.
I have built a number of internal libraries where I want the same support on desktop and RT palettes. This involves recreating the palettes from scratch currently.
There should be an easy way to have the same palette on both.
This may be an edge case not worth the time but I thought I'd throw it out there. It would be nice if you didn't have to wait for the Palette Dialog to refresh if you have already opened it. A refresh button could force an update or it could refresh after each install (in the background could be nice).
Just something little to speed things up.
My suggestion is to have the ability to put multiple versions of the same package into a VIPC. This way when I am installing it offline and not connected to a repository, where all package versions could be available. I could then use the same VIPC for 2012, or 2011, and in both cases I could have the latest version that is supported.
when creating a new VIP, automatically "exclude from build" folders that match user-defined strings (preferably compatible with labview regular expressions or PCRE). I suggest this because we have a well-defined file structure in our source code repository. all files in certain folders are never included in the build because they are only used during development. It would be nice if this could be auto-configured but only when creating new packages (so there are no surprises when opening an existing package).
Just a small one... ...I think it would be sweet if the Insert >> LabVIEW Primitive... Dialog defaults to the previous search.
We had some issues where it was changing from PC to PC - mine to his and vice versa (based on previous 'favourite' entries?).
But I can see other use cases where it would be handy.
I would be nice to have the ability to install a package directly into a end user specified project folder instead of being forced to install to a set location. This would be similar to how NPM manages dependencies for Javacript node.js projects.
I assume this package would not be installed onto any of the pallets, but it would allow a user to work with multiple projects using different versions of the same packages. You wouldn't have dependency overlap of installing things into your labview program files or OS user file locations. I guess this would just be an extension for packed project library but with versioning built in
What is it?
currently you have the ability to add a file name prefix/postfix to all package files. I am proposing that we have the ability to add a file name prefix/postfix to ONLY the dependencies. This would be identical to the way that NI allows you to rename the dependencies in packed libraries.
Why is this needed?
When migrating your code into packages, you're presented with this series of events:
- I have X.vi. It is some piece of re-usable code that hasn't yet made it into a VIP.
- I build package A.vip and it has dependency X.vi included in the package
- I have application Application.vi that has dependencies A.vip and X.vi
- Now, when i open Application.vi, I am unsure which X.vi will be used?!
With this change implemented, the series of events changes to:
- I build package A.vip and it has dependency X.vi included in the package as A_X.vi (assuming you add "A_" prefix to dependencies)
- I have application Application.vi that has dependencies A.vip and X.vi
- Now, when i open Application.vi, the application uses X.vi and A.vip used A_X.vi
for a full discussion of this issue, see this thread http://forums.jki.net/topic/2103-rename-vi-dependencies/page__gopid__5165
Customer support service by UserEcho