statgen / locuszoom

A Javascript/d3 embeddable plugin for interactively visualizing statistical genetic data from customizable sources.
https://statgen.github.io/locuszoom/
MIT License
154 stars 29 forks source link

Internal cleanup: ES6 + Webpack + D3v5 #193

Closed abought closed 4 years ago

abought commented 4 years ago

💣 This PR includes some breaking changes to conventional LZ usage, especially for users who haven't upgraded in a while.

Internal changes

  1. Convert internal code organization to ES6 modules and classes
  2. Replace legacy gulp build system with webpack + babel
  3. Move many "internal" features out of the global namespace
  4. All "plugin" features are now based on ES6 classes, making it easier to customize small pieces of functionality
  5. LocusZoom is now based on D3v5. If you are using the library via a script tag, you will need to update the D3 version used. We no longer provide a vendor.js bundle.

New features

New/ improved defaults

Potentially breaking changes

Known issues (in progress)

TODO

abought commented 4 years ago

Draft release notes below

This version contains numerous breaking changes and new features. Although we have tried to keep most familiar aspects of using LocusZoom intact, please read carefully before upgrading.

If you are using LocusZoom via <script> tag, LocusZoom now requires D3v5. Check any other visualizations on your site for compatibility.

New features for users

Several new features are available and enabled by default.

New features for developers

LocusZoom is highly customizable. We have added a variety of internal improvements that make it easier to build truly dynamic visualizations.

Important breaking changes

The code was heavily reorganized. Unused features were removed, and some improvements were made to make the library more approachable for new developers.

Overview

Renamed features

To support doc/instruction improvements, several things have been renamed.

New/improved defaults

Removals

Other

If you are testing experimental LocusZoom features, we have changed the build scripts. Gulp has been removed and replaced with new commands: npm run dev and npm run build. The unit tests now support test coverage.

The build process and modules work on all currently supported node LTS versions: 10.x or above. Old versions of Ubuntu tend to ship with very old versions of nodeJS, so this is something to check if your modified locuszoom code refuses to build.

If you modify the code, we welcome open source contributions! Please share your improvements or suggestions.