-
Notifications
You must be signed in to change notification settings - Fork 118
Project Meeting 2025.05.22
rcopperman edited this page May 22, 2025
·
1 revision
- Dependency lock update
- What is a dependency lock
- A practice of freezing the versions of all dependencies used in the project
- Make sure all dependencies are updated and always work together
- Current issues in ActivitySim that would be solved with dependency lock
- Unexpected issues due to updates in dependencies
- Unstable and non-reproducible environments
- Unsuccessful installations accross different platforms
- There are many python project manager options to consider
- Pip
- Used by default in python
- Super slow
- pip freeze - hacky way of doing your best to lock dependencies
- Conda
- handles languages beyond Python
- Currently what ActivitySim most relies on
- Conda lock - third party package
- Slow
- PDM (Python Development Master)
- Installs package from PyPI
- Fast
- good lock file
- UV
- Really fast
- Replacement of Pip
- Sophisticated lock file
- Pixi
- Similar to Conda
- Fast
- Has its own lock file
- Poetry
- Has its own lock file
- Slow
- Pip
- Recent publication of Dependency Lock Standard (PEP 751)
- pylock.toml - tool-agnostic standard for lock files
- Speed is important for picking a tool
- Recommend testing three options
- Pip, PDM, UV
- Test includes user experience, creating ActivitySim virtual environment, creating and updating lock file, installing from lock file into a new virtual environment, run example models w/ and w/o Sharrow, supportin GitHub Actions, publishing to index
- Please send feedback to consider throughout testing
- Will provide update in early June