Just to be clear, 1.6 didn’t remove Underscore from the global scope in a way that would have taken it away from an application which had a proper dependency on it. If an application wishes to use
_ in its own code, it should have already been depending on
underscore in its
.meteor/packages file, which declares dependencies for application code.
We have removed
underscore as a dependency from many of Meteor’s internal packages though, which may have (by chance) provided
_ to anyone who decided to use it without ensuring the dependency. It’s probably fair to say that if an application was relying on Meteor’s internal dependency on
underscore in order to use
_ within the its own code it was simply getting lucky and was in violation of an explicit dependency contract. As a similar example, if an application uses
check(...), it should have
check in its
.meteor/packages file and not just rely on some other package providing that dependency on its behalf.
Either way, I suppose this is great baby steps to having less unexplained globals. I certainly understand how this might have subjected these
_ variables to being used without explicit contracts to use them!