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

[CICD] Improving CI/CD for Selective Dependency Installation #926

Open
oualib opened this issue Nov 23, 2023 · 2 comments
Open

[CICD] Improving CI/CD for Selective Dependency Installation #926

oualib opened this issue Nov 23, 2023 · 2 comments
Assignees
Labels
GitHub - Description | CI.CD | Action Issues related to any GitHub pages (README...), CI/CD or action.

Comments

@oualib
Copy link
Member

oualib commented Nov 23, 2023

Description:

This epic focuses on enhancing the Continuous Integration/Continuous Deployment (CI/CD) pipeline for VerticaPy, allowing users to choose specific dependencies based on their requirements.

Tasks:

  • Enable users to choose among multiple options when installing VerticaPy dependencies.
  • Implement a mechanism to install only the needed modules based on user preferences.

Definition of Done:

  • Users can install VerticaPy with a comprehensive set of dependencies using pip install verticapy.
  • Users can selectively install only the necessary modules based on their preferences using pip install verticapy[option].

Contributions:

Contributions to this important enhancement are highly welcome! Whether it's implementing the mechanism for selecting dependencies or ensuring smooth functionality in both installation options, your participation is key. Let's collaborate to make VerticaPy installation more flexible! Thank you.

@oualib oualib added the GitHub - Description | CI.CD | Action Issues related to any GitHub pages (README...), CI/CD or action. label Nov 23, 2023
@oualib oualib added this to the VerticaPy 1.0.1 milestone Nov 23, 2023
@oualib
Copy link
Member Author

oualib commented Mar 10, 2024

@afard I think we have to limit the dependencies and make the structure lighter with some useful options. Do you have any ideas so we can easily close this issue with a nice solution?

@afard
Copy link
Collaborator

afard commented Mar 12, 2024

Currently, we have four category for dependencies.

The first one is listed in requirements-testing.txt. This is the list of packages we need to run our tests. It is specifically used in tox.ini and .github/workflows/pylint.yml.

The second category is the packages we need for development. They are listed in requirements-dev.txt and used in .github/workflows/pylint.yml.

IIUC, this issue is more about the last two categories "install_requires" and "extras_require" listed in setup.py.

  • Every package in the "install_requires" list needs to be installed in order to have VerticaPy successfully installed. Therefore, it should contain only the absolutely necessary packages. Nevertheless, we can condition the necessity of each package based on python_version or platform_system.
  • Optional dependencies for installing VerticaPy are listed as "extras_require". Right now, we have defined only "all" group in this category. This group contains all optional packages. We can add several new groups with smaller subset of packages representing the needs of different group of users.

In addition to above notes, we can also drop usage of setup.py in favor of pyproject.toml. It is a new option (and the encouraged one) to configure Python builds, made available first in pip version 10.0.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
GitHub - Description | CI.CD | Action Issues related to any GitHub pages (README...), CI/CD or action.
Projects
Status: In Progress
Development

No branches or pull requests

2 participants