Handsontable 2.0.0 is now available

Chris Spilka Release Notes / April 11, 2018

Handsontable 2.0.0 is now available

We are happy to announce that Handsontable (CE/Pro) 2.0.0 is finally here. It’s hard to believe that it took us 6 years to bump the major version of our best-selling software. It’s a small step for mankind, but one giant leap for our team.

Handsontable is a long-run project, with many projects heavily depending on it. That makes us responsible for keeping these projects running smoothly by providing a reliable and semantic versioning. We believe that this can be achieved by applying the rules outlined in Semantic Versioning Specification (SemVer).

If you are not familiar with SemVer, then read the summary below. It briefly explains how SemVer defines the version numbers that are incremented during each release.

  • Major version (1.x.y) indicates that there has been a backward-incompatible change in the existing API.
  • Minor version (x.1.y) indicates that a new, backward-compatible functionality has been added to the public API.
  • Patch version (x.y.1) indicates that there has been backward-compatible bug fix.

The key advantage of SemVer is that it is predictable. If you set a version range allowed for a specific dependency, you can be sure that it won’t be bumped without your control and consent. This makes the development much more comfortable, but requires being more attentive about the latest news and upgrades. For Handsontable, you can always find them on our Blog and Twitter.

Why 2.0.0?

We live in the world of npm, Yarn and other package management systems. It means that more and more apps rely on what has been specified in the dependencies object. Obviously, being SemVer-compatible makes Handsontable much more developer-friendly.

But there are more reasons we decided to bump Handsontable:

  • We equalized the version numbers of Handsontable Pro and Community Edition. Different version numbers were confusing for our commercial customers.
  • We’re going to merge documentation for Handsontable Pro and Community Edition. The current version will be available at docs.handsontable.com. All the legacy versions will be moved to the searchable archive.
  • We’re going to merge the repositories of Handsontable Pro and Community Edition. Commercial plugins (such as Filters or Nested Headers) will be put inside a separate directory with their own commercial licenses.

I want to make it clear: This Handsontable 2.0.0 release is a purely technical update. We haven’t added any new features or made any significant changes to the API.

Why now?

This change was long awaited and we didn’t see any reason for delaying it any longer. I think we chose a moment as good as any.

Plans for the future

In the upcoming releases, between May and July, we will be moving towards a single repository holding both open source and commercial plugins. It’s a licensing nightmare, but we’re on the right track to figure it out.

We also hope that the new documentation will be more friendly for developers coding in React, Vue, Angular and Polymer.

What changed in 2.0.0?

  • Backward-incompatible change
    Rewritten the Search and Custom Borders plugins to ES6. (#4892#4621). These plugins will no longer be available from the main Handsontable instance.
    They will be accessible analogously to other plugins, as hot.getPlugin('search') and hot.getPlugin('customBorders').
  • Pro – Added an additional hook,  beforeDropdownMenuShow for the dropdown menu plugin. (#56)
  • Pro – Fixed a problem with the Dropdown Menu being to narrow for its contents. (#49)
  • Pro – Added undo/redo test cases for the dropdown menu plugin. (#47)
  • Pro – Fixed a problem, where the size of the buttons in the dropdown menu wasn’t dynamically updated. (#44)
  • Pro – Added extra parameters for the  beforeFilter and  afterFilter hooks. (#43)
  • Pro – Fixed a problem with the jsfiddle link in the issue template. (#58)
  • Added the beforeContextMenuShow hook, triggered within the Context Menu plugin. (#4973)
  • Fixed problems with disappearing selection handles on mobile devices. (#4943#4936 )
  • Fixed a problem, where clicking on links inside cells was not possible on mobile devices. (#4570)
  • Fixed a problem, where scrolling the table on Chrome on a retina display created empty spaces. (#4498)
  • Fixed a bug, where sorting didn’t work when filtering was applied (#4170)
  • Fixed a problem with selecting entire columns, when multiple column header levels are declared. Mostly visible with Handsontable Pro’s Nested Headers plugin. (#4951)
  • Fixed a problem, where the Context Menu was too narrow for its contents. (#4933)
  • Modified the look of the fill handle. (#4921)
  • Fixed a bug, where pressing ENTER multiple times on a merged cell at the bottom of the table was not working properly. (#4915)
  • Fixed a problem with highlighting headers, when selecting entire columns. (#4875)
  • Fixed a bug, where removing the first row of a merged cell sometimes caused an error. (#3473)
  • Added a Russian translation. (#4854)
  • Fixed a bug with handsontable editor headers overlapped the table cells. (#4787)
  • Fixed a problem, where the afterRowMove  hook returned improper parameters. (#4444)
  • Fixed a bug, where the afterCreateCol  hook returned a wrong amount parameter. (#4210)
  • Fixed problems with alignment and the undo/redo functionality. (#3319)
  • Fixed a problem, where selecting and entire merged cell with non-contiguous selections did not highlight that merged cell. (#4860)
  • Fixed a problem with the jsfiddle link in the issue templates. (#4983)
  • Updated the pull request templates. (#4957)
  • Added helpers for console.log,  console.warn etc due to IE compatibility. (#4924)

Follow us on Twitter to keep up with news and updates.

Leave a comment below or write to us if you have any questions.