Flot Blog

Flot 0.8.3 released

Posted April 21, 2014 by dnschnur

We’ve released Flot 0.8.3, with fixes for jQuery compatibility, the resize plugin, axis labels, regressions from earlier 0.8.x releases, and more. You can download 0.8.3 here.

Important Bug Fixes in 0.8.3

Compatibility: Fixed compatibility issues with both older (pre-1.4.x) and newer (1.9.x and later) jQuery versions.

Resize plugin: Applied fixes to the the inline jQuery Resize plugin to address a regression that resulted in unexpectedly high CPU usage, as well as an error when using older versions of Internet Explorer.

Axes: Fixed regressions related to axis options and ticks, including bugs in the way space was reserved for the first and last tick labels.

See the NEWS file for a complete listing of changes made and bugs fixed.

Acknowledgments

We’d like to give special thanks to andig, btccointicker, dmfalke, EGLadona, Elite Gamer, jorese, Josh Pigford, Neil Katin, ngavard, Paolo Valleri, Phil Tsarik, soenter, tleish, and tommie for reporting issues or contributing fixes for this release.


Flot 0.8.2 released

Posted November 28, 2013 by dnschnur

We’ve released Flot 0.8.2, with patches for many new and long-standing bugs, including the remaining regressions introduced in 0.8. You can download 0.8.2 here.

Important Bug Fixes in 0.8.2

Tick Labels: Fixed several issues related to axis ticks, including bugs in the way widths were assigned to narrowly-spaced labels, and a change that broke the flot-tickrotor plugin.

Resize plugin: Updated the inline jQuery Resize plugin to the latest version, fixing several errors and a possible memory leak.

Rendering Glitches: Fixed a variety of rendering bugs, including white circles drawn over pie plots, bars not being filled-in on some browsers, and incorrectly-placed highlights when using right-aligned bars.

See the NEWS file for a complete listing of changes made and bugs fixed.

Acknowledgments

We’d like to give special thanks to Anthony Ryan, Benjamin Gram, BeWiBu, Brend Wanders, Brian Peiris, btccointicker, cleroux, Craig Oldford, Daniel Hoffmann Bernardes, Eric Byers, execjosh, irbian, Jack Klink, Luis Silva, Mark Cote, Matthew Sabol, melanker, Mihai Stanciu, Mike Połtyn, Munsifali Rashid, Patrik Ragnarsson, Pierre Dubois, ryleyb, sknob001, sloker, Teq1 and Thodoris Greasidis for reporting issues or contributing fixes for this release.


Flot 0.9 update

Posted September 29, 2013 by dnschnur

Work on Flot 0.9 has been proceeding slowly but steadily. We’ve continued to clean up the codebase, and have been merging ‘on green’ (in terms of style) for several months now.

Thanks to work by Nick Schonning we now build using Grunt instead of Make. This does add a dependency on node.js, which we previously used only for JSHint, but it gives us flexibility to add things like automatic inlining of third-party dependencies.

Rotated text has been working in the 0.9-work branch for some time now; for example, here’s what the multi-axis example looks like with y-axis labels:

yaxes: [{
   label: "Price (USD)"
}, {
   alignTicksWithAxis: 1,
   position: "right",
   label: "USD/EUR exchange rate",
   labelPadding: 7
}]
</img>

Rotated tick labels still aren’t quite ready yet, but will be soon. The final step is to make this available to plugins, so instead of implementing custom HTML or canvas text you’ll be able to use a simple API from within hooks. The result will automatically render to either HTML or canvas, with styles, and looks almost pixel-identical, even when rotated, on browsers back to IE7.


Planning for 0.9

Posted June 27, 2013 by dnschnur

This week we finished selecting the issues and features that we’ll work on for the 0.9 release. Below is a summary of the main goals, and you can take a look at the full list via the link above. Pay special attention to #9; we’re very interested in community feedback on the best way to implement this plugin mechanism.

Flot 0.9 Highlights

  1. Clean up the code to the point where it passes our automated JSHint Travis build.

    This is already done; you can check it out in the 0.9-work branch. Note that this involved removing inline plugins like jquery.colorhelpers.js, and we haven’t yet updated the build system to auto-inline these. We’ll handle that soon, but for now you’ll need to remember to include them yourself.

  2. Core support for axis labels and plot titles.

    This is in-progress, and should get pushed to 0.9-work in the next week.

  3. Core support for basic rotated axis tick labels.

  4. Factor out the built-in point, line, and bar draw types into plugins.

    The plugins will still be inlined in jquery.flot.js, so this change won’t break any existing code.

  5. Generalize and expose all functionality - defining hover/click areas, altering plot margins, etc. - that is currently restricted to the built-in plot types, making it available to any plugin.

    The main goal of the 0.9 release is to improve and finalize the plugin API. Our biggest task is to pull out everything that is hard-coded into the built-in draw types and make it available to all plugins.

  6. Extend hooks and events to give plugins additional capabilities.

  7. Allow legends to be drawn to the canvas.

    This will be optional, similar to how axis tick labels are drawn using HTML text by default, but can optionally be drawn to canvas.

  8. Simplify exporting the plot to an image.

    Image export questions come up all the time, and we should at least provide a good example for how to do it. We may even add helper functions to avoid some of the work.

  9. Organize first-party and third-party plugins, and allow inlining of dependencies.

    Since Flot first introduced its plugin API, there has been a big expansion in the number of core and third-party plugins, and we need a better way to organize them all. We also need to figure out how plugins get accepted into the core repository, and what that means in terms of who maintains them.

    There are still a lot of open questions here, so we’ve created a new forum topic to discuss the problem, and get feedback on some ideas for how to solve it.

Contributing

If you are interested in contributing to Flot, check out the 0.9 milestone’s list of open issues. Remember to start your work from the 0.9-work branch, and first discuss any larger changes in the issue before implementing them.


A new branching scheme

Posted May 29, 2013 by dnschnur

Last week’s release of 0.8.1 was Flot’s first-ever point-release. One of the reasons why we haven’t had them in the past is because our branching scheme didn’t support it.

Before 0.8, every pull request and fix was merged straight into master, making it always the latest version of the library. This was easy to understand, but prevented us from releasing minor fixes separate from major changes that we knew were incomplete or still needed more testing.

</img>

You may have already noticed that after the release of 0.8 we added a couple of new branches: 0.9-work and code-cleanup. Now master represents the stable release - currently 0.8.2 - while new features and major releases are given separate branches. Feature branches are merged into the next major-release branch on completion, and when the release is ready it is merged into master.

All this time, we can continue merging minor fixes into master. This lets us ship point-releases to get those changes out to you faster, so you don’t have to wait until the next major-release to use them safely in production.

After every point-release we merge back into the next major-release branch, to keep it up-to-date as work continues.

This is great for users, but it does mean that those of you contributing pull requests need to do a little more to ensure that you’re working from the correct branch. If your contribution is anything beyond a bug fix - if it adds a feature or changes the API in any way - then you should base against the 0.9-work branch.

As always, please try to follow Flot’s contribution guidelines. We will soon begin requiring that new code pass our automated JSHint before we’ll merge it. It’s just a good idea in general; it makes the merge easy for us so we have more time to work on new features for you.


Older Posts