PLAY PODCASTS
Start Using a Build System & Continuous Integration in Python
Episode 137

Start Using a Build System & Continuous Integration in Python

The Real Python Podcast · Real Python

December 16, 20221h 0m

Audio is streamed directly from the publisher (dts.podtrac.com) as published in their RSS feed. Play Podcasts does not host this file. Rights-holders can request removal through the copyright & takedown page.

Show Notes

<p>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).</p> <p>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.</p> <p>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.</p> <p>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.</p> <div class="alert alert-primary" role="alert"> <p><strong>Course Spotlight:</strong> <a href="https://realpython.com/courses/testing-your-code-with-pytest/">Testing Your Code With pytest</a></p> <p>In this video course, you&rsquo;ll learn how to take your testing to the next level with pytest. You&rsquo;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.</p> </div> <p>Topics:</p> <ul> <li>00:00:00 &ndash; Introduction </li> <li>00:03:19 &ndash; Working on Pants</li> <li>00:05:24 &ndash; Background on Toolchain</li> <li>00:08:26 &ndash; Individual developer using CI</li> <li>00:11:04 &ndash; When did you start using these types of tools?</li> <li>00:14:30 &ndash; Was the organization open to the development of CI tools?</li> <li>00:15:45 &ndash; Having a foundation with Git</li> <li>00:17:11 &ndash; Moving toward workflows</li> <li>00:23:30 &ndash; Sponsor: InfluxDB</li> <li>00:24:20 &ndash; What&rsquo;s fine-grained invalidation?</li> <li>00:29:32 &ndash; Setting up test coverage</li> <li>00:33:07 &ndash; Moving into packaging and deployment</li> <li>00:37:22 &ndash; Advantages of a monorepo</li> <li>00:42:10 &ndash; Video Course Spotlight</li> <li>00:43:36 &ndash; Reasons for deeper Python integration</li> <li>00:47:40 &ndash; Using the build system with data science projects</li> <li>00:52:21 &ndash; Getting started with Pants</li> <li>00:55:47 &ndash; What are you excited about in the world of Python?</li> <li>00:57:12 &ndash; What do you want to learn next?</li> <li>00:58:41 &ndash; How can people follow your work online?</li> <li>00:59:27 &ndash; Thanks and goodbye</li> </ul> <p>Show Links:</p> <ul> <li><a href="https://www.pantsbuild.org/">Pants 2: The ergonomic build system</a></li> <li><a href="https://github.com/pantsbuild/pants">GitHub - pantsbuild/pants: The Pantsbuild developer workflow system</a></li> <li><a href="https://toolchain.com/">Toolchain Labs</a></li> <li><a href="https://talkpython.fm/episodes/show/387/build-all-the-things-with-pants-build-system">E387 Build All the Things with Pants Build System - Talk Python To Me</a></li> <li><a href="https://realpython.com/python-continuous-integration/">Continuous Integration With Python: An Introduction – Real Python</a></li> <li><a href="https://realpython.com/python-git-github-intro/">Introduction to Git and GitHub for Python Developers – Real Python</a></li> <li><a href="https://monorepo.tools/#what-is-a-monorepo">Monorepo Explained</a></li> <li><a href="https://pypi.org/project/pex/">pex - PyPI</a></li> <li><a href="https://github.com/pantsbuild/example-python">pantsbuild/example-python: An example repo to demonstrate Python support</a></li> <li><a href="https://www.pantsbuild.org/docs/the-pants-community">The Pants community</a></li> <li><a href="https://us.pycon.org/2022/schedule/presentation/17/">Christopher Neugebauer - Presentation at PyCon 2022</a></li> <li><a href="https://www.youtube.com/watch?v=0INmW9KaAp4">Talk - Christopher Neugebauer: Fast and reproducible tests, packaging, and deploys with&hellip; - YouTube</a></li> <li><a href="https://www.rust-lang.org/">Rust Programming Language</a></li> <li><a href="https://twitter.com/benjy/">Benjy Weinberger (@benjy) / Twitter</a></li> <li><a href="https://twitter.com/pantsbuild/">Pantsbuild (@pantsbuild) / Twitter</a></li> </ul> <p>Level up your Python skills with our expert-led courses:</p> <ul> <li><a href="https://realpython.com/courses/python-continuous-integration/">Continuous Integration With Python</a></li> <li><a href="https://realpython.com/courses/testing-your-code-with-pytest/">Testing Your Code With pytest</a></li> <li><a href="https://realpython.com/courses/test-driven-development-pytest/">Test-Driven Development With pytest</a></li> </ul> <p><a rel="payment" href="https://realpython.com/join">Support the podcast &amp; join our community of Pythonistas</a></p>