Package & Dependency Management
Fall 2025
1
Please Help
Outline
3
Outline
4
What did you think of Docker?
Images, Containers, and Volumes
Docker: Cool Stuff
With Docker, you can install containerized versions of new libraries, languages, etc. without having to worry about software incompatibilities with your existing OS / software libraries.
Docker Experiments
Please try the following (make sure that Docker is running):
docker run -it python:2.7
docker run -it python:latest
docker run -it node:latest
What happened?
8
Docker Experiments
Try running some local files with various versions of Python and Node:
hello.py
def main():
print("hello world")
if __name__ == "__main__":
main()
hello.js
console.log("hello world!")
9
Docker Experiments
docker run python:latest python hello.py
docker run node:latest node hello.js
Amazing!! Now delete all of the containers you just made. You could do this via the Docker UI, but try doing it via the command line
10
What if you wanted to try out Rust?
Outline
12
What do we mean by Dependency Management?
13
What happened in the LeftPad Debacle?
What happened in the Everything Debacle?
What are the trade-offs associated with relying on dependencies?
What are dependencies good?
What are the downsides?:
16
What should you consider before adding a new dependency to your software project?
17
Stuff that can go wrong…
18
Some dependencies we will be using…
This week: Python & JavaScript dependencies – how do we manage those!? Examples:
19
Layers of Dependencies
Systems dependency managers manage programs for a single host machine.
What are some examples of systems dependency managers?
20
Outline
21
Why might we need more fine-grained dependency management tools?
As a programmer who writes software, a global, system-level dependency management tool might not be enough! Why?
22
JavaScript Dependency Management
Make sure Node.js is installed…
$ npm init
$ npm install react react-dom
$ npm install prettier --save-dev
Python Dependency Management
Python Dependency Management: Poetry
$ pip install poetry
$ poetry init
$ poetry search request
$ poetry add request
$ poetry install
$ poetry run [whatever]
Common Features of a Good Package Manager
Poetry and NPM provide:
Lab 5: Practice Using Package Managers
On Thursday, you will be doing a lab to explore some dependencies using three different package managers:
See you Thursday!
27
Outline
28
Keep working on Lab 4