Skip to content
This repository has been archived by the owner on Aug 29, 2023. It is now read-only.

Improve package dependency management #139

Open
5 tasks
forman opened this issue Mar 1, 2017 · 1 comment
Open
5 tasks

Improve package dependency management #139

forman opened this issue Mar 1, 2017 · 1 comment

Comments

@forman
Copy link
Member

forman commented Mar 1, 2017

Dependencies should be expressed such that PACKAGE>=MAJOR.MINOR[.PATCH]<MAJOR.(MINOR+1) achieving API compatibility according to SemVer. PATCH should ideally be omitted 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).

If our dependency configuration is too strict, cate will tend to downgrade already installed packages when installed into a user's existing Python environment.

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:

  • setupy.py
  • .travis.yml
  • environment.yml, currently used by Sphinx only
  • Conda recipes in cate-conda
  • Constructor installer configuration in cate-installer

This issue is directly related to #131.

@forman
Copy link
Member Author

forman commented Mar 1, 2017

While fixing this, we also should try moving to Python 3.6 to be up to date.

@forman forman modified the milestones: IPM5, IPM4 Apr 25, 2017
@forman forman assigned forman and unassigned hans-permana Apr 25, 2017
@forman forman modified the milestones: IPM6, IPM5 Jul 3, 2017
@forman forman modified the milestones: IPM6, IRM7 Sep 21, 2017
@forman forman removed this from the IRM7 milestone Mar 15, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

3 participants