06-08, 11:00–11:45 (Europe/London), Hardwick Hub
Did you know you can control all of your projects from a central template repository? In this talk we'll learn about copier, a framework for creating project templates. A natural successor to cookiecutter and GitHub templates, copier lets your projects re-sync from the original template, with new or the same arguments. Adopt the latest and greatest tools without leaving any of your libraries behind!
Developers love to work on new projects. Researchers love to experiment on new ideas. If you're anything like me, you have lots of little libraries for every new problem or idea that comes your way. And if you're like me, you also love keeping abreast of the latest-and-greatest tooling in the ever-changing Python ecosystem.
My approach for a new project has always been to copy/paste/find/replace my most recently used project as a template. This lead to a predictable problem - every project evolved in small ways from the one before it. Travis became GitHub actions, flake8/black became ruff, my setup.pys were replaced by pyproject tomls...I created an unmaintainable mess of almost-immediately deprecated patterns! I tried to leverage cookiecutter and template repos with mixed success.
Instead of making progress on any project, I was constantly bogged down amidst a perpetually updating ecosystem.
In this talk, I'll discuss the solution: copier. Copier lets you render projects from templates...and keep them in sync with upstream changes. With a few tweaks and a helpful GitHub action, you can control all of your projects from one central location.
Add a rust extension? No problem. New linter flags? Trivial! Accidentally mispelled your own name in 50+ public projects? In this talk, I'll show you how to pretend it never happened!
No previous knowledge expected
Tim is a Quantitative Developer at Cubist Systematic Strategies and an adjunct professor in the Computer Science Department at Columbia University.