On May 17th 2018, Krita developers and artists from all around the world came to the sleepy provincial town of Deventer to discuss all things Krita-related and do some good, hard work. After all, the best cheese shop in the Netherlands is located in Deventer - as are the Krita Foundation headquarters! We started the sprint on Thursday, and the last people left on the following Tuesday.
Events like these are very important: bringing people together, not just for serious discussions and hacking, but for lunch and dinner and rambling walks. It makes interaction much easier when we go back to our IRC channel, #krita. Also, we didn't have a big sprint in 2017, so the last event like this was in 2016.
So...what did we do? We first had a long meeting where we discussed the following topics:
We received about €2000 a month in donations and have about eighty development subscribers. This is pretty awesome, and goes a long way towards funding Dmitry's work. Fundraisers are always a fun and energizing way to get together with our community. However, Kickstarter is out: it's a bit of a tired formula. Instead we wanted to figure out how to make this more of a festival or a celebration. The 2018 fundraiser didn't have feature development as a target, because…
...2018's focus was zero bugs! Over the prior couple of years we had implemented a lot of features, ported Krita to Qt5, and in general produced astonishing amounts of code. But not everything was done, and we had way too many open bug reports, way too many failing unit tests, way too many features that aren't completely done yet. Our goal for 2018 was to work on that.
We identified a number of areas with "unfinished business" that we needed to get back to. We asked the artists present at the sprint to rank those activities, and this was the result:
Boudewijn would work on:
Dmitry would work on:
Jouni would work on animation leftovers such as:
Wolthera would work on:
Krita 4.1.0 was released on June 27th and we continued doing monthly bugfix releases. We asked the KDE system administrators whether we could have nightly builds of the stable branch so people can test the bugfix releases before we actually release them. Krita 4.1 had lots of animation features, animation cache swapping, session management and the reference images tool, and more.
We also discussed the resource management fixing plan, and worked really hard on making the OpenGL canvas work even smoother (especially on macOS, where it wasn't that smooth). We added ffmpeg to the Windows installer, fixed translation issues and improved autosave reliability. We also fixed animation-related bugs and implemented support for a cross-channel curves filter for color grading.
At the same time, people who weren't present worked on improving OpenEXR file loading (it's multi-threaded now, among other things). They fixed issues with the color picker, simplified its code, and added even more improvements to the animation timeline.
Wolthera, Timothee and Raghukamath also finished porting our manual to Sphinx, so we can generate offline documentation and support translations of the manual (which is over 1000 pages long!).
There were three people who hadn't attended a sprint before: artist Raghukamath, ace Windows developer Alwin Wong, and Valeriy Malov, the maintainer of the KDE Plasma desktop tablet settings utility. Valeriy worked on improving support for Cintiq-like devices during the sprint.
Krita's autumn development sprint coincided with the last week of the fundraiser, in which almost 5 months’ worth of bug fixing got funded.
Eight people attended the sprint: Boudewijn, the maintainer; Dmitry, whose work is being sponsored by the Krita Foundation through our fundraiser; Wolthera, who works on the manual, videos, code and scripting; Ivan, who did the brush vectorization Google Summer of Code project this year; Jouni, who implemented the animation plugin, session management and the reference images tool; Emmet and Eoin who started coding on Krita a short while ago, and who have worked on the blending color picker and kinetic scrolling.
We did a ton of work! Wolthera solved the last few problems in Michael Zhou's Google Summer of Code rewrite of the palette docker. That was merged to master, so it's now part of the Windows and Linux builds. We did some pair programming so the text tool now creates new text with the currently selected color.
Jouni made a lot of progress with the implementation of animation clones and cycles. This allows a set of frames to be "cloned" and appear in several places in your animation.
Then we sat down and distributed bugs to the coders present, and we got rid of over 20 bugs in one session.
We continued to fix bugs for the rest of the week, and also experimented a bit with streaming. We managed to live-stream bug fixing on Twitch! During the stream, we answered questions sent by our users.
Users also voted on what we should concentrate on during the sprint:
Topic | Votes |
---|---|
Papercuts | 164 |
Brush Engine | 103 |
Animation | 88 |
Vector Objects and Tools | 56 |
Layers | 51 |
Text | 36 |
Photoshop layer styles | 28 |
Color Management | 21 |
Resource Management and Tagging | 18 |
Shortcuts and Canvas Input | 12 |
The only real change with prior votes is that Resource Management dropped below Color Management in priority. For the rest, the order is pretty stable.
Wolthera made a cool video showing off gamut masks and the new palette docker, created by two new Krita contributors. We had people from the US, Mexico, Russia, Finland and the Netherlands at the sprint. For three of the attendees, it was their first Krita sprint ever. All in all, it was great to be together again, and we look forward to our next gathering!
- +