Skip to content

Project Meeting 2025.05.22

rcopperman edited this page May 22, 2025 · 1 revision

Agenda

  • Dependency lock update

Technical

  • 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
  • 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

Clone this wiki locally