How do you handle Crestron software updates with multiple programmers

Company is growing, we now have a few Crestron programmers (I used to be the only one), and I'm running into what I think is an issue. Basically going behind each other and not being on the same release of software, sometimes it creates issues other times it fixes issues. How do other teams of programmers handle keeping everyone on the same version of software or is this something I shouldn't worry about. My brain is telling me not to update unless there is a reason (new feature, new devices, etc), if the version of software I'm running works, don't fix it.

Posted Feb 20, 2019, 3:55 PM UTC

315
MoronicusTotalis•

We've found that Crestron software versions are less of an issue than individual programmers reliably backing up their client files to a central repository. It's especially bad if the operation is often in "fire" mode where everyone is running around trying to get things done last second. Things end up disorganized, people forget to back up or check file versions before modifying code- it can be a real headache.

5
deadken•

I know this will get laughed at, but we have programmers all over the world and have found Dropbox working well for us. A couple of us have direct Dropbox access and the rest use a corporate FTP interface to get access.

A little discipline, like always changing the rev of code and VTP files goes a long way, long with filling in info in the program header.

Also, make sure everyone works with a path which shows their user name, so if something does go wrong with the process, a simple PROGCOM command will point at the likely culprit.

Honestly, I've tried GIT and a couple of other option and none seem to blend very well with Crestron. Incremental backups just aren't very relevant. Make sure all source is included in S# projects (easy setting) and back up the COMPILED.ZIP and you should be good.

The biggest problem for use is the skipped/reverted rev issue, where you need to make new rev (different display etc.) and then walk it back, causing confusion if good notes don't exist.

God knows what people do that actually try to use Studio. May God have mercy on their souls.

2
[deleted]•

[deleted]

2
MoronicusTotalis•

Discipline, central file location, Rev #s, initials in the project path, program header notes- all these things are key to keeping sanity (somewhat) intact. Also I really don't like the new tiny program header window. They ought to open it back up...

We used a couple repository solutions where I work over the years, and found them to be complete overkill.

1
yourpaljvalNothingSpecial•

It always comes down to discipline. Tools are helpful, but they will never fix the human element.

1
therealrouletteOP•

Luckily for us, all of our full time programmers get to learn and train in the service department. They get exposure to a wide range of gear and they understand the importance of file structure and backing up systems. We've been selling Crestron for 20 years but in those 20 years there have been numerous programmers come and go with the company, not all of them have been good about back ups. Service is a great training tool!!

1
blondedre3000•

This is why I just use dropbox for all my files, especially Crestron projects. It's automatic and you don't have to worry about it. I do have to pause it while working so just remember to reenable it every once in awhile. I'll also manually backup to a separate SSD HDD once in awhile for good measure.

For multiple programmers you'd just use dropbox for teams, and anytime someone opens a program to make a change they do a save as with a new version number, maybe even add their initials to the end so it's obvious who worked on it last. Now that SIMPl automatically creates local project databases and complete zip files on compile missing drivers or different versions of drivers aren't really a problem anymore.

1
trilevel•

Simple. Use git version control.

3
yourpaljvalNothingSpecial•

Got doesn’t do well with binary files so VTPs really suffer.

2
nhesson•

Git LFS is your friend here.

3
trilevel•

True. Used to use git annex and now using LFS. Never had a problem.

1
[deleted]•

[deleted]

1

It never was an issue I ran across. As long as everyone backed up their program files to a NAS, and we all sync'd to that NAS, everything worked out fine.

Software updates for the most part don't cause problems, but I have had it happen once where a newer version of VTP would compile a project differently and now the file is too big for the panels' memory.

Some will go to the extent of spinning up a VM for each project and freezing the software versions. I haven't felt the need to go that far myself.

1
charging-charlieCCMP - GOLD|DMC-E-4K•

The only "real" way to handle this would be to have a central repository and then each use check-in/check-out software that only permits one person to have a read/write copy at a time and also make sure the programmers understand not to update any of their Crestron software unless there is a reason to.

1
TrekRoadieDMC-E-4K•

We use TortoiseSVN for version control. Works well. Software gets updated periodically and has needed.

1
controlhaus•

Issue tracking has not been mentioned yet but is an important part of version control. Being able to go back and read discussions about why things were done gives a much clearer picture than a commit message alone.

The online git platforms like GitLab and bitbucket have it integrated in each project repo. It is also a great place to stash manuals, drawings and meeting notes.

1
engco431No Such Thing as an AV Emergency•

Good old subversion. Works very well with all flavors of Crestron files for backup and version control.

Regarding software, I would say it’s either A) control it corporately - everyone runs the version that’s dictated or B) if the desire is to always remain current, make it a part of the routine. Like “everyone runs master installer with full updates first thing Monday morning”.

Another solution that I’ve been a part of at one time was not efficient for data storage but it worked. That was to spin up a VM for each major project. These were stored centrally and we just moved the virtual hard disk files around as needed. All software was current as of deployment date for said project. Then, in theory, revisiting a site a year or two later, you were opening the same machine that last worked on it. Unchanged since that day. Like having a laptop per job. No problems running things like toolbox on the host machine, but anything that compiled had to run in the VM. Software on the VM was only updated to correspond with required firmware updates or major code/hardware changes that might include newer products.

1