vertica / VerticaPy

VerticaPy is a Python library that exposes sci-kit like functionality to conduct data science projects on data stored in Vertica, thus taking advantage Vertica’s speed and built-in analytics and machine learning capabilities.
https://www.vertica.com/python/
Apache License 2.0
218 stars 44 forks source link

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

Open oualib opened 7 months ago

oualib commented 7 months ago

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:

Definition of Done:

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 commented 4 months ago

@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 commented 3 months ago

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.

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.