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

acado/1.2.2 #3967

Merged
merged 31 commits into from
Jan 2, 2021
Merged

acado/1.2.2 #3967

merged 31 commits into from
Jan 2, 2021

Conversation

blackliner
Copy link
Contributor

Specify library name and version: acado/1.2.2

Some whacky codegenerator stuff going on, appreciate feedback for my solution.

  • I've read the guidelines for contributing.
  • I've followed the PEP8 style guides for Python code in the recipes.
  • I've used the latest Conan client version.
  • I've tried at least one configuration locally with the
    conan-center hook activated.

@conan-center-bot
Copy link
Collaborator

Failure in build 1 (e3e276fcfd41ae7580f48fdb7ec2a8145f4f4c4e):

  • acado/1.2.2
    • Hooks errors detected:
      • [HOOK - conan-center.py] pre_export(): ERROR: [NO FINAL ENDLINE (KB-H041)] File '/home/conan/w/cci_PR-3967/recipes/acado/all/test_package/test_package.cpp' does not end with an endline (https://github.com/conan-io/conan-center-index/blob/master/docs/error_knowledge_base.md#KB-H041)

@conan-center-bot
Copy link
Collaborator

Some configurations of 'acado/1.2.2' failed in build 2 (c3aad30cbd3fef5325f9c1f5057be342582303a8):

@@ -0,0 +1,4 @@
sources:
"1.2.2":
Copy link
Contributor

@prince-chrismc prince-chrismc Dec 22, 2020

Choose a reason for hiding this comment

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

Suggested change
"1.2.2":
"1.2.2beta":

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Can conan package version contain letters?

Copy link
Contributor Author

@blackliner blackliner Dec 22, 2020

Choose a reason for hiding this comment

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

I tried it out locally, and I got the following line for a find_package(ACADO 1.2.2 REQUIRED):

-- Found ACADO: 1.2.2beta (found suitable version "1.2.2beta", minimum required is "1.2.2")

I recently had problems with a lib that had a v prefix (like v39), and conan made set(LIB_VERSION "39") out of it, so CMake was not able to determine if the version is correct. Also filed an issue, and eventually ended up in doing it properly 😅

TL&DR: Is it safe to deviate from strict semantic versioning? According to SEMVER we should at least a add a dash, what do you think?

EDIT: I tried it out, it works, so should we go for 1.2.2-beta ?

Copy link
Contributor

Choose a reason for hiding this comment

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

TL&DR: Is it safe to deviate from strict semantic versioning?

100% CCI even has a costume virtual release notation cci.yymmdd for projects which do not have releases of are no longer maintained or outputting releases.

According to SEMVER we should at least a add a dash, what do you think?
EDIT: I tried it out, it works, so should we go for 1.2.2-beta ?

I personally think it's better to use the original upstream notation, it makes it easier to find what you want as a consumer.
However correcting the notation to be standard is also a nice thought

There's no rule (yet) so we'll see what the Conan team requests.

Perhaps a new topic for an official policy? /cc @jgsogo

Copy link
Contributor

@prince-chrismc prince-chrismc left a comment

Choose a reason for hiding this comment

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

Typically in CCI we do not like to use the "external/third party/vendored" sources because this prevents the consumer from having control over which version is used... worst of all it usually leads to duplication which makes life very painful.

Since you have #3962 you can add a requirement... but you'll need to remove this line https://github.com/acado/acado/blob/b4e28f3131f79cadfd1a001e9fff061f361d3a0f/CMakeLists.txt#L204 and patch the project...

Maybe not worth it 🤔 since all the other dependencies are just a complicated

eigen3 is a very common dependency, I am not sure if it's even being used 😖 but perhaps that would be from CCI as well?

Also I see they install the "external_packages" which is very odd... not sure it that will cause problems since they hard code the path

@blackliner
Copy link
Contributor Author

Typically in CCI we do not like to use the "external/third party/vendored" sources because this prevents the consumer from having control over which version is used... worst of all it usually leads to duplication which makes life very painful.

Since you have #3962 you can add a requirement... but you'll need to remove this line https://github.com/acado/acado/blob/b4e28f3131f79cadfd1a001e9fff061f361d3a0f/CMakeLists.txt#L204 and patch the project...

Maybe not worth it 🤔 since all the other dependencies are just a complicated

eigen3 is a very common dependency, I am not sure if it's even being used 😖 but perhaps that would be from CCI as well?

Also I see they install the "external_packages" which is very odd... not sure it that will cause problems since they hard code the path

I totally get it. This library is not the cleanest, and I think it is out of active development. #3962 might not be usable here as the version used in ACADO customized for embedded targets.

Yes, everything is hardcoded and not really easy to modularize. See it positive, the package has no dependencies 🤦‍♂️ 😄

@conan-center-bot
Copy link
Collaborator

Failure in build 3 (87b649ad39a98f351662e22b1dd41bf0266ee2fb):

  • acado/1.2.2
    • Hooks errors detected:
      • [HOOK - conan-center.py] pre_export(): ERROR: [NO FINAL ENDLINE (KB-H041)] File '/home/conan/w/cci_PR-3967/recipes/acado/all/patches/0001-binding-temp-object.patch' does not end with an endline (https://github.com/conan-io/conan-center-index/blob/master/docs/error_knowledge_base.md#KB-H041)

@conan-center-bot
Copy link
Collaborator

Failure in build 4 (27bf521095ce039d4e929bd94d5245131053e669):

  • acado/1.2.2-beta
    • Hooks errors detected:
      • [HOOK - conan-center.py] pre_export(): ERROR: [NO FINAL ENDLINE (KB-H041)] File '/home/conan/w/cci_PR-3967/recipes/acado/all/patches/0001-binding-temp-object.patch' does not end with an endline (https://github.com/conan-io/conan-center-index/blob/master/docs/error_knowledge_base.md#KB-H041)

@conan-center-bot
Copy link
Collaborator

Some configurations of 'acado/1.2.2-beta' failed in build 5 (c1a9cd34730109b09b4e1368fd76af308e4f9567):

  • Linux x86_64, Release, clang 9, libstdc++ . Options: acado:shared-False
  • Access to all the logs
  • Linux x86_64, Release, clang 9, libc++ . Options: acado:shared-False
  • Access to all the logs
  • Linux x86_64, Debug, clang 8, libstdc++ . Options: acado:shared-False
    • Hooks errors detected:
      • [HOOK - conan-center.py] post_package(): ERROR: [DEFAULT PACKAGE LAYOUT (KB-H013)] Unknown folder 'share' in the package (https://github.com/conan-io/conan-center-index/blob/master/docs/error_knowledge_base.md#KB-H013)
      • [HOOK - conan-center.py] post_package(): ERROR: [DEFAULT PACKAGE LAYOUT (KB-H013)] Unknown folder 'cmake' in the package (https://github.com/conan-io/conan-center-index/blob/master/docs/error_knowledge_base.md#KB-H013)
    • Log download
    • Log error Download
    • Profile
  • Access to all the logs
  • Linux x86_64, Debug, clang 7.0, libstdc++ . Options: acado:shared-False
    • Hooks errors detected:
      • [HOOK - conan-center.py] post_package(): ERROR: [DEFAULT PACKAGE LAYOUT (KB-H013)] Unknown folder 'share' in the package (https://github.com/conan-io/conan-center-index/blob/master/docs/error_knowledge_base.md#KB-H013)
      • [HOOK - conan-center.py] post_package(): ERROR: [DEFAULT PACKAGE LAYOUT (KB-H013)] Unknown folder 'cmake' in the package (https://github.com/conan-io/conan-center-index/blob/master/docs/error_knowledge_base.md#KB-H013)
    • Log download
    • Log error Download
    • Profile
  • Access to all the logs
  • Linux x86_64, Debug, clang 6.0, libstdc++ . Options: acado:shared-False
    • Hooks errors detected:
      • [HOOK - conan-center.py] post_package(): ERROR: [DEFAULT PACKAGE LAYOUT (KB-H013)] Unknown folder 'share' in the package (https://github.com/conan-io/conan-center-index/blob/master/docs/error_knowledge_base.md#KB-H013)
      • [HOOK - conan-center.py] post_package(): ERROR: [DEFAULT PACKAGE LAYOUT (KB-H013)] Unknown folder 'cmake' in the package (https://github.com/conan-io/conan-center-index/blob/master/docs/error_knowledge_base.md#KB-H013)
    • Log download
    • Log error Download
    • Profile
  • Access to all the logs
  • Linux x86_64, Release, clang 3.9, libstdc++ . Options: acado:shared-False
    • Hooks errors detected:
      • [HOOK - conan-center.py] post_package(): ERROR: [DEFAULT PACKAGE LAYOUT (KB-H013)] Unknown folder 'share' in the package (https://github.com/conan-io/conan-center-index/blob/master/docs/error_knowledge_base.md#KB-H013)
      • [HOOK - conan-center.py] post_package(): ERROR: [DEFAULT PACKAGE LAYOUT (KB-H013)] Unknown folder 'cmake' in the package (https://github.com/conan-io/conan-center-index/blob/master/docs/error_knowledge_base.md#KB-H013)
    • Log download
    • Log error Download
    • Profile
  • Access to all the logs

@conan-center-bot
Copy link
Collaborator

Some configurations of 'acado/1.2.2-beta' failed in build 6 (3d4442ba5bcc0f7c9992e03ab7c18d39e10260f1):

  • Linux x86_64, Release, clang 9, libstdc++ . Options: acado:shared-False
  • Access to all the logs
  • Linux x86_64, Release, clang 9, libc++ . Options: acado:shared-False
  • Access to all the logs
  • Linux x86_64, Debug, clang 6.0, libstdc++ . Options: acado:shared-False
    • Hooks errors detected:
      • [HOOK - conan-center.py] post_package_info(): ERROR: [CMAKE FILE NOT IN BUILD FOLDERS (KB-H019)] The *.cmake files have to be placed in a folder declared as cpp_info.builddirs. Currently folders declared: ['', 'cmake'] (https://github.com/conan-io/conan-center-index/blob/master/docs/error_knowledge_base.md#KB-H019)
      • [HOOK - conan-center.py] post_package_info(): ERROR: [CMAKE FILE NOT IN BUILD FOLDERS (KB-H019)] Found files: ./lib/cmake/qpoases.cmake (https://github.com/conan-io/conan-center-index/blob/master/docs/error_knowledge_base.md#KB-H019)
    • Log download
    • Log error Download
    • Profile
  • Access to all the logs
  • Linux x86_64, Debug, clang 8, libstdc++ . Options: acado:shared-False
    • Hooks errors detected:
      • [HOOK - conan-center.py] post_package_info(): ERROR: [CMAKE FILE NOT IN BUILD FOLDERS (KB-H019)] The *.cmake files have to be placed in a folder declared as cpp_info.builddirs. Currently folders declared: ['', 'cmake'] (https://github.com/conan-io/conan-center-index/blob/master/docs/error_knowledge_base.md#KB-H019)
      • [HOOK - conan-center.py] post_package_info(): ERROR: [CMAKE FILE NOT IN BUILD FOLDERS (KB-H019)] Found files: ./lib/cmake/qpoases.cmake (https://github.com/conan-io/conan-center-index/blob/master/docs/error_knowledge_base.md#KB-H019)
    • Log download
    • Log error Download
    • Profile
  • Access to all the logs

@conan-center-bot
Copy link
Collaborator

Recipe syntax error in build 7:

WARN: Remotes registry file missing, creating default one in /home/conan/w/cci_PR-3967/7/f191694c-9fc4-494e-b8cd-15f42633748a/.conan/remotes.json
ERROR: Error loading conanfile at '/home/conan/w/cci_PR-3967/recipes/acado/all/conanfile.py': Unable to load conanfile in /home/conan/w/cci_PR-3967/recipes/acado/all/conanfile.py
  File "/opt/pyenv/versions/3.7.5/lib/python3.7/site-packages/conans/model/ref.py", line 197, in loads
    name, version, user, channel, revision = get_reference_fields(text)
  File "/opt/pyenv/versions/3.7.5/lib/python3.7/site-packages/conans/model/ref.py", line 66, in get_reference_fields
    el1, el2 = _split_pair(arg_reference, "/") or (arg_reference, None)
  File "/opt/pyenv/versions/3.7.5/lib/python3.7/site-packages/conans/model/ref.py", line 18, in _split_pair
    raise ConanException("The reference has too many '{}'".format(split_char))
conans.errors.ConanException: The reference has too many '/'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/pyenv/versions/3.7.5/lib/python3.7/site-packages/conans/client/loader.py", line 382, in _parse_conanfile
    loaded = imp.load_source(module_id, conan_file_path)
  File "/opt/pyenv/versions/3.7.5/lib/python3.7/imp.py", line 171, in load_source
    module = _load(spec)
  File "<frozen importlib._bootstrap>", line 696, in _load
  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 724, in exec_module
  File "<frozen importlib._bootstrap_external>", line 860, in get_code
  File "<frozen importlib._bootstrap_external>", line 791, in source_to_code
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/home/conan/w/cci_PR-3967/recipes/acado/all/conanfile.py", line 96
    self.cpp_info.build_modules.append(os.path.join("lib", "cmake", "qpoases.cmake"))
       ^
SyntaxError: invalid syntax


@conan-center-bot
Copy link
Collaborator

Some configurations of 'acado/1.2.2-beta' failed in build 8 (5c17451defb4a4e82fafe733580b831eaa8fb741):

@conan-center-bot
Copy link
Collaborator

Some configurations of 'acado/1.2.2-beta' failed in build 9 (57c7648c7e1b237632d5744c100545625ed8b19f):

@conan-center-bot
Copy link
Collaborator

Some configurations of 'acado/1.2.2-beta' failed in build 10 (26c850e10436ccdaddb63c4208b854f541572d80):

@uilianries
Copy link
Member

@blackliner I can confirm the error, clang 9 doesn't work. I would report to the upstream and skip it for this version. It works for Clang 10.

Co-authored-by: Uilian Ries <uilianries@gmail.com>
@conan-center-bot
Copy link
Collaborator

Some configurations of 'acado/1.2.2-beta' failed in build 31 (a43d6e7816d2fc59510d901ebdbcb452a078c09b):

@blackliner
Copy link
Contributor Author

blackliner commented Dec 31, 2020

Some configurations of 'acado/1.2.2-beta' failed in build 31 (a43d6e7816d2fc59510d901ebdbcb452a078c09b):

@uilianries I get a reproducible segfault with this combo, shall I disable this specific build?

@conan-center-bot
Copy link
Collaborator

Some configurations of 'acado/1.2.2-beta' failed in build 32 (4ba4d3a4df488e6e7bb3bf98baac95d9e37ddb80):

uilianries
uilianries previously approved these changes Dec 31, 2020
@prince-chrismc
Copy link
Contributor

In my experience if it's only shared and gcc failing it's an fPIC problem... bit I see that's an issue with the upstream cmake.

@blackliner
Copy link
Contributor Author

blackliner commented Dec 31, 2020

In my experience if it's only shared and gcc failing it's an fPIC problem... bit I see that's an issue with the upstream cmake.

You mean that the STATIC targets that get linked into the main SHARED lib would need fPIC, but do not get it? Is this a case for a patch? There is an option fPIC, what is this one then used for if it does not help us here?

Also, usually you would get linker errors when fPIC is missing, right?

@conan-center-bot
Copy link
Collaborator

Some configurations of 'acado/1.2.2-beta' failed in build 33 (ee6d1bce0549f0a3cb0ecb6d0256538d04151845):

@blackliner
Copy link
Contributor Author

blackliner commented Dec 31, 2020

The builds do work with -s compiler.libcxx=libstdc++11 🤷‍♂️

Any ideas left?

@prince-chrismc
Copy link
Contributor

Yes looking at the logs it builds two targets, one is always static and it's possible that it's missing the fPIC which, sometimes is a link issue, but on larger complicated projects nasty ABI surprises can happen at runtime.

➡️ Just block the older C++ ABI on gcc.

If someone really needs it they'll have to add it. I think this is more than enough work for the time being... it does not need to be perfect having it is better than nothing!

@blackliner
Copy link
Contributor Author

Yes looking at the logs it builds two targets, one is always static and it's possible that it's missing the fPIC which, sometimes is a link issue, but on larger complicated projects nasty ABI surprises can happen at runtime.

➡️ Just block the older C++ ABI on gcc.

If someone really needs it they'll have to add it. I think this is more than enough work for the time being... it does not need to be perfect having it is better than nothing!

I had all of that earlier, but @uilianries did not want that 😞 #3967 (review)

@conan-center-bot
Copy link
Collaborator

An unexpected error happened and has been reported. Help is on its way! 🏇

@uilianries
Copy link
Member

Acado seems be limited. I'm fine if we need to skip those configurations. Let's wait for CCI result.

@conan-center-bot
Copy link
Collaborator

All green in build 35 (466337892d0b56a163a01b3cff07d08f1b9254fe)! 😊

  • acado/1.2.2-beta: Generated 68 packages (+ 1 invalid config from build()). All logs here

@conan-center-bot conan-center-bot merged commit bf6002b into conan-io:master Jan 2, 2021
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.

6 participants