Accessing the D3 documentation for older versions javascript d3 programming
D3 moves fast:
Whew, D3 6.0 is out! Here are the detailed release notes, hot off the press. đ https://t.co/XJMBHvoNG0
— Mike Bostock (@mbostock) August 27, 2020
I try to keep up, but inevitably have lots of production code, tutorials, and examples still in older versions (the biggest project I maintain, hedonometer.org, 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: https://github.com/d3/d3. 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: https://github.com/d3/d3/releases/tag/v4.13.0.
If you go from there to click on the commit tag (it looks like `dd87262`), youâll be here: https://github.com/d3/d3/commit/dd87262… and then you can click âbrowse filesâ to get back to the main repo pack at that specific release commit: https://github.com/d3/d3/tree/dd87262…
From that version of the repo, you can access the API doc by clicking on the `API.md` file, so thatâs the docs for `v4.13`! If you didnât follow all of the clicks, here it is: https://github.com/d3/d3/blob/dd87262/API.md.
Now, some of the references in there refer you to the submodules, like clicking `d3.selection`, it will send you here: https://github.com/d3/d3-selection/blob/master/README.md#selection. 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: https://github.com/d3/d3/blob/dd87262/package.json#L66
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.