activitysim icon indicating copy to clipboard operation
activitysim copied to clipboard

Implement UV for dependency lock

Open i-am-sijia opened this issue 5 months ago • 0 comments

This PR implements UV as the new package and project manager for ActivitySim. #954

Changes to package and project management

  • Updated pyproject.toml to work with UV
  • Implemented dependency lock with UV, added uv.lock for complete dependencies
  • Replaced various yaml files under "./conda-environments" with dependency groups in pyproject.toml

Updates to GitHub Actions tests

  • Updated the core tests to run on Windows VM instead of Linux. Since Windows is the primary platform that ActivitySim users use, it makes more sense to run tests on Windows
  • Updated the tests to use UV with dependency lock, instead of conda - partially done

Updates to documentation

  • Updated the release instructions
  • TODO: update the user doc and developer doc

Other changes

  • Pandas 2 got rid of the Int64Index dtype, which caused some existing tests to fail on Windows due to index type mismatch. We updated a few index type to ensure they are consistent across platforms and pandas versions.

Consideration for future improvements

  • Remove unused dependencies. We started off with retaining all the dependencies that were in the existing conda environment yaml files, and noticed that some packages that ActivitySim didn't require, such as orca, were still included in those yaml files. We removed some but definitely not all. It requires careful auditing and testing to remove all, which is out of scope for now.

@josiekre

i-am-sijia avatar Jun 16 '25 23:06 i-am-sijia