Simplify And Scale Your Software Development Cycles By Putting On Pants (Build Tool)

The Python Podcast.__init__

Episode | Podcast

Date: Sun, 13 Feb 2022 19:00:00 -0500

<div class="wp-block-jetpack-markdown"><h2>Summary</h2> <p>Software development is a complex undertaking due to the number of options available and choices to be made in every stage of the lifecycle. In order to make it more scaleable it is necessary to establish common practices and patterns and introduce strong opinions. One area that can have a huge impact on the productivity of the engineers engaged with a project is the tooling used for building, validating, and deploying changes introduced to the software. In this episode maintainers of the Pants build tool Eric Arellano, Stu Hood, and Andreas Stenius discuss the recent updates that add support for more languages, efforts made to simplify its adoption, and the growth of the community that uses it. They also explore how using Pants as the single entry point for all of your routine tasks allows you to spend your time on the decisions that matter.</p> <h2>Announcements</h2> <ul> <li>Hello and welcome to Podcast.__init__, the podcast about Python&#8217;s role in data and science.</li> <li>When you&#8217;re ready to launch your next app or want to try a project you hear about on the show, you&#8217;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&#8217;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&amp;utm_medium=rss">pythonpodcast.com/linode</a> and get a $100 credit to try out a Kubernetes cluster of your own. And don&#8217;t forget to thank them for their continued support of this show!</li> <li>Building data integration workflows is time consuming and tedious, requiring an unpleasant amount of boilerplate code to do it right. Rivery is a managed platform for building our ELT pipelines that offers the industry&#8217;s first native integration with Python, allowing you to seamlessly load and export Pandas dataframes to and from all of your databases, services, and data warehouses with a few clicks and no extra code. Rivery is hosting a live demo of their first class Python support on February 22nd, and when you use the promo code &quot;Python&quot; during registration you will be entered to win a brand new series 7 apple watch. Go to <a href="https://www.pythonpodcast.com/rivery?utm_source=rss&amp;utm_medium=rss">pythonpodcast.com/rivery</a> today to learn more and register.</li> <li>Your host as usual is Tobias Macey and today I&#8217;m interviewing Eric Arellano, Stu Hood, and Andreas Stenius about the Pants build tool and all of the work that has gone into it recently</li> </ul> <h2>Interview</h2> <ul> <li>Introductions</li> <li>How did you get introduced to Python?</li> <li>Can you describe what Pants is and the story behind it? <ul> <li>What is the scope of concerns that Pants is focused on addressing?</li> </ul> </li> <li>What are some of the notable changes in the project and its ecosystem over the past 1 1/2 years?</li> <li>How do you approach the work of defining the target scope of the Pants toolchain? <ul> <li>What are some of your guiding principles to decide when a feature request belongs in the core vs as a plugin?</li> </ul> </li> <li>What are some of the ergonomic improvements that you have added to simplify the work of getting started with Pants and adopting it across teams?</li> <li>What are some of the challenges that teams run into as they start to scale the size of their monorepos? (e.g. project design, boilerplate reduction, etc.)</li> <li>How are you managing the work of growing and supporting the community as you move beyond early adopters/experts into newcomers to Pants and programming?</li> <li>How are you handling support for multiple language ecosystems? <ul> <li>What are some of the challenges involved with making Pants feel idiomatic for such a range of communities?</li> </ul> </li> <li>How does the use of Python as the plugin/extension syntax work for teams that don&#8217;t use it as their primary language?</li> <li>What are the architectural changes that needed to be made for you to be capable of integrating with the different execution environments?</li> <li>How would you characterize the level of feature coverage across the different supported languages?</li> <li>Now that you have laid the foundation, how much effort is required to add new language targets?</li> <li>What are the most interesting, innovative, or unexpected ways that you have seen Pants used?</li> <li>What are the most interesting, unexpected, or challenging lessons that you have learned while working on Pants?</li> <li>When is Pants the wrong choice?</li> <li>What do you have planned for the future of Pants?</li> </ul> <h2>Keep In Touch</h2> <ul> <li>Eric <ul> <li><a href="https://www.linkedin.com/in/arellanoeric/?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">LinkedIn</a></li> <li><a href="https://github.com/Eric-Arellano?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">Eric-Arellano</a> on GitHub</li> <li><a href="https://twitter.com/earellanoaz?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">@earellanoaz</a> on Twitter</li> </ul> </li> <li>Stu <ul> <li><a href="https://www.linkedin.com/in/stu-hood-6b65633/?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">LinkedIn</a></li> <li><a href="https://twitter.com/stuhood?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">@stuhood</a> on Twitter</li> <li><a href="https://github.com/stuhood?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">stuhood</a> on GitHub</li> </ul> </li> <li>Andreas <ul> <li><a href="https://twitter.com/andreasstenius?lang=en&amp;utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">@andreasstenius</a> on Twitter</li> <li><a href="https://github.com/kaos?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">kaos</a> on GitHub</li> </ul> </li> </ul> <h2>Picks</h2> <ul> <li>Tobias <ul> <li><a href="https://www.netflix.com/title/80074249?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">Last Kingdom</a> on Netflix</li> </ul> </li> <li>Eric <ul> <li><a href="https://www.netflix.com/title/81206559?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">Getting Curious</a></li> </ul> </li> <li>Stu <ul> <li><a href="https://www.economist.com/checks-and-balance-our-weekly-podcast-on-american-politics?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">Checks and Balance Podcast</a></li> </ul> </li> <li>Andreas <ul> <li><a href="https://pragprog.com/titles/tpp20/the-pragmatic-programmer-20th-anniversary-edition/?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">The Pragmatic Programmer</a></li> </ul> </li> </ul> <h2>Links</h2> <ul> <li><a href="https://www.pantsbuild.org/?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">Pants</a></li> <li><a href="https://en.wikipedia.org/wiki/Make_(software)?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">Make</a></li> <li><a href="https://earthly.dev/?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">Earthly</a> <ul> <li><a href="https://www.pythonpodcast.com/earthly-repeatable-build-tool-episode-351/?utm_source=rss&amp;utm_medium=rss">Podcast Episode</a></li> </ul> </li> <li><a href="http://mypy-lang.org/?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">MyPy</a> <ul> <li><a href="https://www.pythonpodcast.com/episode-65-mypy-with-david-fisher-and-greg-price/?utm_source=rss&amp;utm_medium=rss">Podcast Episode</a></li> </ul> </li> <li><a href="https://github.com/microsoft/pyright?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">PyRight</a></li> <li><a href="https://pylint.pycqa.org/en/latest/?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">Pylint</a></li> <li><a href="https://flake8.pycqa.org/en/latest/?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">Flake8</a> <ul> <li><a href="https://www.pythonpodcast.com/flake8-static-analysis-episode-309/?utm_source=rss&amp;utm_medium=rss">Podcast Episode</a></li> </ul> </li> <li><a href="https://bazel.build/?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">Bazel</a></li> <li><a href="https://pre-commit.com/?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">pre-commit</a> <ul> <li><a href="https://www.pythonpodcast.com/pre-commit-with-anthony-sottile-episode-178/?utm_source=rss&amp;utm_medium=rss">Podcast Episode</a></li> </ul> </li> <li><a href="https://pypi.org/project/underpants/?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">Underpants</a> library</li> <li><a href="https://pyoxidizer.readthedocs.io/?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">PyOxidizer</a> <ul> <li><a href="https://www.pythonpodcast.com/pyoxidizer-python-package-creation-episode-282/?utm_source=rss&amp;utm_medium=rss">Podcast Episode</a></li> </ul> </li> <li><a href="https://www.youtube.com/watch?v=gMFY0uUQexE&amp;utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">Eric PyCon Talk</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&amp;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&amp;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&amp;rec=1&amp;url=https%3A%2F%2Fwww.pythonpodcast.com%2Fpants-software-development-lifecycle-tool-episode-352%2F&amp;action_name=Simplify+And+Scale+Your+Software+Development+Cycles+By+Putting+On+Pants+%28Build+Tool%29+-+Episode+352&amp;urlref=https%3A%2F%2Fwww.pythonpodcast.com%2Ffeed%2F&amp;utm_source=rss&amp;utm_medium=rss" style="border: 0; width: 0; height: 0;" width="0" />