conan: [bug] Remote searches for channel-promoted packages are broken since 1.30.0

It seems that PR #7673 broke search queries which used to work in Conan < 1.30.0. We use the copy feature in Artifactory UI to promote packages from master to release channel. In previous versions Conan sent queries like

https://server/artifactory/api/conan/euler-conan-local/v2/conans/search?q=euler_threading&ignorecase=False

These returned all of the available packages with that name and filtered for channel on the client side. Now I see queries like

https://server/artifactory/api/conan/euler-conan-local/v2/conans/search?q=euler_threading%2F%2A%40sick%2Frelease&ignorecase=False

This works fine for packages which were uploaded with that exact user/channel combination. But when a package is promoted from channel master to release it is not part of the result for the query containing release in the expression. When I change the query to search for master (the original channel before promotion) the package is listed in the results but with the new (promoted) channel.

We’re on Artifactory 6.21.0.

About this issue

  • Original URL
  • State: closed
  • Created 4 years ago
  • Comments: 21 (21 by maintainers)

Most upvoted comments

Hi @jasal82

https://github.com/conan-io/conan/pull/7938 has finalized the implementation of the idempotent download + upload, will be available in Conan 1.31. Can be tested now from the develop branch (or PyPI testing). This will allow the promotions in the client side without risk of breaking the compressed .tgz. I hope this is a viable workaround until the Artifactory bug is fixed.

Thanks for your efforts. Promotion via the client is something that I’d like to avoid. It unpacks and repacks the archives which is likely to introduce unwanted changes to the packages. For example you must not use a Windows client to promote Linux packages because it would break symlinks and execution flags etc.

See the updated steps above, that’s what we’re actually doing. With that version expression in place there should also be a search query involved.