Skip to content

Basic layout of Problem #1

@CJ-Wright

Description

@CJ-Wright

Building software on CI with complex/changing deps can be rather difficult as one needs to get dependencies from many different (potentially mutually exclusive) sources. I see to major problems here

  1. Package sources: One may want to install some packages from conda, some from pip, some from pip+git and all the combinations there of. This is crucial as one may need the software to be compatible with stable code, rc code, and bleeding edge code simultaneously.
  2. Pinning: One may also need to build against a pinning panoply where pins could be mutually exclusive. Again the pins could come from all sorts of places (and potentially not all places).

Potential structure:

<package name>:
    pip: <pip name>
        versions: [1, 2, 3]
    pip+git: <pip+git url>
    conda: <conda name>
        versions: [1, 5]
...

We may want settings like, pinning=latest which goes with the latest pins and source=cutting edge which goes with as many source installs as possible. We may want a build_all option which reads the requirements, finds all the unique potential builds and runs them all down.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions