When Pixar Animation Studios approached us in June 2013 they were happily using Synergy, but needed us to make a few changes...
“We currently use Synergy for users that have both Linux and Mac machines and we find it to be incredibly valuable for both our users and administrators alike. We have recently upgraded everyone and we've noticed couple of bugs...”
- June 2013
As a budding software company and team of two, we leapt at the opportunity to work with the infamous animation studio from Emeryville, California. Our first trip to The Steve Jobs Building on the Pixar campus was pretty exciting as it gave us some really interesting insight into how a larger company uses Synergy. There were some deployment and security requirements that we hadn't yet thought of, which we soon addressed.
After finding out what we needed to do for our new client, we decided that we should maintain 2 codebases for Synergy; an Enterprise edition codebase and a separate codebase for the regular editions (Pro and Basic). The benefit was that we could make any changes we wanted in the non-enterprise version without disturbing our new customer.
However, there was a drawback to that approach. It turned out that the two forks drifted significantly over time, and eventually the Enterprise edition codebase got left behind. Merging fixes between them became risky and eventually, the Enterprise edition codebase started to stagnate. Since 2013, we've onboarded many new business customers who are using the Enterprise edition. However, we've found that—paradoxically—they tend to prefer the regular Synergy editions because of the more recent bug fixes that they bring.
As of Synergy 1.10, we’ve recombined the two forks back into a single codebase. This has many benefits to both business and personal customers; previously there were a few bug fixes that only benefited our Enterprise edition users and vice versa, but now everyone gets every bug fix. As it turns out, a better approach to not disturbing our Enterprise edition users is simply keeping all experimental development to the future beta version (currently Synergy 2 Beta). There isn't a huge impact to the main codebase as most of the fixes had been ported already, were no longer relevant, or conflicted with other fixes (needing only one solution). Using the same codebase for all editions will make future development much more efficient.
Here’s what’s new in Synergy 1.10.0 (check the release notes for more details).