Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won


Everything posted by hooovahh

  1. Okay so personally I've come to the conclusion that I won't be using suffix or prefix anymore. If you are going to use renaming, use suffix. Prefix makes viewing all files sorted by name do unexpected things if it is mixed with files that aren't renamed. I also sometimes type the name of the function I'm looking for in Windows and if you add a prefix now you need to type "hooovahh_" before everything. So we've already mentioned reasons to not use suffix renaming. QuickDrop, Right click, and other NI frameworks rely on some naming conventions sometimes and these break. OO override issues, you must have all children classes, in the same package as the parent class. Otherwise overrides won't work until it is installed. So a demo or example VI in the child class will be broken until it is installed if it uses the parents override. But I have another new reason. I had one package that was 16MB in size and was too big. So I moved a bunch of stuff into it's own package. Well the source expected to find all dependencies without the suffix name. Since it was previously in the same package. But now the functions it calls is in the installed location and the VI names aren't the same. It was looking for the VI names without the suffix, but now needs the VI names with it. This means replacing every VI, VIM, control, class, library, XControl, and every dependency. Scripting helps but still is a pain. If I was never using suffix naming then it would just look for the VI names and loading the installed VIs into memory first, would mean the new package finds the source in memory where I want and a Save All will update code to use the installed location. And I hope it is pretty obvious changing from using suffix, to not can be a major pain if your libraries are as large as some of mine are. This also means updating all active project, replacing all dependencies to the new ones...also painful. Jim is right that more consideration needs to be made when editing package source to make sure it links to the installed locations of other dependencies. But editing one package at a time can help with that. And I've seen VIPM gracefully fails to build if a dependency is outside of the source. Once built and tested all is good.
  2. I always defaulted to using the renaming, and only turned it off in rare cases when renaming broke things. So for me on those rare occasions where I didn't rename, things did work fine. I've been pretty mindful of cross linking and avoiding it between source and install. Given that the only major reason to use rename is to avoid cross-linking I'm going to try to undertake a change to have everything non-renamed. I want to be consistent one way or the other and it seems there are cases when renaming breaks things, but I'm unaware of any case when not renaming breaks things (other than cross linking which can be avoided). My major development woes with this is going to be having a VI that used to call something like: <user.lib>\_Hooovahh\<Package>\Name_hooovahh.vi is now going to have to be updated to point to the Name.vi instead. I have some scripting code to help with this which can return the expected missing VI path, but this doesn't seem to work for VIMs. I already posted over on NI's forums here. Until I get a solution it will be lots of manually fixing VIs and rebuilding...then fixing all the active projects.
  3. So way back in the day (VIPM 1.x, 2.x) renaming of the source files in a build was required to build a package. The build process required that the built package would have VIs that had a prefix/suffix added. So a VI named "Do Super Cool Stuff.vi" would have to become something like "Do Super Cool Stuff_Hooovahh.vi". Because of this I've just continued to add a suffix or prefix to all my source VIs for all packages I've built. However I've ran into problems where the renaming might break things, or cause weirdness. So in some cases like QuickDrop Plugins, or Tools Menu items, I've turned off the adding of the suffix and things work fine. I've also realized that if I have a package that contains a parent class, and I create a child class as a separate package, then I can't perform the rename, since overrides will be looking for the child class to have the suffix. So a parent VI of "Parent:Find Hardware_Hooovahh.vi" will look for an override with that name and not the source name of "Child:Find Hardware.vi". So with all this being said, should I perform the renaming at all? Should I go through all my reuse libraries and rebuild them all, removing the suffix? If I do that I'll likely need to write some scripting code to replace all the calls of the suffix with the one without. Is there any real benefit to having the rename when there are clearly draw backs? Thanks.
  4. I too would be interested in a way to make this work in an automated way. But until then one thing that might help make less steps, is making a VIPC with all the packages you want contained in it. Then on the new machine, after installing all things NI, you can double click that VIPC file, it will open it in VIPM, and ask what version to install them in, and then it installs all the packages at once. It still is a manual process but you don't have to select packages from a list, or be connected to the internet.
  5. I have a build that crashes LabVIEW with an access violation, and then VIPM gets an error. The build is attached. What the problem is, is that in there is a class, and that class is renamed during the build process adding the suffix "_hooovahh". But in that package is also a demo VI named "Defined Slider Test.vi" which uses a property node on that class. I've found that if I build, with the demo VI having a property node, linked to the existing class name, that during the build a rename takes place and crashes LabVIEW. If I disable the rename it builds properly, and if I enable the rename, but remove the property node in the demo VI, it also builds properly. I also found that if I add this demo VI to the class it renames properly which for now is a fine work around. Can this bug be addressed so that VIPM properly builds and renames the class, while not crashing LabVIEW if a property is linked to the class in another VI? Won't Build With Demo and Rename.zip
  6. The period folder is auto generated by VIPM during the build process. This is a temporary location where all files are copied to and processed. During the build this path exists and has the files in it. After the build fails (or finishes) it will cleanup that folder.
  7. Can someone from JKI tell me why this package doesn't build? It is relatively simple with no Pre/Post VIs, no file renaming, only a functions palette. But there are some XNodes and they are going into the vi.lib. On attempting to build it gives the following error: During the build I navigated to those folders and they exist and the files are there. If I remove that one XNode and its support files it builds properly. If I add it back with the support files it fails to build. I've tried mass compiling, resaving, and renaming VIs but it still errors. If I delete all other XNodes, and all other support leaving Common and the Compare to Constant, it also fails to build. Any help is appreciated. EDIT: LabVIEW 2018 SP1 F3 32-bit, VIPM 2018 0.0.f2, Windows 7 x64. XNodes Won't Build.zip
  8. I guess alternatively the Pre/Post VIs could be placed somewhere under the package source, so they are scanned. However for me I use the same Pre/Post VI for multiple packages and it is stored in a folder that isn't shared by any package. Thanks Jim.
  9. If there is a dependency added to a Pre/Post Install/Uninstall VI, this dependency isn't detected by the Scan for Dependencies function. Attached is a package that has a single VI that doesn't do much. But the package has a Pre-Uninstall VI that has a dependency on an OpenG Wait. Scanning for dependencies doesn't find any and I suspect it is because the Pre-Uninstall VI isn't part of the package source. The reason I want this is because my Pre/Post Install/Uninstall VIs are getting large and I wanted to make subVIs but they aren't brought into the package, only the top level. My work around for this is to call subVIs that are already installed. I intended on making a single package that is something like "Package Tools" which all packages that use the Pre/Post VIs will depend on. I can still add this manually but will often forget since all other dependencies are properly found on a scan. Reuse Test.zip
  10. Well I was just able to uninstall and reinstall that package with 2016 32-bit Windows 7 x64. What version of VIPM are you using? I'd expect every version to be compatible with OpenG. Do other packages install alright in 2016?
  11. Update from JKI: This issue is planned to been fixed in VIPM 2018. So I can successfully build packages with VIMs in them. But I found that if I need to make a package, that depends on a package, which contains a VIM, the build will fail. First install the hooovahh_array_vims- package. Then try to build the File IO package, which at the moment only contains one VI. If it is like my setup the build will fail with this error. If I remove the VIM dependency by replacing it with the OpenG one the build is successful. Build Fail VIM Dependency.zip
  12. So on VIPM 2017.0.0f1 I'm having a build that fails if I have some specific VIM, and the Renaming Convention is set. If I don't have renaming, or if I don't include this one VIM then things seem to work properly. Here is the error And attached is the source and build spec. If the Filter 1D Array-VIM.vim is removed from the source, then the build works (renaming all the other files to have _Hooovahh as a suffix). Or if the Filter VIM is left but renaming is disabled the build is successful. Array.zip
  13. The recently posted update VIPM 2017 F1 fixes this issue for me. Finally I can build all the VIM packages I've been wanting to.
  14. I found that if you go to the main download page and enter your email address it will start the download for version 2017 of VIPM. Even though the page still says the version is 2016.
  15. So...is anyone from JKI monitoring these forums? I have a show stopping bug that I posted two weeks ago, in the latest version of VIPM, can anyone give any advice? Thanks.
  16. Update: this issue has been fixed in VIPM 2017f1 I've been using the new VIMs feature of VIPM 2017 and am having some issues getting it to build successfully. If I have a VIM on the palette it builds just fine, but if I add a VI that calls that VIM the build fails, even if that VI isn't on the palette. Attached is a zip with my source. It fails to build because the normal VI "Is Variant Repository.vi" calls a VIM that is in that package. If I delete that VI the build works fine. Is this a known limitation that a package can't be built, if a VI calls a VIM? Here are the errors seen when the build fails. Thanks. Variant Repository Source 2017.zip
  17. So if anyone is interested in the second half of my post, I've attached a VI that does what I was suggesting. It takes a list of Installed Files which the Post-Install VI can return. Then for all Libraries and Classes it looks at the members, and find where they are on the palette and finds the most root MNU file installed and sets the default menu to this palette. So for instance if you have a palette with an Advanced subpalette, all members in that Advanced palette will actually point to the root palette when you right click which is think is a normal work flow since the right click doesn't give bread crumbs to navigate up, only down. I intend on using this in my package building instead of the built in function because of its support for multiple classes and libraries within a package. Set All Libraries and Classes Default Palette.vi
  18. So I thought I'd try out the Add Palette to Library or Class option when building a package and I found a few limitations, but first let me mention a bug that I think prevents it from working properly. I tested the feature by building a package and checking the box, then selecting a .lvclass file that is in my source. I then built the package and installed it. But when I right clicked on a class constant or a member of the class the root palette didn't show up like I expected. I opened the installed class and saw what in my case was the "functions_Hooovahh_CAN.mnu" file added to the root of the class. I also opened the class in a text editor and saw the line: functions_hooovahh_can.mnu The problem I see is that this is a case sensitive operation. I editing the text in my class file to read: functions_Hooovahh_CAN.mnu Then closed and reopened LabVIEW and my root menu now shows up if I right click a node on the block diagram. This was built with VIPM 2016 SP1 2016.0.1 build 1991. In addition to this I think this feature is a bit limiting. This feature only works if you are building a package with one class or library in it. My reuse library is build in ways that mirror the NI palettes, and as a result having a palette like "File I/O" means there are several subpalettes each potentially with their own library. Being limited to only selecting one library for a package means this just doesn't work properly. What I think would be a neat feature is to look at the members of a class or library, then figure out what is the most root palette created that a member belongs to, and then add that mnu to the library and adding the default menu there. I think I can do this in a post-install VI but think others might benefit from a simple one click checkbox which would do this for you. It is also possible that I'm the only one that has more than one library or class in a package.
  19. So I have a package that has a Post-Install Custom Action VI but the path to it is not under the main source folder. As a result when I scan for package dependencies, the ones that the Post Install VI rely on are not listed, and when installing the package on a new machine, the install will fail and I believe it is because it is installed before the dependency, since one was not found.
  20. Okay I think I got a new one that's related. I had an error today on an uninstall of a package. I suspect this is because I have a Post-Uninstall VI that gets ran after a package is uninstalled. But it has a dependency on a subVI that is in another package. I didn't investigate it too far, but what I suspect is happening is I have a dependency that says package A depends on package B. Then in my Post-Uninstall VI in package A, I call code that gets installed with Package B. During an uninstall, does the order of an uninstall occur so that package A will be uninstalled before package B?
  21. I understand cleaning up references is generally a good thing, but is there a reason the JKI State Machine attempts to close the This VI reference of a VI that is in memory? This in my mind is basically a no-op and can be removed because the close can't remove the VI from memory since that is the VI that is running. Which brings me to question why we even get a copy of the This VI reference and put it in the shift register. If you have a property or invoke node set to the VI Server class "VI" then you can leave the reference unwired and it assumes "This VI", which is actually seen in the "Initialize Core Data" case. Is there a good reason to keep a copy of This VI in the cluster? And if so is there a good reason to have a Close Reference in cleanup?
  22. Yeah I tested it and you are right that the dependencies are installed before the preeinstall VI is ran. But what type of solution is there for including a sub VI that isn't in a package? For now I inclined the VI but it is a bit of a pain updating it.
  23. What is the best way to handle having a Pre and Post Install VI call, that has dependencies on other VIs that either might not be installed yet, or other subVIs that aren't part of a reuse library? For instance I have a Pre-Install VI and it uses some OpenG functions. The problem is I suspect it is possible that the user hasn't installed the OpenG functions yet. It might be a dependency of this package being installed, but I assume it can't be guaranteed what the order of install is, but maybe I'm mistaken and this isn't a problem. But the second issue I have is my Pre-Install VI has a few subVIs, that aren't a part of the project. When building the package I don't think these subVIs are included, and when the package is being installed the Pre-Install VI is called and I see the searching dialog trying to find the subVIs in a temp folder which is where I assume the Pre Install VI was extracted to and ran. Should subVIs in general be avoided in Pre and Post install VIs? Should they work as expected but for some reason mine crapped out for an unrelated issue?
  24. Thanks Jim I appreciate the effort, this will make adopting reuse easier.
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.