Skip to content
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

Add boost-multi library #21179

Open
wants to merge 39 commits into
base: master
Choose a base branch
from
Open

Conversation

correaa
Copy link

@correaa correaa commented Nov 17, 2023

Specify library name and version: b-multi/0.80.1

This is an attempt to the add the Multi library to Conan.
https://gitlab.com/correaa/boost-multi"


@CLAassistant
Copy link

CLAassistant commented Nov 17, 2023

CLA assistant check
All committers have signed the CLA.

@conan-center-bot

This comment has been minimized.

@uilianries
Copy link
Member

@correaa Thank you for your first contribution!

Please consider the follow points:

Please, read the contribution guide to get more information: /~https://github.com/conan-io/conan-center-index/tree/master/docs/adding_packages

@correaa
Copy link
Author

correaa commented Nov 17, 2023

done.

Regarding exporting local sources, I don’t understand what it means.
i believe my submission follows the header only template.
Am I missing something?

@correaa
Copy link
Author

correaa commented Nov 17, 2023

got it. i had a typo in the filename and i had to remove version number.

anything else?

@conan-center-bot

This comment has been minimized.

1 similar comment
@conan-center-bot

This comment has been minimized.

@conan-center-bot

This comment has been minimized.

@conan-center-bot

This comment has been minimized.

@conan-center-bot

This comment has been minimized.

@correaa
Copy link
Author

correaa commented Nov 18, 2023

I see "403 Forbidden" when I try to look at the detail of the failed steps, such as ci3/conan-v2/pr-merge.

@uilianries
Copy link
Member

@correaa The output log is only available by the Bot comment above: #21179 (comment)

Those links listed on Gthub Check Status are not available.

The bot indicated that you were not in the authorized list yet, but you should be listed there now. I'll restart the CI build, it should run good now.

@conan-center-bot

This comment has been minimized.

@conan-center-bot
Copy link
Collaborator

Conan v1 pipeline ❌

Failure in build 23 (ef57107f90930ded9023d8a2529a071c2e5e40a4):

  • boost-multi/0.80.1:
    CI failed to create some packages (All logs)

    Logs for packageID 5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9:
    [settings]
    arch=x86_64
    build_type=Release
    compiler=gcc
    compiler.libcxx=libstdc++11
    compiler.version=9
    os=Linux
    
    [...]
    [build_requires]
    [env]
    [conf]
    tools.system.package_manager:mode=install
    tools.system.package_manager:sudo=True
    
    boost-multi/0.80.1: Forced build from source
    Installing package: boost-multi/0.80.1
    Requirements
        boost-multi/0.80.1 from local cache - Cache
    Packages
        boost-multi/0.80.1:5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9 - Build
    
    Installing (downloading, building) binaries...
    [HOOK - conan-center.py] pre_source(): [IMMUTABLE SOURCES (KB-H010)] OK
    boost-multi/0.80.1: Configuring sources in /home/conan/w/prod-v1/bsr/69052/cffda/.conan/data/boost-multi/0.80.1/_/_/source/src
    boost-multi/0.80.1: 
    [HOOK - conan-center.py] post_source(): [LIBCXX MANAGEMENT (KB-H011)] OK
    [HOOK - conan-center.py] post_source(): [CPPSTD MANAGEMENT (KB-H022)] OK
    [HOOK - conan-center.py] post_source(): [SHORT_PATHS USAGE (KB-H066)] OK
    boost-multi/0.80.1: Building your package in /home/conan/w/prod-v1/bsr/69052/cffda/.conan/data/boost-multi/0.80.1/_/_/build/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9
    boost-multi/0.80.1: Generator txt created conanbuildinfo.txt
    boost-multi/0.80.1: Aggregating env generators
    [HOOK - conan-center.py] pre_build(): [FPIC MANAGEMENT (KB-H007)] 'fPIC' option not found
    [HOOK - conan-center.py] pre_build(): [FPIC MANAGEMENT (KB-H007)] OK
    boost-multi/0.80.1: Calling build()
    boost-multi/0.80.1: Package '5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9' built
    boost-multi/0.80.1: Build folder /home/conan/w/prod-v1/bsr/69052/cffda/.conan/data/boost-multi/0.80.1/_/_/build/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/build-release
    boost-multi/0.80.1: Generated conaninfo.txt
    boost-multi/0.80.1: Generated conanbuildinfo.txt
    boost-multi/0.80.1: Generating the package
    boost-multi/0.80.1: Package folder /home/conan/w/prod-v1/bsr/69052/cffda/.conan/data/boost-multi/0.80.1/_/_/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9
    boost-multi/0.80.1: Calling package()
    boost-multi/0.80.1: Copied 110 '.hpp' files
    [HOOK - conan-center.py] post_package(): [DEFAULT PACKAGE LAYOUT (KB-H013)] OK
    [HOOK - conan-center.py] post_package(): [MATCHING CONFIGURATION (KB-H014)] OK
    [HOOK - conan-center.py] post_package(): [SHARED ARTIFACTS (KB-H015)] OK
    [HOOK - conan-center.py] post_package(): [STATIC ARTIFACTS (KB-H074)] OK
    [HOOK - conan-center.py] post_package(): [EITHER STATIC OR SHARED OF EACH LIB (KB-H076)] OK
    [HOOK - conan-center.py] post_package(): [PC-FILES (KB-H020)] OK
    [HOOK - conan-center.py] post_package(): [CMAKE-MODULES-CONFIG-FILES (KB-H016)] OK
    [HOOK - conan-center.py] post_package(): [PDB FILES NOT ALLOWED (KB-H017)] OK
    [HOOK - conan-center.py] post_package(): [LIBTOOL FILES PRESENCE (KB-H018)] OK
    [HOOK - conan-center.py] post_package(): [MS RUNTIME FILES (KB-H021)] OK
    [HOOK - conan-center.py] post_package(): [SHORT_PATHS USAGE (KB-H066)] OK
    [HOOK - conan-center.py] post_package(): [MISSING SYSTEM LIBS (KB-H043)] OK
    [HOOK - conan-center.py] post_package(): [APPLE RELOCATABLE SHARED LIBS (KB-H077)] OK
    boost-multi/0.80.1: WARN: This conanfile has no build step
    [HOOK - conan-center.py] post_package(): ERROR: [PACKAGE LICENSE (KB-H012)] No 'licenses' folder found in package: /home/conan/w/prod-v1/bsr/69052/cffda/.conan/data/boost-multi/0.80.1/_/_/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9  (/~https://github.com/conan-io/conan-center-index/blob/master/docs/error_knowledge_base.md#KB-H012-PACKAGE-LICENSE) 
    ERROR: [HOOK - conan-center.py] post_package(): Some checks failed running the hook, check the output
    

Note: To save resources, CI tries to finish as soon as an error is found. For this reason you might find that not all the references have been launched or not all the configurations for a given reference. Also, take into account that we cannot guarantee the order of execution as it depends on CI workload and workers availability.

Comment on lines 2 to 4
"0.80.1":
url: https://gitlab.com/correaa/boost-multi/-/archive/v0.80.1/boost-multi-v0.80.1.tar.gz
sha256: 7d1ebee123783e0fadfb58a0f55309148d63295fcb4b9c5442d851e3578cad1e
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
"0.80.1":
url: https://gitlab.com/correaa/boost-multi/-/archive/v0.80.1/boost-multi-v0.80.1.tar.gz
sha256: 7d1ebee123783e0fadfb58a0f55309148d63295fcb4b9c5442d851e3578cad1e
"0.83.0":
url: "https://gitlab.com/correaa/boost-multi/-/archive/v0.83.0/boost-multi-v0.83.0.tar.gz"
sha256: "52324a01e25fd66a32c8bf88f41940ba6364fd218cfab53b7ec5c63115dea1bf"

I would recommend updating to 0.83.0, so the LICENSE file will be available.

@correaa
Copy link
Author

correaa commented Dec 11, 2023

Is it possible to have latest version of the library? is it not recommended? Ideally, I think the best is to have at least one named (versioned) version and latest (from master branch).

Is that ok?

@uilianries
Copy link
Member

@correaa You are the author, tell me you 😉

There is recommendation about version in CCI: /~https://github.com/conan-io/conan-center-index/blob/master/docs/adding_packages/conanfile_attributes.md#version

The recommendation is adding only the latest version, then add old versions in case someone needs and open an issue asking. Each version could generate +100 packages, so is important save some resource from CI when possible.

Consuming directly from master is allowed for those cases when the project is quiet for a long period, or, the project does not provide tags/releases.

In your case, I would recommend providing the latest version. In case you have something more to be added from master, you could generate a patch version in your project, then use it.

@correaa
Copy link
Author

correaa commented Dec 14, 2023

So a way to do this would be to always have a version (branch) called latest that is quasi in sync with master (e.g. manually maintained in github/gitlab) and add only that one to Conan?

After that what would remain to be done?

@uilianries
Copy link
Member

So a way to do this would be to always have a version (branch) called latest that is quasi in sync with master (e.g. manually maintained in github/gitlab) and add only that one to Conan?

Not mandatory, but preferable.

After that what would remain to be done?

Just update config.yml and conandata.yml with the new release. The CI should re-build the PR automatically.

Signed-off-by: Uilian Ries <uilianries@gmail.com>
Signed-off-by: Uilian Ries <uilianries@gmail.com>
Signed-off-by: Uilian Ries <uilianries@gmail.com>
@uilianries
Copy link
Member

@correaa Hello! I made a few changes in your PR, so we can merge it. Sorry for the delay!

  • Bump the project version to 0.86.0
  • Simplified the test package to a minimal validation, only to check if we can import headers.
  • Updated the Conan recipe to use Conan 2.x
  • Extended to use both #include "multi/array.hpp" and "boost/multi/array.hpp"

Please, feel free to comment about those changes and give your feedback! Regards.

@uilianries uilianries removed the Failed label Dec 10, 2024
Copy link
Member

@uilianries uilianries left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. The recipe looks to be aligned to boost-multi 0.86.0

Thank you for your PR and for providing your project as a Conan package.

@correaa
Copy link
Author

correaa commented Dec 10, 2024

On the contrary, thank you for finishing this PR and sorry for dropping it before.

Is it possible/recommended to install the current master instead or in addition to 0.86?

what is the best way to test in my own CI if the conan package is
working? (I assume that conan doesn't test that the library is well installed, does it?)

@uilianries
Copy link
Member

@correaa Thank you for your questions.

Is it possible/recommended to install the current master instead or in addition to 0.86?

In ConanCenterIndex we prefer always using the released versions, as they are controlled based on tags. Still, there are exceptions for those projects that do not provide a release for a long period or are barely maintained, both are not your case, as your project looks active and healthy. So it would not be possible in ConanCenterIndex.

what is the best way to test in my own CI if the conan package is working?

The recipe in ConanCenterIndex right now for your project is really simple, as it only copies headers and license to the package and only build a small test package. You always can open a new issue asking for a version bump, as you have a new release, or even open a PR directly. You really do not need to predict the recipe for your project, but it's very kind, as most of cases we follow the upstream only.

Still, if you wish to have a recipe pointing to the master branch, you could add a conanfile.py directly to your repository, and it should build the current branch. I could send a PR later to your project if you want.

The Conan documentation shows how to build a Conan recipe when the source code is on the same place: https://docs.conan.io/2/tutorial/creating_packages/create_your_first_package.html

I assume that conan doesn't test that the library is well installed, does it?

It does, the test_package is designed to validate the packaged headers, and libraries and check the linkage. It's not designed to run unit tests or feature validation, as it should be very minimal.

The current test package in this PR imports headers, these are packaged by Conan. The license file, copied from your project, is in the licenses folder. We do not test the license file in the test package, but we have a hook in the CI that does it just after packaging the source files.

I hope I could clarify to you how the packaging project process works in ConanCenterIndex.

@correaa
Copy link
Author

correaa commented Dec 10, 2024

All this is great. Thank you.

I will ask if any of my users want to use the library through Conan.

LGTM, please merge when ready.

Copy link
Contributor

This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@github-actions github-actions bot added the stale label Jan 11, 2025
@correaa
Copy link
Author

correaa commented Jan 11, 2025

I though the next step was to merge this. Do I need to do something before that?

@github-actions github-actions bot removed the stale label Jan 12, 2025
Copy link
Contributor

This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@correaa
Copy link
Author

correaa commented Feb 12, 2025

Please merge if you think it is appropriate.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants