Amazon Web Services (AWS) sponsored this post.
The freedom to fork may well be the cardinal rule of open source, as open source luminary Brian Behlendorf once asserted, but forking is not an action that gets taken lightly. In some ways a fork suggests open source is functioning as it should; in other ways, it’s a clear indication that an open source project has failed.
Take Sodipodi, an open source vector graphics project that Ted Gould and others forked to create Inkscape. Gould has a long history in systems engineering, but became well-known in open source circles due to his pioneering design work on the Ubuntu desktop. The problem with Sodipodi, as Gould related in an interview, wasn’t architectural — it was community, or rather, the lack thereof. The Inkscape creators didn’t want to fork Sodipodi, but they wanted to make it so that anyone could contribute or be involved in the project.
The result has been a hugely popular — and hugely welcoming — community, though hardly a typical one for open source. Why? Because Inkscape was made for designers interested in creating the perfect logo or beautiful art, yet is developed by engineers who may not have the same creative urge. It turns out this apparent dissonance makes for some interesting dynamics.
But first, let’s talk about that fork.
Forks All the Way Down
Inkscape comes from a fine pedigree of forks. As mentioned, the Inkscape co-founders forked Sodipodi, which in turn was a fork of the Gill project. Even so, this didn’t make the decision to fork Sodipodi any easier.
According to Gould, he and other developers wanted to contribute to Sodipodi but couldn’t. Someone might submit a patch, for example, and they were stalled while the project maintainer would do a “complete review,” which proved to be more of a “rewrite.” This slowed down development and discouraged contributions. Gould and a few others initially tried to route pull requests through the Hydra branch of Sodipodi, hoping to give the Sodipodi maintainer highly usable fixes that would make them easier to merge into the Sodipodi main.
That approach didn’t work. In fact, Gould says it ended up causing some stress, with the Sodipodi maintainer encouraging them to fork his project.
And fork it, they did. This history is crucial for understanding why Inkscape functions the way it does, and why its community is so insistent on making it so that anyone could contribute and be involved in the project. This emphasis on inclusion, Gould says, is really what has made Inkscape successful long term.
A Different Sort of Community
Unlike other popular open source projects like Linux or Kubernetes, whose developers get paid well to write free software, virtually all Inkscape contributors are unpaid volunteers. Gould says a lot of Inkscape’s contributors work in free software professionally or are consultants. “Nobody is getting paid to work on Inkscape as their day job,” he says. This could change, Gould explains, as the design firms using Inkscape become larger and make enough money from Inkscape to give them the ability to contribute back.
But today, if you’re writing Inkscape code, you’re doing it as a labor of love.
You also may not be the ultimate consumer of the tool. As a project focused on less technical designers, Inkscape lacks the built-in base of potential user-contributors like, say, Wireshark. “The typical users we have are designers,” Gould says, who tend to be running MacOS or Windows. Yet the code contributors to Inkscape mostly prefer to run Linux. “We have a hard time finding contributors on Windows and MacOS,” he admits. See the potential for friction?
In fact, Gould says that for the Windows users of Inkscape, the very idea of open source may be foreign. “People who come to Inkscape from Windows see it from the lens of freeware, instead of open source,” he explains. Gould says that Inkscape’s Windows users don’t expect that they should be able to — or could contribute to — the project in any way. “If you are interested in open source for open source’s sake, you’re probably not on Windows,” he says. Linux users, by contrast, “already understand this open source thing and why that’s important.”
Perhaps related, Inkscape’s primarily Mac and Windows user population doesn’t necessarily care that the project is open source. “We’ve got a large number of users that, if Inkscape were proprietary and free, they wouldn’t really care,” he explains.
Indeed, as Gould elaborated, “open source tends to be really successful as engineering services like MySQL or MongoDB, because engineers innately value being able to get the code and tinker with it.” He says that Inkscape’s user population of designers, by contrast, doesn’t value the source code, because it’s not something they can work with.
For Gould, a self-described “open source zealot,” he wants “everyone to really, really care about this open source thing.” But the reality is that they don’t.
“They just want to be able to edit graphics and make a logo or design their house, or whatever,” he says. As such, the Inkscape community will always include a smaller number of contributors than what we might find in infrastructure projects.
Gould is OK with that. But that doesn’t mean he and the other Inkscape code community aren’t trying to improve to attract more contributions.
Rolling Out the Welcome Mat
As mentioned, Inkscape was forked to ensure a community-centric approach to vector graphics. That continues today. The Inkscape community has always been very positive, Gould says, with an emphasis on encouraging rather than compelling contributions.
“If you’re a new contributor, the first thing is ‘welcome’ not ‘why didn’t you contribute today?’” Gould says. “Or if someone brings a patch in the first thing you don’t say is, ‘You misformatted line 35.’ Instead it’s, ‘Hey, that’s great. We’ve got these formatting rules, here’s how to apply them. It’ll be really easy. If you can’t do it, I’ll do it for you.’”
The Inkscape community has commit requirements, like any project, and ensures they’re documented so that it’s easy to get involved and meet expectations. “Having a simple, welcoming process goes a long way toward creating a positive attitude around the project,” Gould says.
Beyond a culture of positivity, Inkscape has implemented an extension system to make contributing easy, even for those who aren’t advanced developers. In its nearly two decades of existence, Inkscape’s codebase has grown complex, but the project’s extension system allows developers to plug in Python scripts and such. The downside is that extensions like Ink/Stitch, an embroidery extension, sport their own, separate communities outside the main Inkscape community.
However, the upside is continued growth and relevance for Inkscape as it works to bridge its user and developer communities. Not bad for a project that is about to leave its teens.
If you’d like to contribute to Inkscape, you don’t have to be a developer. There are plenty of non-code options — like testing, marketing promotion, and more — and a variety of more technical contributions, from code to website design. Whatever you choose, your contributions will be welcome. That’s the Inkscape way.
At AWS we love to support builders of any kind, whether designer or developer (or some other kind of builder). If you or someone you know needs help with a different open source project, visit the AWS Open Source site to learn how open source projects can apply for AWS promotional credits.
Feature image via Pixabay.
At this time, The New Stack does not allow comments directly on this website. We invite all readers who wish to discuss a story to visit us on Twitter or Facebook. We also welcome your news tips and feedback via email: firstname.lastname@example.org.