At ActiveViam, we always aim to stay ahead of the curve by using tools and technologies that optimize our workflow and help us deliver the best to our community. As a part of this mission, we have made the decision to upgrade our GitHub notebook gallery dependency management from Poetry to uv.
If you’re wondering, “What’s uv, why switch, and will this change make life easier?” we’ll explore exactly that in this post.
It started with Ruff
Our notebook gallery is a place where Atoti Python API users can explore examples we and others have built, to help you see different ways the Python API can be used. With few exceptions, the repository’s top-level lock file manages the dependencies for all example notebooks, ensuring each example runs smoothly from a single installation. To further ensure ease of adoption, every contributed notebook is tested and formatted before being merged.
For a long while we used Black for our formatting. Three months ago we switched our formatter to Ruff and have been happy with the switch. So, when the same folks who created Ruff debuted uv, we were keen to try it.
Poetry has served us well, and we still have love for it. It is a fantastic tool for dependency management and packaging in Python. But our notebook gallery has evolved and the demands on our example set has increased. With uv, the focus is on simplicity and speed, cutting down friction when managing dependencies. This is especially important for the large number of examples in our notebook gallery.
With uv, we see enhanced performance and faster resolutions than we’ve experienced in the past with Poetry.
Why would we switch from poetry to uv?
Here is why we’ve decided to make the switch.
Faster installations
In a world where speed is everything, waiting for dependencies to install can feel like an eternity. uv
shines with ultra-fast installations. It uses a more efficient solver that significantly reduces the time spent setting up environments. This means we can now go from “zero to code” in record time, making our build cycle faster.
Improved dependency resolution
We’ve all experienced dependency hell, where updating one package leads to a cascade of issues with others. Here, uv is better at resolving complex dependency trees, which means fewer headaches when dealing with multiple interdependencies. For us, going from Poetry to uv means we can focus more on creating new and more varied examples and less on untangling version mismatches.
Easy to use
uv aims to be a comprehensive solution for managing Python environments, dependencies, workspaces, package building, and publishing. Its design provides unified Python packaging in an intuitive and less frustrating manner compared to other package managers. This makes it easier for newcomers to explore our notebook examples and for community members to contribute to our gallery, all without the excessive complexity.
What this means for our Atoti Community
For our community of Atoti users, this switch means faster start up time when working with our GitHub gallery. Whether you’re just exploring what we have, or looking to contribute your own example, we hope this will simplify your experience.
If you have any questions about this transition or need help interacting with our notebook gallery, feel free to reach out to us. And while you’re there, be sure to star the repo and visit back often for new content!
Enjoyed this blog? Be sure to register for our newsletter for a monthly summary of all Atoti related updates.