MySQL Workbench 5.2 – Code Statistics

A community member recently noted, that it takes quite a long time to compile MySQL Workbench. So he started wondering about how big the project actually is and asked for the Lines Of Code we have in our MySQL Workbench 5.2 repository.

We did not have this information at hand and therefore Alfredo ran some scripts during the weekend and generated this nice breakdown.


As you can see, we almost have 700k lines of code to maintain. Given that the MySQL Server itself has about 900k lines of code this is a pretty decent number I think, especially for a small team of 7.

Next MySQL Workbench 5.0.20 Release Almost Ready To Ship

As promised we are continuing our strong efforts after reaching GA and our announcement at the MySQL Users Conference (find a nice press article here).

Alfredo managed to fix a serious bug that almost seemed to be of random nature and happened on certain OnMouseDown and OnMouseUp events on the canvas.

Another thing that got improved is the drawing order of connections between table figures on the canvas. Previously the connections would be drawn on top of tables, resulting in a messy image. Now connections are always drawn behind tables. To make that work we had to remove the nesting of layers – a feature that does not really make sense for a database tool anyway.

The team will meet in the week of May 12th in Kiev where we are going to define the detailed plans for Workbench 5.1 and 5.5. Until then we will work on WB 5.0, fixing bugs and improving the scripting interface to make it more convenient to write plugins.

Please keep reporting bugs and blog about your experiences. This is the best way to support the project. (Or pony up the $99 for Standard Edition if you don’t have time for that and still want to help 🙂 )

What Happens After Workbench 5.0 Becomes GA?

We have just officially released the WB 5.0 RC3 build and are planning the GA build to happen soon. One might ask, what is our criteria to call something GA? Well, it means that there must not be any known and verified P1 (crashing) and P2 (very serious bug with no workaround) bugs. Does it means that there are no bugs left or that we have implemented every feature request? No.

Therefore our efforts will not stop after the GA build. We still plan to get a new release out every 3rd week including all fixes and improvements that are necessary. This is a first list of things we are planning to release in a future GA release.

  • Bug fixes
    Most important are bug fixes of course. Please keep reporting bugs, you did a great job in the past – and if you do so, we will keep closing those bug reports as fast as we can.
  • Enable connection-end points dragging/reordering
    This has remained one major point of complaint, but we cannot commit the code in time for the GA release as this has to be tested much more.
  • Canvas speed optimizations
    While we have made improvements here there is still a lot to work on, especially for large diagrams. My current advice is to break the huge diagrams down into smaller ones so that they become easier to manage. To have many different diagrams in one model is one core feature of Workbench and I would like to encourage people to really make use of that (even if larger models can be displayed faster in the future).
  • More DBDoc templates
    We only ship a small number of reporting templates in SE yet. This is going to change. If you have special requirements or ideas how the reports should look like please post your ideas on the forums.
  • Online repository of model snippets
    When you do a lot of database modeling you might have noticed that you reuse the same structures quite a lot. We want to offer a collection of diagram snippets that will allow you quickly add typical structures to your model.
  • Online repository of plugins
    Vlad is giving a tutorial at the MySQL Users Conference on how to write plugins for Workbench. We want to offer an online repository for those as well. Sergei is currently working on a Download-Wizard to make downloading those extensions really easy.

As you can see, we have lots of plans for the WB 5.0 GA release and this does not even touch the things we will be working on for the WB 5.1 tree.

There are great times ahead of this project!

Tell me what your code looks like…

Code line distribution over all projectsFrom time to time it is necessary to get a bigger picture of your project in terms of size, test coverage, code vs. comments ratio and others (aka metrics). While it is quite difficult to find a good (and free) code coverage tool for C++ there is already a very nice tool package called DPack, which is not only freely available but also gives us some very useful additions in our IDE. One of those features is code statistics.

Continue reading “Tell me what your code looks like…”

Why Released on Windows First?

If you are on Linux or OS X you might ask why we have decided to first release on the Windows platform. And why the releases for Linux and OS X will happen a few months later. Here is why.

We believe we can deliver better quality if we focus on one platform first. By having the whole team focusing on one platform we can get a release out sooner than it would be possible by supporting all three platforms from the beginning.

And the sooner we release, the earlier we get bug reports. And this benefits the quality. When we are going to release on the other platforms the back-end code will already be well community-tested. And even the first releases on Linux and OS X will have a decent quality.

But why did we choose Windows as the first platform? Actually, it was not us – it was you, our users. Looking at the bug reports we got for the old GUI tools it is clear that 90% of the reports are for Windows. And that made the choice easy.

The question remains why we do not use Java or a cross platform GUI toolkit. The answer for that is that a lot of developers do not want Java to be installed on their development machine. I personally love Java as a language but I can see their point, so that was not an option. For the cross platform GUI toolkits – we have tried a number of them. But non of them really delivered what we needed.

So I hope our fellow Linux and OS X users (I’m on OS X now as well) will understand our motivation behind this decision and will be even more happy when they are going to try Workbench on their platform and find it working very well.