Accessing the D3 documentation for older versions

Fri 18 September 2020

D3 moves fast:

I try to keep up, but inevitably have lots of production code, tutorials, and examples still in older versions (the biggest project I maintain,, is on v3...eek!). Keeping all of that running would be impossible without the documentation for that code, and thankfully we can still access everything because of how well the D3 team uses git, git tags, and the GitHub releases feature.

You can access any older, or the current version of d3 itself through npmjs, here’s the link to v4.13. The instructions there show you how to use that version through npm, through cdnjs, etc.

D3 itself, if you've made it this far you know, is a collection of submodules. The main repository on GitHub is: This bundles most, but not all, of the submodules (notes on how to add additional modules are in the npmjs instruction above and in the readme on the GitHub).

For accessing the older version of d3 on GitHub, you can click on the “tags” button, and scroll back to version v4.13, you’ll end up on this link to the tag itself:

If you go from there to click on the commit tag (it looks like dd87262), you’ll be here: and then you can click “browse files” to get back to the main repo pack at that specific release commit:

From that version of the repo, you can access the API doc by clicking on the file, so that’s the docs for v4.13! If you didn’t follow all of the clicks, here it is:

Now, some of the references in there refer you to the submodules, like clicking d3.selection, it will send you here: Well, damn, that’s the latest release of d3-selection, not the one bundled in d3 v4.13. But not to worry, back on the main repo pack for the v4.13 commit, navigate to the index.js file and you’ll see all of the pinned dependencies. For d3-selection, it’s this line:

Phew, now on the d3-selection repo, you can follow the same steps: - Go to tags, - scroll to version 1.3.0, - click that one, - click the commit tag, - click browse files. You’re back at v1.3.0 of d3-selection with the code and documentation as it was when v1.3.0 was released.

A bit of a saga, but in short you can find any version of d3, the submodules, and their documentation through GitHub. It’s a good exercise in getting familiar with tagging releases with git (git tag v0.0.1; git push origin --tags;), just how powerful that can be if done right, and navigating around GitHub.