jashkenas / jashkenas/backbone

Testing against outdated vendor libraries

Open
#4,271 1 comment 0 reactions 0 assignees View on GitHub
quality question
Dominant language
JavaScript
Stars
28.1k
Forks
5.3k
PR merge metrics
No merged PRs in 30d

Description

The project is currently testing against local hardcopies of jQuery, json2, QUnit, require.js and Underscore. These versions are all outdated by at least seven years.

There is a real advantage to this: testing against old versions of dependencies safeguards backwards compatibility.

There is also an obvious disadvantage: the more outdated these dependencies become, the more likely it is that incompatibilities creep into newer versions, without the tests detecting them.

In my own projects, I use Backbone with the latest versions of Underscore and jQuery, and I haven't noticed any problems. So far, we might have gotten away with the outdatedness of the dependencies, thanks to the fact that jQuery and Underscore are both very stable. However, at some point, this streak of luck will likely end.

I am convinced that we need to test against recent versions of jQuery and Underscore. They can simply be sourced from the `node_modules` instead of `test/vendor`. I am less sure about the old versions; should we keep *also* testing against those or not?

Thoughts appreciated. CC @GammaGames

Contributor guide

Open the contributing guide

Research direction

Start by inspecting the test/vendor copies and how the tests load jQuery, json2, QUnit, require.js, and Underscore. Before changing anything, decide whether recent versions should come from node_modules and whether the old versions remain; the issue does not yet define that decision or a concrete completion test.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, jquery
Domain
testing
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.