From 1d80ef324d8933bbd5bec454cc18a62c4fecce04 Mon Sep 17 00:00:00 2001 From: memsharded Date: Wed, 5 Nov 2025 13:54:51 +0100 Subject: [PATCH] warnings for local-recipes-index --- devops/devops_local_recipes_index.rst | 25 +++++++++++++++++-- .../setup_local_recipes_index.rst | 9 +++++++ 2 files changed, 32 insertions(+), 2 deletions(-) diff --git a/devops/devops_local_recipes_index.rst b/devops/devops_local_recipes_index.rst index ed551db0988a..34723f0195c2 100644 --- a/devops/devops_local_recipes_index.rst +++ b/devops/devops_local_recipes_index.rst @@ -18,6 +18,26 @@ This setup is particularly useful for: :ref:`setup_local_recipes_index`. +.. warning:: + + Using the ``local-recipes-index`` feature from a fork of ``conan-center-index`` Github repository, + without using a package server or relying on the ConanCenter package server can easily result in + missing dependencies due to old versions being removed by upstream ``conan-center-index``. The + recommendations are: + + - Use a package server to store your recipes and binaries built from your fork, and use it to resolve + dependencies. + - If not using a package server, at least consider adding ``conancenter`` as remote besides your + ``local-recipes-index``, possibly with the ``recipes-only`` argument enabled, to be able to fetch + those older versions removed from the source from it. + - If you are not using a server, then it becomes necessary to move forward with the ``local-recipes-index`` + source repository. If a version is removed, the requirements to that old version must be updated to + existing versions. + - Another alternative is managing your fork accordingly, to avoid removals, not merging from upstream, + applying only selective patches. + + + Building Binaries from a private `conan-center-index` fork ---------------------------------------------------------- @@ -229,8 +249,9 @@ Several important points should be considered when using this new feature: packages for regular use. - Also, note that a server remote can retain a history of changes storing multiple recipe - revisions. In contrast, a `local-recipes-index` remote can only represent a single - snapshot at any given time. + versions and revisions. In contrast, a `local-recipes-index` remote can only represent a single + snapshot at any given time. That means that it will be impossible to use or resolve to older + recipe revisions or to old versions that have been removed from the source repository. - ConanCenter does not use ``python-requires``, as this is a mechanism more intended for first-party packages. Using ``python-requires`` in a ``local-recipes-index`` repository diff --git a/tutorial/conan_repositories/setup_local_recipes_index.rst b/tutorial/conan_repositories/setup_local_recipes_index.rst index b572b600d5db..37d9adaa9527 100644 --- a/tutorial/conan_repositories/setup_local_recipes_index.rst +++ b/tutorial/conan_repositories/setup_local_recipes_index.rst @@ -15,6 +15,15 @@ upload packages or store binaries. The purpose of this remote is: For detailed setup and usage instructions, see the dedicated section in the Conan DevOps Guide :ref:`devops_local_recipes_index`. + +.. warning:: + + Recall that the ``local-recipes-index`` is a "source" repository, and as such it has + several limitations with respect to full package servers. Please read carefully the + instructions and warnings in :ref:`devops_local_recipes_index` before using this + type of remote. + + Setup -----