Creating a Custom Packagist

Drupal Camp Asheville 2022 - IN PERSON - July 8th-10th

Room
ClipStock (225)
Start Time

Topics

Presenter(s)

Allan Chappell
of
Four Kitchens
Allan headshot

Allan may be a good ol’ country boy from West Texas, but don’t let the overalls fool you. Since 2016, he’s applied his vast skill set as technical lead for Four Kitchens’ support engineering team while also managing a team of developers and providing technical support as a backend developer himself.

Allan enjoys working on technically challenging, heavily integrated projects. His range of expertise spans DevOps, automated testing, automated code delivery, continuous integration, and API-driven content.

Have you ever found yourself needing to share custom dependencies across several sites? Maybe even for the same client? There are several methods of traversing this workflow, especially if you work in the Drupal ecosystem. The ideology of upstreams, distributions, and multi-sites are something to consider using. However, the fun lies in the challenge of determining how to scale an architecture. 

The ingredients for creating a custom packagist, a repository of dependencies used by Composer, are surprisingly easy to come by. Keep in mind that a private packagist can be obtained through a hosted service at packagist.com. In our case, we already had the tooling readily available, so we decided to go the custom packagist route. 

The goal of this article is to give you some ideas on how to host a solid packagist for a team, organization, or client while describing how the Four Kitchens team came up with a fun and creative solution to provide this functionality using the tools our client had on hand. I hope to accomplish this by:

  • Sharing our motivation behind choosing this solution
  • Identifying the ingredients need to cook up the workflow
  • Explain baseline hosting, but elaborate on what you could do if so inclined
  • Layout how we set up automation around the workflow to make our lives easier