Skip to content

NL net grant proposal

Tim Meusel edited this page Jan 21, 2025 · 7 revisions

Metadata:

Abstract: Can you explain the whole project and its expected outcome(s).

Vox Pupuli was founded in 2014 as a collective of Puppet module, tooling and documentation authors, all working together to ensure a strong ecosystem and continued development on the code we maintain. Today, the community has grown to 218 members and maintains an impressive 307 repositories.

As we enter the new year, we face significant challenges. Perforce, the owner of Puppet since April 2022, has announced plans to discontinue publicly available binary packages and cease public development of the software’s source code. In response, Vox Pupuli has forked into OpenVox, a community maintained implementation of the Puppet language and features. Because our intent is to maintain a cohesive ecosystem, we are also founding a Puppet Language Steering Committee which Perforce has agreed to participate in.

One of the largest impediments to the success of the project is that the Puppet server was implemented in Clojure, with the Puppet compiler patched in via jRuby. This a very niche language and an even more niche software stack without a large number of practitioners. Since the rest of the Puppet (now OpenVox) ecosystem is in Ruby, it will be much easier for us to find contributors who can write Ruby code. Therefore, we intend to port the server to Ruby and the standard Rack middleware.

Our intended outcome is

  • a project with more active contributors
  • a server stack that is easier to understand, maintain, operate, and package for publication
  • a server stack that uses standard middleware so it's easier to containerize or reuse in other contexts

Have you been involved with projects or organisations relevant to this project before? And if so, can you tell us a bit about your contributions?

Many members of Vox Pupuli have over 10 years experience within the community. Among us are former Puppet employees and current Perforce employees, including some who have been core developers. Several of us have shaped the entire Puppet ecosystem, including foundational standard patterns. Additionally, some members are part of the broader community that has developed projects like eduVPN and eduroam, both of which have previously received support from NLnet.

Explain what the requested budget will be used for?

We intend to hire an experienced developer who is proficient in Puppet, Clojure, jRuby, Ruby, and Puppet for a time period of four (4) months to execute the project. Since the only people who fit that job description live in the USA, we have to budget for USA wages. The €50,000 requested is comparatively low, but we are confident that we will find a person who fits the job perfectly.

The OpenVox project is currently receiving corporate sponsorship from Overlook InfraTech in the amount of two full time developers working on the project.

The greater Vox Pupuli organization is receiving sponsors in the form of financial aid, or access to infrastructure components. The budget is available at this URL: Vox Pupuli Budget. betadots GmbH is also sponsoring development time from their engineers to Vox Pupuli.

So far Vox Pupuli received 11,409.01USD in almost two years. The majority was from a one-time contribution from Microsoft, 8,000USD, with a list of all bigger sponsors here: Vox Pupuli sponsoring, and summarized as follows (alphabetically sorted).

  • Babiel Gmbh
  • betadots Gmbh
  • CERN
  • Deubert IT-Solutions
  • Docker inc.
  • Enterprise Modules B.V.
  • GÉANT Vereniging
  • GitHub
  • Hetzner Cloud Gmbh
  • Macarne Limited
  • Microsoft
  • Puppet
  • Xyntion

In total there are 22 current sponsors with a monthly donation and 6 previous or one-time sponsors.

Compare your own project with existing or historical efforts.

There are other communities with a focus on configuration management. For example Ansible, Salt, and Chef. None of them were able to establish a big and healthy community with a continuous growth the way that Puppet did. Some people from those organisations reached out to us in the past and we discussed how successful community leadership works. The Vox Pupuli GitHub statistics, and the fact that we're now the upstream for Facter/Puppet/Puppetserver/Puppetdb proves that Vox Pupuli is a healthy community.

What are significant technical challenges you expect to solve during the project, if any?

We will be unraveling and simplifying a fairly complex stack. Along the way, we may have to reimplement components and abstraction layers. We will need to rebuild the testing and packaging pipeline that's currently optimized for the legacy Clojure products.

It is very important to us to provide fast feedback to our developers, since this lowers the friction required to contribute. For more than a decade, this has been one of our top priorities. Now as we transition into a fully open source model with the OpenVox fork, a solid CI pipeline is critical to our success. The developer on this project will need to help create the appropriate pipelines for the newly reshaped project.

At the moment, Vox Pupuli is a group with 218 people. While this is a big group, most of those people participate in their unpredictable spare free time. This makes planning a roadmap difficult, and even more so before we get a solid CI pipeline providing timely feedback. A funded developer for the project would help us get to the point where we can execute regularly, and free up other sponsorship dollars to help fund staffing the security team and improve the supply chain.

Describe the ecosystem of the project, and how you will engage with relevant actors and promote the outcomes?

Vox Pupuli has different communication channels. For example a mailing list, IRC, and Slack. This provides different options for people to interact with Vox Pupuli. We use those channels to provide help and guidance for our users. The same channels are used for our "internal" development. So users can get an impression on how Vox Pupuli works and how active it is. We also visit a variety of conferences to talk about Vox Pupuli. There are also different companies that sponsor Vox Pupuli and provide commercial support for our tools.