Since the middle March of 2018 we have hired a new developer – Artem Konoplin (known as “ice0” on GitHub). His initial mission is to fix bugs and improve stability of current feature set of Synfig. Though, as usual, things gone beyond of that (details below).
Our main developer Ivan Mahonin took a temporary break from his current tasks (he is working on Synfig’s renderer optimization and Assistants feature for OpenToonz) to mentor Artem and help him get into fundamentals of Synfig code. The “diving in” phase always taking time (maybe you can remember Ivan got through similar process back then in 2013 when I’ve hired him to work). Anyway, first results are already here – below you can see a quick summary what has been achieved by Artem with the help of Ivan.
- Fixed bug causing FilterGroup layer not save Origin parameter (issue #505).
- Fixed error preventing user to move keyframe at certain circumstances (issue #503).
- Fixed crash on Windows when closed file is re-loaded (issue #521).
- Fixed crash when you press Esc key during the rotation of the object (issue #470).
- Fixed issue #485: Spline Tool tangent menu crashes Synfig.
- Fixed issue #502: Attempt to run plugin cause to Synfig crushes.
- Fixed bug which was causing Synfig fail to start on systems with Gtk prior to version 3.20. This error is caused by incorrect CSS errors handling (style parameter ‘min-height’ was introduced in Gtk 3.20, for earlier version need to use ‘child-min-height’).
- Added static analyzers CLion and cppcheck (just Synfig Studio for now). Using them would be possible to fix some rare bugs and memory leaks. To run static analysis use analyze_cppcheck.sh or analyze_clion.sh inside synfig-studio folder.
- Fixed some errors found by analyzers (planned iterated fixing of this sort of bugs).
Fixed GTK errors that appear in the console when the Synfig starts (nothing critical, but they was so annoying).
Fixed compilation error on OSX with old GCC.
- When new image is imported, make its layer selected (issue #368).
Most of those fixes will be shipped with next development build – Synfig Studio 1.3.7 (which is coming really soon).
2. Building, Packaging and Continuous integration
In a pursuit to fix Windows-related bugs Artem started to set up a native build environment on Windows. As many of us, he found this process totally painful and that brought up the discussion on how we can simplify this process. So, right now we are in the process of research for a common solution, which can provide a simple, straightforward and stable build process on all platforms (Linux, Windows and OSX), with consideration for packaging and CI routines.
3. Python-izing of Synfig’s UI
Also, Artem got obsessed by idea of Python-izing Synfig’s GUI. He have proposed a first draft model for making this happen and now continues investigating this topic by doing some tests. Instead of aiming an ambitious (and resource-demanding) goal of “rewrite everything”, he proposed a plan of gradual Python-ization, which allows to replace some parts of interface one-by-one. With this task Artem aims to hit several goals at once: simplify the bug hunting routine, make it easier to introduce new functionality, get more people contributing to Synfig development (Python is simpler than C++!).
Meanwhile, I am working on establishing recurring donations for Synfig – this would allow us to keep Artem working on Synfig on regular basis. We plan to set up a dedicated Patreon page + provide some additional options on the main website. This task is closely related with another task – launching an updated version of Synfig’ website. I am transferring Synfig website to a new CMS platform and re-working a frontpage. Also, (as you might guess) with this post I would like to resurrect a tradition of development reports. No promises to keep them weekly, but… well, who knows! ^__^