Skip to content

Conversation

SaiBon99
Copy link
Contributor

@SaiBon99 SaiBon99 commented Oct 7, 2025

Assignment Proposal

Title

Reproducible Python Environments in DevOps: Comparing Pip, Poetry and UV

Names and KTH ID

Deadline

  • Task 3

Category

  • Tutorial

Description

This tutorial introduces three different approaches to Python dependency management — requirements.txt, UV, and Poetry — all within a Google Colab environment.

Participants will learn how to:

  • Create and use a requirements.txt file for simple, reproducible environments.
  • Install and manage dependencies with the fast package manager UV.
  • Set up and use Poetry to handle dependency resolution.

The aim is to demonstrate how these three different approaches can be applied to handle dependency management in Python. This tutorial will be executed in Google Colab.

Relevance
From a DevOps perspective, effective dependency management is essential for reproducible builds, faster CI/CD pipelines, and reliable deployments. Using requirements.txt, UV, and Poetry enables version-controlled and automated environments, ensuring consistency across development, testing, and production.

This approach mirrors industry DevOps practices and supports scalable, maintainable, and production-ready Python applications. By working through our tutorial, users will gain experience with three different approaches and understand their impact on DevOps practices. With this experience, users can make an informed decision on which tool best fits the pipelines they are working with.

You can find the tutorial here: https://colab.research.google.com/drive/1Ew-vsMqDoKLnSsNSTk7ENa_Vj9qm7PKJ?usp=sharing

@SaiBon99
Copy link
Contributor Author

SaiBon99 commented Oct 7, 2025

We are now finished with our tutorial

@sofiabobadilla
Copy link
Collaborator

We have received the submission.

The tutorial will be graded in the upcoming weeks, and the grades will be reported on canvas.

Thank you for your work.

@sofiabobadilla sofiabobadilla self-assigned this Oct 9, 2025
@sofiabobadilla sofiabobadilla merged commit 6b67abe into KTH:2025 Oct 9, 2025
3 checks passed
@HaraldHR
Copy link
Contributor

HaraldHR commented Oct 9, 2025

Feedback on #2908 (Simon Berglund & August Yvdal)

We certify that generative AI, incl. ChatGPT, has not been used to write this feedback. Using generative AI without permission is considered academic misconduct.

As of turning this in, it still says “2 days ago” on the comment stating that they are finished, we hope this fulfills the 2 business days criteria.

Feedback writers:


Initial Thoughts

This tutorial was overall very well written and easy to follow. The purpose of the tutorial is well motivated and it provides a strong link to DevOps practices. Furthermore, the intended learning outcomes are clearly stated in the beginning. We believe all of this is very important in order to make the users motivated to continue with the tutorial. Well done!

The tutorial is also written with a personal tone, humor and positivity. This is very appreciated as it makes the tutorial fun to follow. We also enjoyed the easter-egg at the end.


Structure and Content

One thing the tutorial does extremely well is how it introduces one tool at a time. This helps the reader keep track of where they are in the tutorial and keeps them from getting overwhelmed. It also contains a good comparison between the tools, for example it states clear differences and similarities between Poetry and UV (e.g. Poetry written in Python, UV in Rust).

In addition to that, the tutorial includes clear reflections of both positive aspects and also when some may cause issues, as well as instructions on how these tools can be used together. For example, how Poetry can generate a requirements.txt file which in turn someone who uses pip could use. All of this gives us a good overview and understanding of the tools, their differences, and their relation to each other.

We also thought it was a nice idea to purposefully create errors that we then solve using these tools. We like the fact that you have us go back to previous code cells and rerun them when we have the correct packages installed, it makes it intuitive and makes you clearly see the difference that installing the package actually made.


Improvements

We have some things that we think you can improve upon, although most of these are minor issues.

Firstly, there are some typos and grammatical issues (e.g. “dose” instead of “does”, “indecates” instead of “indicate”). This does not affect the content of the tutorial in a bad way, but it can be an easy fix to run it through a spell-checker.

When you ask us to go back and rerun a cell, it would be nice to have a more clear header for where we’re supposed to return to once we’re done. Even though we did like the fact that we had to go back, as stated above, finding our way back afterwards felt a bit tedious.

We also found places where additional comments would have been good, although the comments in general are well written. For example:

  • The command !rm -rf poetry-demo && mkdir poetry-demo %cd poetry-demo — we understand it, but not every reader of the tutorial may do so.
  • When you install Loguru using UV, you never actually state anywhere in the text that this is what you are doing. We as readers (Maja & Harald) can quite easily interpret it from the line !uv add loguru, but the readers have never actually seen the “add” instruction prior to this. An additional comment for clarity would serve the tutorial well.

Ending Thoughts

Overall we think this is a very good tutorial and it was both fun and easy to follow. It contains a motivating introduction, good insights and a well written summary.

One idea that we got when doing the tutorial was that we thought it would’ve been funny if an error had happened, stating that the tutorial itself didn’t work on our machine (like an easter egg). This wasn’t an issue, just a fun thought!

Great work in general and thanks for a good tutorial! Feel free to look over the improvements, it should be a quick fix :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants