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

Summary

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.

Rivery LogoWhether you’re building out your data stack or transitioning to the cloud, managing your data workflows to analyze your business can be a real challenge. Developing an in-house solution requires valuable resources and upkeep, while integrating several tools adds new layers of complexity.

Rivery’s SaaS platform provides an end-to-end solution for ELT, data ingestion, data transformation, and data orchestration, with built-in native support for Python and DataFrames.

Designed to be nimble for non-technical users and with advanced capabilities for engineers, enable your company to build, manage, and monitor advanced data workflows with a scalable, reliable, and easy-to-use solution.

Try it out for free today!

Do you want to try out some of the tools and applications that you heard about on Podcast.__init__? Do you have a side project that you want to share with the world? With Linode’s managed Kubernetes platform it’s now even easier to get started with the latest in cloud technologies. With the combined power of the leading container orchestrator and the speed and reliability of Linode’s object storage, node balancers, block storage, and dedicated CPU or GPU instances, you’ve got everything you need to scale up. Go to pythonpodcast.com/linode today and get a $100 credit to launch a new cluster, run a server, upload some data, or… And don’t forget to thank them for being a long time supporter of Podcast.__init__!

Announcements

  • Hello and welcome to Podcast.__init__, the podcast about Python’s role in data and science.
  • 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 pythonpodcast.com/linode 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!
  • 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’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 "Python" during registration you will be entered to win a brand new series 7 apple watch. Go to pythonpodcast.com/rivery today to learn more and register.
  • Your host as usual is Tobias Macey and today I’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

Interview

  • Introductions
  • How did you get introduced to Python?
  • Can you describe what Pants is and the story behind it?
    • What is the scope of concerns that Pants is focused on addressing?
  • What are some of the notable changes in the project and its ecosystem over the past 1 1/2 years?
  • How do you approach the work of defining the target scope of the Pants toolchain?
    • What are some of your guiding principles to decide when a feature request belongs in the core vs as a plugin?
  • 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?
  • 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.)
  • 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?
  • How are you handling support for multiple language ecosystems?
    • What are some of the challenges involved with making Pants feel idiomatic for such a range of communities?
  • How does the use of Python as the plugin/extension syntax work for teams that don’t use it as their primary language?
  • What are the architectural changes that needed to be made for you to be capable of integrating with the different execution environments?
  • How would you characterize the level of feature coverage across the different supported languages?
  • Now that you have laid the foundation, how much effort is required to add new language targets?
  • What are the most interesting, innovative, or unexpected ways that you have seen Pants used?
  • What are the most interesting, unexpected, or challenging lessons that you have learned while working on Pants?
  • When is Pants the wrong choice?
  • What do you have planned for the future of Pants?

Keep In Touch

Picks

Links

The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA

Liked it? Take a second to support Podcast.__init__ on Patreon!