Episode 137: Start Using a Build System & Continuous Integration in Python
The Real Python Podcast
Dec 16, 2022 1h
What advantages can a build system provide for a Python developer? What new skills are required when working with a team of developers? This week on the show, Benjy Weinberger from Toolchain is here to discuss the Pants build system and getting started with continuous integration (CI).
Episode Sponsor:
Benjy is one of the core developers of the Pants build system. He talks about the software tools and processes that a build system simplifies. We discuss how an individual developer can take advantage of continuous integration. We also cover some of the expectations when moving into professional software development.
Have you learned about or started to use tools like linters, code formatters, import sorters, type checkers, and packaging systems? A build system is designed to combine all of those tools into a simplified, one-step process to share your best code.
Benjy explains concepts like implementing fine-grained invalidation, moving to a monorepo, and using a build system for data science projects. He also shares his tips for getting started with Pants and finding help within the community.
Course Spotlight: Testing Your Code With pytest
In this video course, you’ll learn how to take your testing to the next level with pytest. You’ll cover intermediate and advanced pytest features such as fixtures, marks, parameters, and plugins. With pytest, you can make your test suites fast, effective, and less painful to maintain.
Topics:
- 00:00:00 – Introduction
- 00:03:19 – Working on Pants
- 00:05:24 – Background on Toolchain
- 00:08:26 – Individual developer using CI
- 00:11:04 – When did you start using these types of tools?
- 00:14:30 – Was the organization open to the development of CI tools?
- 00:15:45 – Having a foundation with Git
- 00:17:11 – Moving toward workflows
- 00:23:30 – Sponsor: InfluxDB
- 00:24:20 – What’s fine-grained invalidation?
- 00:29:32 – Setting up test coverage
- 00:33:07 – Moving into packaging and deployment
- 00:37:22 – Advantages of a monorepo
- 00:42:10 – Video Course Spotlight
- 00:43:36 – Reasons for deeper Python integration
- 00:47:40 – Using the build system with data science projects
- 00:52:21 – Getting started with Pants
- 00:55:47 – What are you excited about in the world of Python?
- 00:57:12 – What do you want to learn next?
- 00:58:41 – How can people follow your work online?
- 00:59:27 – Thanks and goodbye
Show Links:
- Pants 2: The ergonomic build system
- GitHub - pantsbuild/pants: The Pantsbuild developer workflow system
- Toolchain Labs
- E387 Build All the Things with Pants Build System - Talk Python To Me
- Continuous Integration With Python: An Introduction – Real Python
- Introduction to Git and GitHub for Python Developers – Real Python
- Monorepo Explained
- pex - PyPI
- pantsbuild/example-python: An example repo to demonstrate Python support
- The Pants community
- Christopher Neugebauer - Presentation at PyCon 2022
- Talk - Christopher Neugebauer: Fast and reproducible tests, packaging, and deploys with… - YouTube
- Rust Programming Language
- Benjy Weinberger (@benjy) / Twitter
- Pantsbuild (@pantsbuild) / Twitter