02-14-2006 12:03 AM
03-01-2006 08:43 AM
03-03-2006 12:46 PM
03-03-2006 01:08 PM
Hi Kennon,
I appreciate all of the info you have shared in this thread and part of the challenge y'all are facing is the different types of end users.
In the case of end-user that use a copy of LV to run A application then the current approach NI has been using is valid and is nice in that the user cna do an image backup of their machine, load the new updates and test. If all is OK done. Otherwise, restore backup and we are OK.
In the case of integrators (like myself) that develop a bunch of different applications and turn these over our customers AND hope to support them in the future, we should be "freezing" our devlopment machines "AS-IS" and STOP fooling ourselves into thinking that we can support multiple versions on the same machine. If we want to support the old applications, AND develop in the new version, we start with fresh machines.
Am I understanding this correctly?
Ben
03-03-2006 01:53 PM
Another thought...
What about NI installers doing a complete backup of ALL NI stuff that will be over-written or deleted.
Then add the ability to "un-upgrade" NI software.
Ben
03-03-2006 08:23 PM
03-06-2006 02:42 AM - edited 03-06-2006 02:42 AM
Jeffrey, do you really want to be able to include a different version of supporting software that what is on your machine? You have tested with the version that is on your machine, not with the older version. So there is a chance that older version has a bug that is fixed in the newer version that your testing would have missed. This seems like a bad idea to me, although the chance there is such a bug vs the cost/pain of the user upgrading needs to be considered. I just wanted to get some more information before I put the suggestion down.
What about NI installers doing a complete backup of ALL NI stuff that will be over-written or deleted.
Then add the ability to "un-upgrade" NI software.
Now, this is a nice idea.. This is the same road OpenG is going with their Commander.. Having the ability to easily switch back and forth to different versions of installed packages.
Jeffrey
Message Edited by JeffreyH on 03-06-2006 02:43 AM
04-24-2006 02:41 PM
Well I've been meaning to reply to this for a while now (looking at the dates about 7 weeks, doh) right after my last posting I was out of the office recruiting and then didn't prioritize this back up. I was trying to decide if I should let "dead" threads lie, but I wanted to mention a couple of things and let you know I'm putting your feedback in some suggestions.
The idea Matt and Ben mentioned of "freezing" your development machines to keep around for developing future upgrades, is a good one. We actually do that here at NI with some of our build machines. VI Logger 2.0 for instance was developed using LabVIEW 7.1.1, NI-DAQ 7.something, FieldPoint 4.something else and so on. Plus the C portion of it was developed with Visual Studio 6.1 and certain service packs. So when we needed to build VI Logger 2.0.1, we fired up the build machine that we had used and made the modifications on there. That way we were changing as little as possible in that maintenance release. The biggest hurdle for us wasn't related to NI software (we were okay updating that), it was actually with Visual Studio, all our development machines had been upgraded to 7.1 and that had some pain associated with it, that we didn't want to go through since it wasn't required. So we were able to avoid that because we had this build machine "on file".
In order to comply with the configuration management requirements you / your company have laid out (or have enforced on you), you certainly may need a build machine for each product / project or even one for each revision of a product. That obviously could get a little pricey, but may be necessary. You have to balance the cost of buying a new machine versus the cost of upgrading to the latest drivers, testing your application with them and shipping those drivers to your customers. Those hours can add up and time is quite valuable to all of us. Besides, how could buying a new machine be bad 🙂 who doesn't want a new computer.
I think I'm seeing Jeffrey's idea now, why does it matter if the driver I want to include is installed on my system or not? That is something that is required by the current installer builder, it only knows what is available by certain files being installed. But what if we could select any old or new installer, installed or not and include it instead? That is something we'll have to think about. The main use case we were going with for this first version of the new installer builder did revolve around system replication where you want to get the exact stuff you have on your machine in the installer. With some of the complicated dependencies our installers have it may not be possible to select any version of a driver an include it, but it is something we should consider. A big problem I see is how do I easily know what is available if the installer hasn't been run on my machine.
The idea of being able to hop back and forth between versions or "un-upgrade" is not something I've heard discussed. I'll bring it up and the need for some customers to be able to develop multiple applications with different dependencies on the same machine.
I'll try to address one more item in this reply. Matt the best way we've found to know what went in a particular build and document it is through our Source Code Control software. When we have a release we set a label in Perforce, which will store a list of all the revisions (SCC revision not VI history revision) of the files in our "set" of files. We also create a build assumptions document that describes everything you need to know to get the code and build it and create the cd that went out (this is done separately in Word). I don't know if all SCC packages support the idea of a label, but I imagine most of them do.
Kennon
04-25-2006 08:05 AM
Thank you for the follow-up Kennon!
Since the time of this discussion I have implemented my own "Un-Installer".
I just have my IT people do an image backup of the machine before I start loading disks.
So far, so good,
Ben
06-19-2006 09:40 AM
Hope an observation from a new user is useful...
It's awfully intimidating to see installation sizes on the order of a gigabyte, and all the ins and outs of what components need what other components sound beyond my computer skills - must be a huge amount of detective work and memorization and experience to make sense of an installation or accurately predict what I might distribute to an end user in my organization. Was I smart to get onto this LabVIEW bus? Will my nonprogramming measurement partner balk at a 500 MB device driver installation (as I well might)? How much work will it be just to keep all these things working together against a backdrop of frequent upgrades? I'm just now tryng to reinstall MAX, which won't run anymore for some reason, and it's a startling commitment.
Here's the thing: the way I have done much of my DAQ until now is to write my own hardware drivers in assembly.
Hasn't something gotten way out of whack, if I can write DAQ applications from the ground up in assembly but can't practically comprehend a LabVIEW install?
But like I say, I'm new here...