Date: Mon, 11 Jan 2021 19:00:00 -0500
<div class="wp-block-jetpack-markdown"><h3>Summary</h3> <p>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 <em>evolution</em>, 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.</p> <h3>Announcements</h3> <ul> <li>Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great.</li> <li>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 <a href="https://www.pythonpodcast.com/linode?utm_source=rss&utm_medium=rss">pythonpodcast.com/linode</a> 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!</li> <li>Your host as usual is Tobias Macey and today I’m interviewing Jairo Llopis about Copier, a library for managing project templates</li> </ul> <h3>Interview</h3> <ul> <li>Introductions</li> <li>How did you get introduced to Python?</li> <li>Can you start by describing what the Copier project is? <ul> <li>How did you get involved in the project?</li> <li>Can you share some of the history of the project?</li> </ul> </li> <li>What do you see as the most common uses for a project templating tool?</li> <li>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?</li> <li>Can you describe how the Copier project is implemented? <ul> <li>How has the design and feature set evolved over time?</li> </ul> </li> <li>What is the workflow for someone building a template with Copier? <ul> <li>What are some of the edge cases or complexities that they might run into?</li> </ul> </li> <li>What are the options for extensibility or integration with Copier?</li> <li>What are some of the capabilities or use cases for Copier that are often overlooked?</li> <li>What are some of the most interesting, innovative, or unexpected ways that you have seen Copier used?</li> <li>What are the most interesting, unexpected, or challenging lessons that you have learned while working on and with Copier?</li> <li>When is Copier the wrong choice?</li> <li>What do you have planned for the future of the project?</li> </ul> <h3>Keep In Touch</h3> <ul> <li><a href="https://github.com/Yajo?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Yajo</a> on GitHub</li> <li><a href="https://twitter.com/__yajo?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">__yajo</a> on Twitter</li> <li><a href="https://www.recallstack.icu/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Website</a></li> </ul> <h3>Picks</h3> <ul> <li>Tobias <ul> <li><a href="https://bicyclecards.com/products/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Playing Cards</a></li> </ul> </li> <li>Jairo <ul> <li><a href="https://hubs.mozilla.com/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Mozilla Hubs</a></li> </ul> </li> </ul> <h3>Links</h3> <ul> <li><a href="https://copier.readthedocs.io/en/stable/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Copier</a></li> <li><a href="https://www.tecnativa.com/en_US/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Tecnativa</a></li> <li><a href="https://www.odoo.com/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Odoo</a> Open Source ERP</li> <li><a href="https://github.com/cookiecutter/cookiecutter?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Cookiecutter</a></li> <li><a href="https://yeoman.io/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Yeoman</a></li> <li><a href="https://jinja.palletsprojects.com/en/2.11.x/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Jinja</a></li> <li><a href="https://www.recallstack.icu/en/2020/04/18/yeoman-and-cookiecutter-are-dead-long-live-copier/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Cookiecutter, Yeoman, and Copier Blog Post</a></li> <li><a href="https://github.com/Tecnativa/doodba-copier-template?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">doodba-copier-template</a></li> <li><a href="https://github.com/topics/copier-template?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Copier Templates</a></li> <li><a href="https://www.commitstrip.com/en/2020/04/16/a-story-of-duplicate-code?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">A Story of Duplicate Code</a></li> <li><a href="https://traefik.io/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Traefik</a></li> </ul> <p>The intro and outro music is from Requiem for a Fish <a href="http://freemusicarchive.org/music/The_Freak_Fandango_Orchestra/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">The Freak Fandango Orchestra</a> / <a href="http://creativecommons.org/licenses/by-sa/3.0/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">CC BY-SA</a></p> </div> <img alt="" height="0" src="https://analytics.boundlessnotions.com/piwik.php?idsite=1&rec=1&url=https%3A%2F%2Fwww.pythonpodcast.com%2Fcopier-project-scaffolding-episode-297%2F&action_name=Project+Scaffolding+That+Evolves+With+Your+Software+Using+Copier+-+Episode+297&urlref=https%3A%2F%2Fwww.pythonpodcast.com%2Ffeed%2F&utm_source=rss&utm_medium=rss" style="border: 0; width: 0; height: 0;" width="0" />