The Python Podcast.__init__

Project Scaffolding That Evolves With Your Software Using Copier

01.12.2021 - By Tobias MaceyPlay

Download our free app to listen on your phone

Download on the App StoreGet it on Google Play

Summary

Every software project has a certain amount of boilerplate to handle things like linting rules, test configuration, and packaging. Rather than recreate everything manually every time you start a new project you can use a utility to generate all of the necessary scaffolding from a template. This allows you to extract best practices and team standards into a reusable project that will save you time. The Copier project is one such utility that goes above and beyond the bare minimum by supporting project evolution, letting you bring in the changes to the source template after you already have a project that you have dedicated significant work on. In this episode Jairo Llopis explains how the Copier project works under the hood and the advanced capabilities that it provides, including managing the full lifecycle of a project, composing together multiple project templates, and how you can start using it for your own work today.

Announcements

Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great.

When you’re ready to launch your next app or want to try a project you hear about on the show, you’ll need somewhere to deploy it, so take a look at our friends over at Linode. With the launch of their managed Kubernetes platform it’s easy to get started with the next generation of deployment and scaling, powered by the battle tested Linode platform, including simple pricing, node balancers, 40Gbit networking, dedicated CPU and GPU instances, and worldwide data centers. Go to pythonpodcast.com/linode and get a $100 credit to try out a Kubernetes cluster of your own. And don’t forget to thank them for their continued support of this show!

Your host as usual is Tobias Macey and today I’m interviewing Jairo Llopis about Copier, a library for managing project templates

Interview

Introductions

How did you get introduced to Python?

Can you start by describing what the Copier project is?

How did you get involved in the project?

Can you share some of the history of the project?

What do you see as the most common uses for a project templating tool?

There are a variety of different tools for scaffolding projects across a wide range of languages. What are the distinguishing features of Copier that might lead someone to choose it over the alternatives?

Can you describe how the Copier project is implemented?

How has the design and feature set evolved over time?

What is the workflow for someone building a template with Copier?

What are some of the edge cases or complexities that they might run into?

What are the options for extensibility or integration with Copier?

What are some of the capabilities or use cases for Copier that are often overlooked?

What are some of the most interesting, innovative, or unexpected ways that you have seen Copier used?

What are the most interesting, unexpected, or challenging lessons that you have learned while working on and with Copier?

When is Copier the wrong choice?

What do you have planned for the future of the project?

Keep In Touch

Yajo on GitHub

__yajo on Twitter

Website

Picks

Tobias

Playing Cards

Jairo

Mozilla Hubs

Links

Copier

Tecnativa

Odoo Open Source ERP

Cookiecutter

Yeoman

Jinja

Cookiecutter, Yeoman, and Copier Blog Post

doodba-copier-template

Copier Templates

A Story of Duplicate Code

Traefik

The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA

More episodes from The Python Podcast.__init__