Why Does the Brightcove Player Version 6 Include Video.js 7?
Tech Talk
We have recently made a change to our version number policy in the Brightcove Player that has confused some of our customers. I’m writing to let you know what we changed and why we did it.
Overview
Changes made to Video.js when it was updated from version 6 to version 7 did not significantly alter the behavior of Brightcove Player (details below). These changes didn’t require the kind of special attention and manual opt-in we would usually require with a major version update of Brightcove Player. This is why it’s a major version update for Video.js, but not for Brightcove Player.
We recognize this now takes the Brightcove Player major version out of sync with Video.js, and we recognize this can be slightly confusing to those looking carefully at player internals. But we felt the alternative would have been much more disruptive -- to release a Brightcove Player 7 requiring all customers to opt-in to a manual update.
Quick Summary
Changes to major version numbers (first number before the dot) indicate large changes, especially those that break compatibility.
Brightcove Player is a superset of Video.js, meaning Video.js forms the core.
Starting with version 5 we synchronized major versions to make it easier to keep track of which versions go together; Minor version numbers were never synchronized.
We updated the major version of Video.js to 7 because, among other things, we removed Flash support and added HLS support.
We decided to keep Brightcove Player at version 6 since we added back Flash support (for IE 11 on Win7) on top of Video.js 7 and since Brightcove Player has always included HLS support (this wasn’t a change).
With these additions to Brightcove Player we felt the changes weren’t as huge and didn’t require the kind of special attention and manual opt-in we would usually require with a major version update. This is why it’s a major version update for Video.js but not for Brightcove Player.
We’re sorry for the confusion this caused, but we felt keeping the major version at 6 correctly communicated the fact that we expect no disruption with the upgrade from Brightcove Player 6.
What Changed?
As of version 6.20 we have now incorporated Video.js 7 as a dependency. In versions 5 and 6 we kept the major version of Video.js and the Brightcove Player the same. Now they’re out of sync again.
Our Objective
Our objective with the Brightcove Player is to provide customers the best user experience with the latest fixes and improvements with the least disruption. Our automatic update system is designed to make sure each version we release has the highest quality and continues to work on our customers’ web sites. We try hard to make every update compatible with existing implementations so our improvements can have the greatest positive impact for our customers.
What Major Version Numbers Mean
We use changes in major version numbers (the first number before the dot) to indicate major changes, especially changes that make our player incompatible with existing integrations. A change to the major version number generally means our customers should take note and special care with the upgrade. For example, with the update from version 5 to 6, we decided we would not automatically upgrade any players -- we required customers to opt-in to the change. Since version 5, we have also tried to keep the major version of Video.js the same as the corresponding Brightcove Player version, which we felt made it somewhat easier to track, although minor version numbers (the rest of the version numbers after the first dot) have never been synchronized.
Video.js 7 in Brightcove Player 6
In Video.js 7 we made several major changes including removing Flash support and support for all browsers that require Flash support (older versions of IE). We also added HLS playback support to the core player. These are major changes for Video.js that could have a significant impact on integrations and plugins, which is why we changed the version number.
Brightcove Player is a superset of Video.js, meaning we start with Video.js and add other components to make it easier to use, especially for Brightcove Video Cloud users. As we released Video.js 7 we asked if there was a way to make the improvements in that version available to current Brightcove Player customers without introducing breaking changes that would require an opt-in or other disruptive update. Since Brightcove Player has always had HLS support included by default, the addition of HLS in Video.js 7 was not a change for Brightcove Player 6. Also, by adding Flash support (for IE 11 on Windows 7) in the Brightcove Player superset bundle we determined we could produce a Brightcove Player that was 100% compatible with Brightcove Player 6.
In effect, this means that what is a major, potentially breaking set of changes in Video.js is not nearly as major or potentially breaking for the Brightcove Player. We felt keeping Brightcove Player at version 6 was an accurate way to indicate this and to communicate that there is no reason to take special note or to change integration code.
We recognize this now takes the Brightcove Player major version out of sync with Video.js, and we recognize this can be slightly confusing to those looking carefully at player internals. But we felt the alternative would have been much more disruptive -- to release a Brightcove Player 7 requiring all customers to opt-in to a manual update.
I hope this provides you some insight into our decision and why we’re including Video.js 7 with recent Brightcove Player 6 versions. Our goal remains to provide the best user experience with the least disruption with each new version update.