JBrowse 1.13.0 release – now with webpack!

I’m pleased to announce that JBrowse 1.13.0 has been released!

There are actually not a huge number of new features in this release, but there has been a significant change in the way JBrowse is built behind the scenes, and the introduction of a slight (slight! I hope it’s slight!) backward incompatibility with some existing plugins.

JBrowse now uses webpack to build and package its code for consumption by web browsers, which opens up a lot of options for the development team, paving the way for a much nicer road to all of the great things coming down the road in JBrowse 2. Most importantly, it means that we can build JBrowse 2 with modern technologies, while sharing code (particularly data stores) with JBrowse 1, which should greatly accelerate JBrowse 2 development. Yeah, we’re playing 4-D chess here.

However, besides the big build system overhaul, there are also some nice new improvements and bug fixes in this release, read below for the full release notes.

Files for download

Major improvements

  • JBrowse now uses a Webpack-based build system, which greatly speeds up JBrowse’s
    initial loading time. More importantly, going forward, this change will also enable us to make much more effective use of the huge node.js ecosystem that has grown up in
    recent years, as well as to use newer versions of JavaScript itself while
    still maintaining compatibility with older web browsers.
  • Behind the scenes, the way JBrowse plugins are discovered and loaded has also
    changed significantly. The most visible consequence of this change is that
    installations that use plugins must now use the JBrowse-1.13.0-dev.zip release
    (or check out the master branch from GitHub), and must re-run the webpack build
    (most easily by running setup.sh) every time a plugin is added or removed from
    JBrowse. Although we think that most users of plugins will not experience any
    problems, we recommend that installations that make use of plugins other than the
    standard built-in plugins (Neat*Features, RegexSearch, etc) test the compatibility
    of their plugins thoroughly before deploying this release, and report any problems
    either to the JBrowse issue tracker on GitHub, or to the gmod-ajax mailing list.
  • Again, concisely: if you use JBrowse plugins other than the “stock” ones that
    come with JBrowse, you must now use the dev release of JBrowse, and re-run either
    setup.sh or npm run build every time you add or remove a plugin.
    (issue #981, @rbuels)
  • JBrowse plugins can now be published and installed with NPM. Simply publish your
    plugin using the standard npm publish machinery, and make sure its package name
    ends with “-jbrowse-plugin”. For example, if you have a plugin named “foo”, publish
    it to npm as “foo-jbrowse-plugin”. However, if your plugin is named MyAwesomePlugin,
    which is not compatible with npmjs.org’s naming conventions, you will want to publish
    it as something like “myawesome-jbrowse-plugin” and add a configuration stanza to its
    package.json file telling JBrowse its real plugin name. Example:

    {
      ...
      "jbrowsePlugin": {
        "name": "MyAwesomePlugin"
      },
      ...
    }
    

Minor Improvements

  • Added disableCollapsedClick and enableCollapsedMouseover track configuration options.
    The enableCollapsedMouseover option is useful when features do not overlap e.g.
    chromosome segmentation and disableCollapsedClick is useful when the collapsed features
    are very dense. Thanks to @rdhayes for tips (issue #544, issue #870, @cmdcolin)
  • Removed JBrowse 1.2.1 compatibility. Please use JBrowse 1.12.5 or earlier
    if you still have old data formatted with JBrowse 1.2.1. (@rbuels)
  • For npm installations of JBrowse, jb_run.js and jb_setup.js are now installed into
    the standard node_modules/.bin location. (issue #1021, @rbuels)

Bug fixes

  • Fixed a bug in which adding setting tracklabels=0 in the URL failed to hide
    track labels when nav=0 was also set in the URL. Thanks to Vaneet Lotay for reporting
    the problem, and @cmdcolin for the fix. (issue #1017, issue #1018, @cmdcolin)

About Robert Buels

JBrowse Lead Developer
This entry was posted in News, Software releases. Bookmark the permalink.