binbashar / leverage

Binbash Leverage CLI intended to orchestrate Leverage Reference Architecture for AWS (www.binbash.co/leverage)
https://pypi.org/project/leverage/
Apache License 2.0
17 stars 2 forks source link

Enhancement | Transition from Pipenv to Poetry for Dependency Management #253

Closed borland667 closed 4 months ago

borland667 commented 6 months ago

Enhancement: Integrate Pyenv and Poetry for Superior Python Version and Dependency Management

Current Situation

Our project currently relies on pipenv for both Python version management and dependency management. While pipenv has been a useful tool, we've identified opportunities to enhance our workflow and address certain limitations by adopting pyenv for version management and poetry for dependency management.

Problem

Pipenv offers a combined solution for managing Python versions and dependencies, but it comes with drawbacks such as slower dependency resolution, less efficient handling of multiple Python versions, and a more complex project setup compared to what pyenv and poetry can offer together.

Expected Behavior

Integrating pyenv and poetry would streamline our development workflow by leveraging the best features of both tools—pyenv's flexible Python version management and poetry's efficient dependency handling. This approach is expected to enhance project setup, improve build times, and provide a more intuitive package publishing process.

Proposed Solution and Benefits

Implementation Steps

  1. Prepare for Transition: Outline the migration process from pipenv to pyenv + poetry, including converting dependency files and setting Python versions.
  2. Update Documentation: Revise the README.md and contribution guidelines to reflect the new tools and processes.
  3. Reconfigure CI/CD Pipelines: Ensure that our automated workflows use pyenv to manage Python versions and poetry for dependency installation and project tasks.
  4. Team Training and Support: Provide resources and support to help the team adapt to pyenv and poetry, highlighting the benefits and addressing any questions.

Additional Context

The decision to shift from pipenv to a combined pyenv and poetry setup stems from the need to optimize our development process, taking advantage of each tool's strengths. This enhancement is aimed at improving efficiency, reliability, and the overall developer experience.

Action Items


Feedback and suggestions on this transition are highly valued. Please share any thoughts or experiences that could help improve our approach to Python version and dependency management.