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

Improve package dependency management #1

Open
2 of 5 tasks
hans-permana opened this issue Mar 1, 2017 · 0 comments
Open
2 of 5 tasks

Improve package dependency management #1

hans-permana opened this issue Mar 1, 2017 · 0 comments

Comments

@hans-permana
Copy link
Contributor

hans-permana commented Mar 1, 2017

This is based on the guideline written by @forman in CCI-Tools project (CCI-Tools/cate#139)

Dependencies should be expressed such that PACKAGE>=MAJOR.MINOR[.PATCH]<MAJOR.(MINOR+1) achieving API compatibility according to SemVer. PATCH should ideally be omiited if not required for some reason.

In only rare cases we should rely on a specific version such that PACKAGE=MAJOR.MINOR.PATCH. For example, this could be the consequence of fixing a dependency conflict. In any of such cases, the reason for doing so must be documented (e.g. comment line).

Any transitive dependencies should not be specified at all unless there is special need for this. A dependency is non-transitive if we import it explicitly in Python code or we need it for some special behaviour (e.g. dask used by xarray) or it provides a special, dynamically loaded plugin.

These are the places where dependencies are declared. All configurations should share the same dependency specifications:

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

No branches or pull requests

1 participant