Skip to content

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
    • Help
    • Support
    • Submit feedback
    • Contribute to GitLab
  • Sign in
conda
conda
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Labels
    • Milestones
  • Merge Requests 1
    • Merge Requests 1
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
  • Analytics
    • Analytics
    • CI / CD
    • Repository
    • Value Stream
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • bob
  • condaconda
  • Merge Requests
  • !462

Merged
Opened Dec 02, 2020 by Vincent POLLET@vpollet
  • Report abuse
Report abuse

Fix sub-packages dependency specification

  • Overview 8
  • Commits 2
  • Pipelines 2
  • Changes 1

This merge request aims to solve the issue identified in !461 (closed). The work there got a bit side-tracked trying to change to much of the recipe, thus this merge request which should tackle the issue directly.

Issue:
Currently build opencv package has an unsatisfiable dependency on py-opencv:
Problem: nothing provides py-opencv 4.5.0 py37h1209919_0 needed by opencv-4.5.0-py37_0
The py-opencv package that is build is the following:
py-opencv 4.5.0 py37h73dd053_0 bobconda.lab.idiap.ch/software/bob/conda/linux-64 1 MB which doesn't match the requirement from opencv.

Building the recipe locally with bdt build -vvv --stable -m conda_build_config.yaml conda/opencv would not reproduce the issue: the local opencv package depended on py-opencv with correct hash.

As far as I know the package hash is computed from the list of its dependencies which versions do matter for binary compatibility doc. Therefore by adding unused dependencies to py-opencv you can get a different hash for it, however the opencv dependency would still be unchanged.

Solution:
Issue appears to be that py-opencv dependency of opencv gets wrongfully pinned as the result of the wrong usage of the pin_subpackage function in run_exports sections of the subpackages. As stated in the doc:

  • pin_subpackage should be used in run and/or test requirements to refer to a subpackage built by the parent recipe elsewhere in the recipe.

  • run_exports sections are used to automatically put the package in the run-time dependency of any other package that has this package as a host and/or build dependency.

Edited Dec 16, 2020 by Vincent POLLET
Assignee
Assign to
None
Milestone
None
Assign milestone
Time tracking
0
Labels
None
Assign labels
  • View project labels
Reference: bob/conda!462

Cherry-pick this merge request

Switch branch
Cancel
A new branch will be created in your fork and a new merge request will be started.