Conan returns package data for the most recently created version of the package, rather than the version of the package which was requested.
Summary
GitLab seems to return Conan package data for the most recently created version of the package, rather than the version of the package which was requested.
With the Conan recipe structure being: name/version@user/channel GitLab only seems to use the channel when handling pre-built packages. When dealing with recipe information (such as dependencies) GitLab seems to ignore the channel altogether, and just use the latest conanfile which matches .name/version@user
tested and verified using Conan 1.28 & Conan 1.11.2 against GitLab 13.2.3-ee.
Example: If the package ConanPackageA/1.0@gitlab/stable
is created with a dependency on ConanPackageB
, and the package ConanPackageA/1.0@gitlab/test
(same name and version but different channel) is created with a dependency on ConanPackageC
, Then running conan info ConanPackageA/1.0@gitlab/stable
will show the stable
channel as incorrectly having a dependency on ConanPackageC
.
Steps to reproduce
(How one can reproduce the issue - this is very important)
Example Project
- we created this project https://gitlab.com/Racer3D/conan-package-verification The pipeline goes through the steps of verifying the problem.
What is the current bug behavior?
(What actually happens)
What is the expected correct behavior?
(What you should see instead)
Relevant logs and/or screenshots
(Paste any relevant logs - please use code blocks (```) to format console output, logs, and code as it's tough to read otherwise.)
Output of checks
(If you are reporting a bug on GitLab.com, write: This bug happens on GitLab.com)
Results of GitLab environment info
Expand for output related to GitLab environment info
(For installations with omnibus-gitlab package run and paste the output of: `sudo gitlab-rake gitlab:env:info`) (For installations from source run and paste the output of: `sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=production`)
Results of GitLab application Check
Expand for output related to the GitLab application check
(For installations with omnibus-gitlab package run and paste the output of:
sudo gitlab-rake gitlab:check SANITIZE=true
)(For installations from source run and paste the output of:
sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production SANITIZE=true
)(we will only investigate if the tests are passing)
Possible fixes
(If you can, link to the line of code that might be responsible for the problem)