Caluma and Sustainable Development of Graphql

22. June 2020

Free software allows us to save a lot of time and effort, because people all over the world can share their work. Otherwise, every company or organization would have to build its own software. This works great for common projects such as the Linux kernel. But with smaller projects there are often bottlenecks that cannot just easily be solved with enough money.

Today, the infrastructure for free software is available to everyone – there is free Git Hosting, free Continuos Integration and free Collaboration Platforms. So money is rarely a problem for such small projects. Sometimes there is a software maintainer who is financed by donations, but most people still prefer to have a secure job. So most of the projects simply lack manpower. In addition, every start into a new project is hard, because it takes months to gain the experience needed. This is why it would make sense for companies to give employees a few hours per week to maintain the Free Software they use.

Currently I am in this exact situation. I had to realize that the development of Graphql-Python 3.0 has come to a stand-still and I therefore asked for financial support within my company Adfinis – and got it. The project is of high relevance as Graphql is the basis of Caluma and we need to be able to switch to Graphql 3.0 in the backend, as the frontends will sooner or later no longer support version 2.0.

The Graphql-Python project therefore consists of the following subprojects:

  • Graphql-Core is a direct port of the reference implementation
  • Graphene offers high-level APIs for Graphql core
  • Graphene Django integrates Django into Graphene

With the help of the support provided by Adfinis I was able to get a 3.0 beta version for Graphene-Django. There have been several pull requests from different people trying to bring Graphene-Django up to the 3.0 dependencies. Unfortunately none of the pull-requests covered the overall picture. So my goal was to create a v3.0 branch, where all the previous efforts flowed together. I also set myself the task of rebasing the commits of everyone involved in such a way that everyone gets credits for their work – because credit is, in a way, the reward in free software development. In a next step, the v3.0 branch needs to be brought up to release quality. Here, however, the problem of lacking experience gets in the way. Since I don’t know how a Graphene Django 3.0 has to look like, I would have to get used to the reference implementation, and then again I don’t have the budget to do that. The Caluma Test-Suite saved my life here. Caluma has a comprehensive test suite of the highest quality. So I run Graphene-Django 3.0 with the Caluma Test-Suite and find out for each bug whether Caluma complies with the 3.0 specification or whether it is a bug in Graphql. This procedure has a synergy effect – Caluma will be ported to Graph-Python 3.0 and the bugs in Graphql 3.0 will be fixed.

And this is how a Caluma Test Suite run looks like:

test-suite

Adfinis sees Open Source as the future of technology and is committed to a world where software is free, of high quality and accessible to all. Accordingly, the commitment aims at openness, transparency, sustainable solutions without vendor lock-in and the power of the open source community.