July and August 2015 Development Summary

In the spirit of providing insight on KiCad’s development, this report covers some of the development work within July and August. There are many patches that have been applied and this post will only summarize some of them, this is in no way meant to discourage small patches).

Stable release

Work continues towards a "stable" release for 2015. It is taking longer than desired to reach a "stable" point however many developers do this in their limited spare time. We want to eliminate as many bugs as possible before declaring a "stable" point.

That being said, it is also difficult to get developers to stop trying to submit features and enhancements and focus on bugs because who doesn’t want new features and shinier interfaces? We would greatly appreciate any developers helping to fix open bugs on launchpad. The most important issues to be fixed can be found here.

Elimination of boost::polygon

boost::polygon was formerly used for a lot of geometry related operations in the 3D Viewer and PCBNew. Unfortunately it has been slow and it is basically(though not announced) being left unmaintained. There was even a KiCad stemming issue that has been left unpatched for 2 years.

The solution has been to slowly purge the boost::polygon dependency and replace it with a C++ library called clipper

Coverity fixes

Coverity for those of you that don’t know, is an amazing commerical static analysis tool that can find many issues in code by examining your project while it compiles. It goes far beyond what tools like cppcheck are currently capable of. Luckily its free for open source projects!

We have been using Coverity since January 2015 and correcting many of the issues it has reported. As of Sept 02, 2015, we are down to 23 remaining issues and 433 fixed issues since we started using it.

Fixes during July and August:

3D Viewer Improvements

Besides being impacted by the removal of boost::polygon which may offer some speed improvements. There were some other changes that should have improved the rendering speed of the 3D Viewer.

BZR 6082 Improves 3D Viewer rendering speeds

BZR 6037 Speeds up silkscreen layer generation

BZR 5852 Flips the rotate Z and Y icons which were previously flipped

PCB Calculator - Track Width

A few enhancements were made by Blair Bonnett to the calculator options for the Track Width tab.

  • Calculated results now change as you change input fields rather than having to click a button

  • Allow users to specify a trace width which will update the maximum current field

  • Users can now specify trace thickness to be set separately for internal and external layers

  • Allow specifying resistivity

  • Make non-editable fields into text labels instead of input boxes.

List of all contributors

This an complete list of all contributors who have submitted at least one patch from the start of July 2015 to the end of August 2015. We thank you for your contributions no matter how small.

  • Andrew Zonenberg

  • Blair Bonnett

  • Bernhard Stegmaier

  • Chris Pavlina

  • Cirilo Bernardo

  • Dick Hollenbeck

  • easyw

  • Garth Corral

  • Hartmut Henkel

  • Henner Zeller

  • Henrik Nyberg

  • Jan Dubiec

  • Jean-Pierre Charras

  • Jonathan Jara-Almonte

  • Jon Neal

  • Joseph Chen

  • LordBlick

  • Константин Барановский

  • Maciej Suminski

  • Marco Ciampa

  • Mark Roszko

  • Mario Luzeiro

  • Mathias Grimmberger

  • Michael Beardsworth

  • Nick Østergaard

  • Ruben De Smet

  • Simon Richter

  • Tomasz Włostowski

  • Wayne Stambaugh