Develop and test robust, multi-platform UV-based installation for v1.4.x and 1.5.x
Phase 10 introduced UV-based packaging and installation of ActivitySim to enhance version control and reproducibility, and to ensure smooth installation of ActivitySim environments across different platforms and configurations. ActivitySim’s online user documentation has been revised with updated instructions for both users and developers on installing and running ActivitySim using UV. Integration tests within GitHub Actions have also been updated to use UV instead of conda for installing and testing ActivitySim example features and models.
The purpose of this task is to identify and implement updates to the existing UV instructions and documentation by testing these instructions across the range of partner agency ActivitySim IT and computing environments. This effort will include verifying dependency resolution, handling version conflicts, and evaluating performance across different user workflows. Improvements to the UV instructions will be identified by implementing UV within agencies using ActivitySim, revealing gaps in the current installation instructions. The updated instructions will include recommended installation procedures, troubleshooting steps, and environment management strategies to support consistent and reliable use of the ActivitySim software.
Discussed at the 2025-10-02 Engineering Meeting. Agency<>Consultant pairs were established.
Things to note when talking to agencies:
- How do they currently install ActivitySim? Which version?
- How do they currently manage ActivitySim environment reproducibility across team members, across model runs, across projects?
- How do their model currently execute ActivitySim?
- Do they have separate Python environments for different parts of their model, e.g., EMME Python environment, ActivitySim Python environment, Posting processing environment, OR do they just have one Python environment?
- Can they install UV without IT headaches?
- Do they deploy their model on virtual machines (Azure, Amazon, ...)?
@ActivitySim/engineering, I started a list above. Feel free to add to it. I also made this into a Google Sheet so that we can update it as we go: https://docs.google.com/spreadsheets/d/19A62szJBLB3QnM2bKshCIVWpxlujzK7N9PJdJlOeDFU/edit?usp=sharing
I was able to install uv and run soundcast/activitysim. Here is a link to some instructions, which may be useful for other Emme implementations. We are using the current OpenPaths version of Emme. I also updated the spreadsheet.
Updates (10/23):
Three agencies—SANDAG, PSRC, and SEMCOG—have successfully used UV for installing and running their ActivitySim implementations. No fatal flaws encountered.
Based on feedback from these agencies, below are some areas for documentation improvements.
- Install UV globally for all users (SANDAG)
- Share UV environments among team members (SANDAG, PSRC)
- Integrate with OpenPaths EMME (PSRC)
- Include use cases to clarify when to use
uv add activitysimand when to useuv sync
Thoughts on next steps: 1. Sijia to update the documentation to reflect the items above, 2. More agencies to try and provide additional feedback.