Skip to content

Commit

Permalink
Merge branch 'openblas/modernize-for-v2' of github.com:joakimono/cona…
Browse files Browse the repository at this point in the history
…n-center-index into openblas/modernize-for-v2
  • Loading branch information
joakimono committed May 3, 2023
2 parents fc62160 + b58023d commit 5a75133
Show file tree
Hide file tree
Showing 346 changed files with 5,294 additions and 2,691 deletions.
9 changes: 9 additions & 0 deletions .c3i/authorized_users.yml
Original file line number Diff line number Diff line change
Expand Up @@ -1124,3 +1124,12 @@ authorized_users:
- voronaam
- MatusKysel
- Sfletche132
- stefanpantic-pdftools
- silvergasp
- doocman
- gouarin
- gegles
- jusito
- pwqbot
- ilya-lavrenov
- aubreynicoll
16 changes: 6 additions & 10 deletions docs/adding_packages/dependencies.md
Original file line number Diff line number Diff line change
Expand Up @@ -174,18 +174,14 @@ for consumer, we do impose some limits on Conan features to provide a smoother f
* [`python_requires`](https://docs.conan.io/1/reference/conanfile/other.html#python-requires) are not allowed.

### Version Ranges

Version ranges are a useful Conan feature, [documentation here](https://docs.conan.io/1/versioning/version_ranges.html). With the introduction of Conan 2.0, we are currently working to allow the use of version ranges and are allowing this for a handful of dependencies. Currently, these are:
* OpenSSL: `[>=1.1 <4]` for libraries known to be compatible with OpenSSL 1.x and 3.x
* CMake: `[>3.XX <4]`, where `3.XX` is the minimum version of CMake required by the relevant build scripts.

Version ranges are a useful Conan feature, [documentation here](https://docs.conan.io/1/versioning/version_ranges.html). However,
in the context of ConanCenter they pose a few key challenges when being used generally to consume packages, most notably:
Conan maintainers may introduce this for other dependencies over time.

* Non-Deterministic `package-id`: With version ranges the newest compatible package may yield a different `package_id` than the one built
and published by ConanCenter resulting in frustrating error "no binaries found". For more context
see [this excellent explanation](https://github.com/conan-io/conan-center-index/pull/8831#issuecomment-1024526780).

* Build Reproducibility: If consumers try to download and build the recipe at a later time, it may resolve to a different package version
that may generate a different binary (that may or may not be compatible). In order to prevent these types of issues, we have decided to
only allow exact requirements versions. This is a complicated issue,
[check this thread](https://github.com/conan-io/conan-center-index/pull/9140#discussion_r795461547) for more information.
Outside of the cases outlined above, version ranges are not allowed in ConanCenter recipes.

## Handling "internal" dependencies

Expand Down
5 changes: 2 additions & 3 deletions docs/consuming_recipes.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,8 @@ There can be several causes if a recipe (a new revision) might stopped to work i
If your Conan client is not new enough,
Conan will fail to parse the recipe and will raise a cryptic Python syntax error.

- **New Conan Version**: Conan keeps evolving and adding new features, especially on its road to Conan 2.0,
and ConanCenter is committed in this [roadmap](v2_roadmap.md) as well, and tries to prepare the user base to these
new features in order to ease the migration to new versions.
- **New Conan Version**: Conan keeps evolving and adding new features, and ConanCenter is committed in this
as well, and tries to prepare the user base to these new features in order to ease the migration to new versions.

New recipe revisions can take into account changes that are introduced in new Conan client
version, sometimes these changes modify some experimental behavior without modifying recipe syntax.
Expand Down
7 changes: 4 additions & 3 deletions docs/faqs.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ This section gathers the most common questions from the community related to pac
* [What is the policy for supported python versions?](#what-is-the-policy-for-supported-python-versions)
* [How to package libraries that depend on proprietary closed-source libraries?](#how-to-package-libraries-that-depend-on-proprietary-closed-source-libraries)
* [How to protect my project from breaking changes in recipes?](#how-to-protect-my-project-from-breaking-changes-in-recipes)
* [Why are version ranges not allowed?](#why-are-version-ranges-not-allowed)
* [What's the policy on version ranges?](#whats-the-policy-on-version-ranges)
* [How to consume a graph of shared libraries?](#how-to-consume-a-graph-of-shared-libraries)
* [How to watch only specific recipes?](#how-to-watch-only-specific-recipes)
* [Is it possible to disable Pylint?](#is-it-possible-to-disable-pylint)
Expand Down Expand Up @@ -369,9 +369,10 @@ need to modify your project if the recipe changes the binaries, flags,... it pro
To isolate from these changes there are different strategies you can follow.
Keep reading in the [consuming recipes section](consuming_recipes.md#isolate-your-project-from-upstream-changes).

## Why are version ranges not allowed?
## What's the policy on version ranges?

See [Dependencies Version Ranges](adding_packages/dependencies.md#version-ranges) for details.
Version ranges are currently allowed on a handful of dependencies, but not for general use.
See [Dependencies Version Ranges](adding_packages/dependencies.md#version-ranges) for additional details.

## How to consume a graph of shared libraries?

Expand Down
2 changes: 1 addition & 1 deletion docs/v2_linter.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
* [Import ConanFile from `conan`](#import-conanfile-from-conan)
* [Import tools from `conan`](#import-tools-from-conan)<!-- endToc -->

On our [path to Conan v2](v2_roadmap.md) we are leveraging on custom Pylint rules. This
We are leveraging on custom Pylint rules. This
linter will run for every pull-request that is submitted to the repository and will
raise some warnings and errors that should be addressed in order to migrate the
recipes to Conan v2.
Expand Down
Loading

0 comments on commit 5a75133

Please sign in to comment.