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

Feature/add instinct cpp #24480

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

Conversation

RobinQu
Copy link

@RobinQu RobinQu commented Jul 1, 2024

Summary

Changes to recipe: instinct-cpp/0.1.5

Motivation

Make instinct-cpp available on conan center

Details

First recipe of instinct-cpp v0.1.5


@CLAassistant
Copy link

CLAassistant commented Jul 1, 2024

CLA assistant check
All committers have signed the CLA.

@conan-center-bot

This comment has been minimized.

@AbrilRBS AbrilRBS self-assigned this Jul 1, 2024
@RobinQu
Copy link
Author

RobinQu commented Jul 4, 2024

I think the access request is approved. How should we proced this PR?

@conan-center-bot

This comment has been minimized.

@AbrilRBS
Copy link
Member

AbrilRBS commented Jul 4, 2024

@RobinQu Sorry for the delay on the review: I'll push some cleanup changes to your recipe and comment on them in a bit :)

Copy link
Member

@AbrilRBS AbrilRBS left a comment

Choose a reason for hiding this comment

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

Thanks! I've now pushed the changes and made some comments, let me know what you think :)

self.requires("reactiveplusplus/2.1.1", transitive_headers=True)
self.requires("icu/74.1")
self.requires("tsl-ordered-map/1.1.0", transitive_headers=True)
self.requires("fmt/10.2.1", transitive_headers=True)
Copy link
Member

Choose a reason for hiding this comment

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

The transitive_headers would only be needed if those includes were part of the public API of the project, usually there are a few, but it's a bit suprising that every dependency has it. Does every dependency leak to the consumers?

if self.dependencies[dep].options[option] != value:
raise ConanInvalidConfiguration(f'{self.ref} needs -o="{dep}/*:{option}={value}"')

_ensure_dep_has_option("duckdb", "with_httpfs", self.default_options["duckdb/*:with_httpfs"])
Copy link
Member

Choose a reason for hiding this comment

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

This is bad news if it's not the default for those packages: It will make it so nothing gets built in our CI, as every configuration would still not find these packages - cci only builds the default options for each package (minus shared/header_only options where we combine them). If these are not the defaults, we'll need successful compilation logs of a few different configurations before we're confident about merging this

I'll provide apple-clang ones once the recipe is ready to go to save you some time :)

get(self, **self.conan_data["sources"][self.version], strip_root=True)

def generate(self):
tc = CMakeToolchain(self)
Copy link
Member

Choose a reason for hiding this comment

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

A bit suprising for a library with so many dependencies to have these little amount of options, it's great! :)


self.requires("llama-cpp/b3040", transitive_headers=True)
self.requires("cpp-httplib/0.15.3", transitive_headers=True)
self.requires("cli11/2.4.1")
Copy link
Member

Choose a reason for hiding this comment

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

I had to remove the gtest test_require from here:

If we want to give users the ability to run the tests, we have a way to control that with the skip_tests conf, but usually CCI packages simply just don't build/run them, so no need to add test_requirements :)

return {
"apple-clang": "15",
"clang": "17",
"gcc": "12"
Copy link
Member

Choose a reason for hiding this comment

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

Has this library been tested on Windows? we would add a min msvc if it's possible to run there :)

Comment on lines +37 to +40
"with_duckdb": True,
"with_exprtk": True,
"with_pdfium": True,
"with_duckx": True,
Copy link
Member

Choose a reason for hiding this comment

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

It would also be great to have successful compilation logs when turning off some or all of these options, just to check that it works :)

@conan-center-bot

This comment has been minimized.

@conan-center-bot
Copy link
Collaborator

Conan v1 pipeline ❌

Failure in build 6 (6a664d1f271c8a25daf0a8b4320e1dc500bcc28c):

  • instinct-cpp/0.1.5:
    Error running command conan info instinct-cpp/0.1.5@#4fec507dd3eaa4dd1f2e186feb8ee9cd --json {jsonName} -pr {profileName}:
    [settings]
    arch=x86_64
    build_type=Release
    compiler=Visual Studio
    compiler.runtime=MD
    compiler.version=16
    os=Windows
    [options]
    instinct-cpp:shared=False
    
    ...
    ERROR: icu/74.1: option 'data_packaging' doesn't exist
    Possible options are ['shared', 'with_dyload', 'dat_package_file', 'with_icuio', 'with_extras']
    

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.


Conan v2 pipeline ✔️

Note: Conan v2 builds are now mandatory. Please read our discussion about it.

All green in build 6 (6a664d1f271c8a25daf0a8b4320e1dc500bcc28c):

  • instinct-cpp/0.1.5:
    All packages built successfully! (All logs)

@RobinQu
Copy link
Author

RobinQu commented Jul 4, 2024

@AbrilRBS Thanks for your response. I will look into these issues after a 4-day vocation.

@AbrilRBS
Copy link
Member

AbrilRBS commented Jul 4, 2024

Hope you have a good one :) Ping me once you address them/if you need any help!

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

Successfully merging this pull request may close these issues.

None yet

4 participants