-
Notifications
You must be signed in to change notification settings - Fork 364
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[dev2] Profiles and Configuration Files #2947
[dev2] Profiles and Configuration Files #2947
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good start, just added a few notes of things to remove, being dropped in 2.0.
b680fde
to
19a0f4b
Compare
19a0f4b
to
dc86bac
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tons of work here, thank you!
However I see some innaccuracies, mistakes, usage of removed 1.X functionality, etc. It would be better to write from scratch, and little by little than trying to migrate Conan 1.X docs, they are too outdated to be ported.
.. _reference_config_files_client_certificates: | ||
|
||
|
||
Client certificates |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is not a first level item. It is just 1 config item from global.conf
. It is not at the same level as settings, profiles, etc.
@@ -0,0 +1,50 @@ | |||
.. _reference_config_files_conandata_yml: | |||
|
|||
conandata.yml |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Uhm, I'd probably do not put this as config-file. I'd move this section to conanfile.py
section.
|
||
.. code-block:: bash | ||
|
||
$ conan create . demo/testing -pr=myprofile |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This demo/testing
is not valid syntax anymore
@@ -0,0 +1,519 @@ | |||
.. _reference_config_files_default_profile: | |||
|
|||
profiles/default |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This section is not about profiles/default
, it should be just profiles
os=Macos | ||
|
||
|
||
Use ``$PROFILE_DIR`` in your profile and it will be replaced with the absolute path to |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
PROFILE_DIR deprecated in 2.0, use jinja injected variable!
Configuration file template | ||
--------------------------- | ||
|
||
Available since: `1.46.0 <https://github.com/conan-io/conan/releases/tag/1.46.0>`_ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Remove
Configuration data types | ||
------------------------ | ||
|
||
Available since: `1.46.0 <https://github.com/conan-io/conan/releases/tag/1.46.0>`_ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Remove
|
||
.. _conf_in_recipes: | ||
|
||
Configuration in your recipes |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Better link to somewhere else under conanfile
section
As you can see, the possible values ``settings`` can take are restricted in the same file. This is done to ensure matching naming and | ||
spelling as well as defining a common settings model among users and the OSS community. | ||
If a setting is allowed to be set to any value, you can use ``ANY``. | ||
If a setting is allowed to be set to any value or it can also be unset, you can use ``[None, ANY]``. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Modern syntax is yaml, using null
, not None
- It is only used by the new build integrations in :ref:`conan_tools_cmake` and :ref:`conan_tools_microsoft`, but not the previous ones. | ||
- At the moment it implements a ``compatible_packages`` fallback to Visual Studio compiled packages, that is, previous existing binaries | ||
compiled with ``settings.compiler="Visual Studio"`` can be used for the ``msvc`` compiler if no binaries exist for it yet. | ||
This behavior can be opted-out with ``core.package_id:msvc_visual_incompatible`` :ref:`reference_config_files_global_conf` configuration. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LEgacy, remove
Conan supports client TLS certificates. You can configure the path to your existing *Cacert* file and/or your client | ||
certificate (and the key) using the following configuration variables: | ||
|
||
* ``core.net.http:cacert_path``: Path containing a custom Cacert file. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is it expected to be in PEM format, or something else? it's not clear
|
||
Conan profiles allows users to set a complete configuration set for **settings**, **options**, | ||
**environment variables** (for build time and runtime context), **requirements** (and build requirements), and | ||
**configuration variables** in a file. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think it's INI file?
|
||
Another essential point to mention is the possibility of defining variables as `PATH` ones by simply putting ``(path)`` as | ||
the prefix of the variable. It is useful to automatically get the append/prepend of the `PATH` in different systems | ||
(Windows uses ``;`` as separation, and UNIX ``:``). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
how does it work in case of cross-compiling? it's not crystal clear if it just uses os.name
or self.settings.os
.
Profile includes | ||
---------------- | ||
|
||
You can include other profiles using the ``include()`` statement. The path can be relative to the current profile, absolute, or a profile |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
in this case, it's kinda unclear how do nested include()
statements work with relative paths, e.g. we have:
cat a.profile
include(../b.profile)
cat b.profile
include(../c.profile)
will it resolve to ../../c.profile
or just ../c.profile
?
Co-authored-by: SSE4 <tomskside@gmail.com>
Co-authored-by: SSE4 <tomskside@gmail.com>
I'm going to close this one and open several ones to reduce the diff. |
WIP!!