Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Investigate UV and/or Pixi for cross-platform lock files #905

Open
jpn-- opened this issue Oct 29, 2024 · 0 comments
Open

Investigate UV and/or Pixi for cross-platform lock files #905

jpn-- opened this issue Oct 29, 2024 · 0 comments
Labels
Feature New feature or request Usability Changes that improve usability

Comments

@jpn--
Copy link
Member

jpn-- commented Oct 29, 2024

UV and Pixi are relatively new tools in the Python ecosystem, but they offer significant potential for improving the performance and efficiency of installing and using ActivitySim.

Let's delve into how these tools could be beneficial:

UV (Universal Resolver)

Dependency Management: UV can streamline the process of managing and resolving dependencies. This is crucial for cross-platform projects, ensuring consistent behavior across different environments.
Performance Optimization: By optimizing package installation and dependency resolution, UV can potentially reduce build times and improve overall project performance.
Reproducibility: UV can help ensure that your project is reproducible by creating lockfiles that capture the exact versions of dependencies used. This is vital for sharing your work and maintaining consistent results over time.

Pixi

Reproducible Scientific Workflows: Pixi is designed to make scientific workflows more reproducible. This can be particularly useful for ActivitySim, where reproducibility is essential for validating results and sharing methodologies.
Cross-Platform Compatibility: Pixi aims to provide a consistent environment for running Python projects across different platforms. This can be helpful for ensuring that ActivitySim models work reliably on various systems.
Performance Improvements: While not directly focused on performance, Pixi's emphasis on reproducibility and efficient dependency management can indirectly contribute to improved performance by reducing overhead and ensuring optimal configurations.

Specific Use Cases:

Dependency Management: Use UV to manage complex dependencies, especially if your project involves many libraries for data analysis, machine learning, and visualization.
Performance Optimization: Experiment with UV to see if it can reduce build times and improve overall project performance.
Reproducibility: Use Pixi to create reproducible workflows, making it easier to share your models and results with collaborators or stakeholders.
Cross-Platform Compatibility: Leverage Pixi to ensure your project runs smoothly on different operating systems and hardware configurations.

(This issue written with the help of Google Gemini.)

@jpn-- jpn-- added this to Phase 10A Oct 29, 2024
@jpn-- jpn-- converted this from a draft issue Oct 29, 2024
@jpn-- jpn-- added Feature New feature or request Usability Changes that improve usability labels Oct 29, 2024
@joecastiglione joecastiglione moved this to Punt in Phase 10A Nov 5, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Feature New feature or request Usability Changes that improve usability
Projects
Status: Punt
Development

No branches or pull requests

1 participant