Date: Wed, 15 Jun 2022 09:00:00 -0400
<div class="wp-block-jetpack-markdown"><h2>Summary</h2> <p>Building any software project is going to require relying on dependencies that you and your team didn’t write or maintain, and many of those will have dependencies of their own. This has led to a wide variety of potential and actual issues ranging from developer ergonomics to application security. In order to provide a higher degree of confidence in the optimal combinations of direct and transitive dependencies a team at Red Hat started Project Thoth. In this episode Fridolín Pokorný explains how the Thoth resolver uses multiple signals to find the best combination of dependency versions to ensure compatibility and avoid known security issues.</p> <h2>Announcements</h2> <ul> <li>Hello and welcome to Podcast.__init__, the podcast about Python’s role in data and science.</li> <li>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 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. And now you can launch a managed MySQL, Postgres, or Mongo database cluster in minutes to keep your critical data safe with automated backups and failover. Go to <a href="https://www.pythonpodcast.com/linode?utm_source=rss&utm_medium=rss">pythonpodcast.com/linode</a> 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!</li> <li>Need to automate your Python code in the cloud? Want to avoid the hassle of setting up and maintaining infrastructure? Shipyard is the premier orchestration platform built to help you quickly launch, monitor, and share python workflows in a matter of minutes with 0 changes to your code. Shipyard provides powerful features like webhooks, error-handling, monitoring, automatic containerization, syncing with Github, and more. Plus, it comes with over 70 open-source, low-code templates to help you quickly build solutions with the tools you already use. Go to <a href="https://www.dataengineeringpodcast.com/shipyard?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">dataengineeringpodcast.com/shipyard</a> to get started automating with a free developer plan today!</li> <li>Your host as usual is Tobias Macey and today I’m interviewing Fridolín Pokorný about Project Thoth, a resolver service that computes the optimal combination of versions for your dependencies</li> </ul> <h2>Interview</h2> <ul> <li>Introductions</li> <li>How did you get introduced to Python?</li> <li>Can you describe what Project Thoth is and the story behind it?</li> <li>What are some examples of the types of problems that can be introduced by mismanaged dependency versions?</li> <li>The Python ecosystem has seen a number of dependency management tools introduced recently. What are the capabilities that Thoth offers that make it stand out? <ul> <li>How does it compare to e.g. pip, Poetry, pip-tools, etc.?</li> <li>How do those other tools approach resolution of dependencies?</li> </ul> </li> <li>Can you describe how Thoth is implemented? <ul> <li>How have the scope and design of the project evolved since it was started?</li> </ul> </li> <li>What are the sources of information that it relies on for generating the possible solution space? <ul> <li>What are the algorithms that it relies on for finding an optimal combination of packages?</li> </ul> </li> <li>Can you describe how Thoth fits into the workflow of a developer while selecting a set of dependencies and keeping them up to date over the life of a project?</li> <li>What are the opportunities for expanding Thoth’s application to other language ecosystems?</li> <li>What are the interfaces available for extending or integrating with Thoth?</li> <li>What are the most interesting, innovative, or unexpected ways that you have seen Thoth used?</li> <li>What are the most interesting, unexpected, or challenging lessons that you have learned while working on Thoth?</li> <li>When is Thoth the wrong choice?</li> <li>What do you have planned for the future of Thoth?</li> </ul> <h2>Keep In Touch</h2> <ul> <li><a href="https://www.linkedin.com/in/fridex/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">LinkedIn</a></li> <li><a href="http://fridex.github.io/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Website</a></li> </ul> <h2>Picks</h2> <ul> <li>Tobias <ul> <li><a href="https://brassagainst.com/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Brass Against</a></li> </ul> </li> <li>Fridolin <ul> <li><a href="https://github.com/thoth-station/micropipenv?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">micropipenv</a></li> </ul> </li> </ul> <h2>Links</h2> <ul> <li><a href="https://www.redhat.com/en?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Redhat</a> <ul> <li><a href="https://next.redhat.com/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Emerging Technologies Group</a></li> </ul> </li> <li><a href="https://thoth-station.ninja/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Project Thoth</a></li> <li><a href="https://github.com/thoth-station/thamos?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Thamos CLI</a></li> <li><a href="https://github.com/pypa/advisory-database?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">PyPA Advisory Database</a></li> <li><a href="https://developers.redhat.com/articles/2021/10/06/find-and-compare-python-libraries-project2vec?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Project2Vec</a></li> <li><a href="https://github.com/thoth-station/prescriptions?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Thoth Prescriptions</a></li> <li><a href="https://en.wikipedia.org/wiki/Thoth?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Thoth: Egyptian God</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&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&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&rec=1&url=https%3A%2F%2Fwww.pythonpodcast.com%2Fthoth-dependency-resolution-episode-367%2F&action_name=Intelligent+Dependency+Resolution+For+Optimal+Compatibility+And+Security+With+Project+Thoth+-+Episode+367&urlref=https%3A%2F%2Fwww.pythonpodcast.com%2Ffeed%2F&utm_source=rss&utm_medium=rss" style="border: 0; width: 0; height: 0;" width="0" />