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

managing extra dependencies #39

Open
edublancas opened this issue Apr 4, 2023 · 0 comments
Open

managing extra dependencies #39

edublancas opened this issue Apr 4, 2023 · 0 comments

Comments

@edublancas
Copy link
Collaborator

edublancas commented Apr 4, 2023

As our testing suite becomes more complex, we must add more dependencies for running the tests. For example, JupySQL now has a suite of integration tests requiring complex dependencies to be installed (see ploomber/jupysql#344)

We're currently managing extra dependencies in the setup.py file, which causes problems because some dependencies require C/fortran libraries. Hence, we must include pre-setup steps to ensure this gets installed properly. The same applies to installing documentation dependencies.

A better solution would be to use conda files (e.g., environment.integration.yml) for this, since installing these dependencies with conda is a lot easier.

e.g., we could run:

# setup development environment (basic dependencies for unit test)
pkgmt setup

# include integration testing dependencies
pkgmt setup --extras integration

# include documentation dependencies
pkgmt setup --extras doc

# include documentation and integration
pkgmt setup --extras doc --extras integration

With these change, setup.py will only contain dependencies required for end-users, while all development dependencies will be moved as environment.X.yml files.

We might still have optional dependencies in setup.py but those should be to enable optional features.

Note that if we move forward with this, we should document it in the contributing guide.

Note: don't forget to remove the pip install awscli in the rreadthedocs config

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant