GithubHelp home page GithubHelp logo

conan-io / training Goto Github PK

View Code? Open in Web Editor NEW
62.0 62.0 38.0 34.39 MB

(Deprecated) Support code for conan 1.X trainings

License: MIT License

Shell 27.05% CMake 11.64% C++ 16.44% Python 39.84% C 3.15% Dockerfile 1.89%

training's People

Contributors

agravgaard avatar danimtb avatar jgsogo avatar jlarfors avatar memsharded avatar solvingj avatar uilianries avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

training's Issues

Conan Essentials course - exercises in "consumer" folder fail the cmake generate step ("cmake ..")

  include could not find load file:

    /home/conan/training/consumer/conanbuildinfo.cmake


CMake Error at CMakeLists.txt:7 (conan_basic_setup):
  Unknown CMake command "conan_basic_setup".


-- Configuring incomplete, errors occurred!

Same outcome when running the catchup script for exercise #6.

Environment info: running in your docker on an Ubuntu terminal on Windows 11, with Docker for Windows running in WSL mode.

upload failed: wrong ssl version number, despite Verify SSL: False

Cource: Advanced, Exercise : Revisions - Part 2

hello/0.1@user/testing: Upload recipe to 'artifactory' failed: HTTPSConnectionPool(host='127.0.0.1', port=8082):   
Max retries  exceeded with url: /v1/ping (Caused by SSLError(SSLError(1, '[SSL: WRONG_VERSION_NUMBER]   
wrong version number  (_ssl.c:1131)')))

Unable to connect to artifactory=https://127.0.0.1:8082
1. Make sure the remote is reachable or,
2. Disable it by using conan remote disable,
Then try again.

ERROR: Errors uploading some packages

output of netcat:

nc -zv 127.0.0.1 8082
Connection to 127.0.0.1 8082 port [tcp/*] succeeded!
conan remote list
artifactory: https://127.0.0.1:8082 [Verify SSL: False]

[Feedback] Conan Advanced - Requirements Quiz

One of the questions in the quiz that's asking about build_requires suggests that it's a way to hide dependencies from consumers when building executable shared libraries. I'm maybe out of date on my graph resolving knowledge, but I was pretty sure it is (with caveats obviously). Like an alternative to the "private" dependencies which are discouraged. But the quiz doesn't accept that answer.

Packages published to artifactory have extra characters in name

Hello everyone,

I set up an artifactory (community edition 7.10.5) on localhost. I ran the following commands from the command line:

conan new pkg/0.1@aravind/testing -s -t
conan create .
conan upload pkg/0.1 -r localrepo --all

The package is uploaded with the name _/pkg/0.1/_. I could not figure out where the extra characters / and _ come from. What am I missing here?

conan_upload_extra_characters

[Feedback] Conan Advanced - Tools as build_requires

The course suggests to avoid using in-recipe build_requires for common tools such as CMake and move them into profiles in order to leverage system-installed tools, while using exact versions of less common tools directly in the recipe.

While it's a bit off-topic to the course itself - It feels like it 'd produce an unsatisfactory user experience on both ends:

  • For common tools, if the tool happen to not be present in the system, Conan will fail to build the package and will not help the user with a tip to include the tool into the profile.
  • For less common tools, CCI encodes the exact version of a tool, meaning that users can exclude the tool from the recipe in a convenient way to use a tool in the system and they also have duplicated tools in the graph, because CCI forbids version ranges.

The reasoning in here feels a bit contradictionary to itself.

[Feedback] Conan Essentials - Transitive CMake Integration advice

The course showcases how to use cmake_find_package generator, but it doesn't quite mention that for the moment Conan doesn't quite get the Components right, which would be an immediate question of a listener who sees the Boost being linked as Boost::Boost.

I'm not sure if it's appropriate for the Essentials course, but maybe a small note somewhere that mentions it could help a bit. Or not.

Problem with docker-compose under WSL2/Ubuntu20.4

Just at the beginning of the course, (environ setup : lesson https://academy.jfrog.com/path/conan/conan-essentials/590849 )after issuing the command:

~/projects/training/docker_environment$ docker-compose up -d

I've got an error message:

ERROR: Couldn't connect to Docker daemon at http+docker://localhost - is it running?

If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable.

I am using Ubuntu 20.04 on WSL 2

[Bug] Exercise : Upload to Artifactory - Part 1 - video end frame is not useful

The end of an exercise video normally shows the list of commands needed for the exercise: very helpful.

This video ends showing the first slide (if not frame). The outline for the exercise is shown, and does not include any commands.

This requires users to pause the video on the commands to keep the reference up and is different behavior from the previous exercise videos.

Ignoring the 12 web UI instructions (as well as missing instructions to get to that UI described in #80), there is only one command not on the final slide. This first command is simple enough (as well as optional) so that the larger list of commands from the final slide alone would be helpful enough to keep displayed at video's end.

getting an error when preparing the environment for doing the exercises

I am on windows 10.
while doing the training on
https://academy.jfrog.com/path/conan/conan-essentials/590849#

I get the below error when running the third command below to prepare the environmet
git clone https://github.com/conan-io/training
cd training/docker_environment
docker-compose up -d ===========> This an error
docker exec -it conan-training bash

The error I get is

Step 9/10 : ENV DEMO_ART_CREDS_PSW=password
---> Using cache
---> 3591c351707e
Step 10/10 : RUN /scripts/bootstrap-artifactory-config.sh
---> Running in 659b99e05aea
/bin/sh: 1: /scripts/bootstrap-artifactory-config.sh: not found
Service 'artifactory-training' failed to build : The command '/bin/sh -c /scripts/bootstrap-artifactory-config.sh' returned a non-zero code: 127

Can someone please help on how to proceed.
Thanks

[Feedback] Conan Essentials: Advice at end of the course

At the end of essentials in the "Congratulations" slide, pointy 1 is to learn more by studying the output of the conan commands.
That's a good advide, but would be much more valuable if I knew that I can change the log.level and/or log.print_run_commands.
At least that was an 'aha' moment for me when I was trying to learn Conan

So I suggest to either mention those commands in that same slide or insert a new chapter/slide teaching this.
ie:

  1. Read Conan outputs carefully
    a. Try conan config set log.level=info
    Valid values: critical, error, warning, info and debug.
  2. ...

[Feedback] Conan Essentials - Custom Settings

Since we have a great article on custom settings for sanitizers in Conan documentation - I believe it'd be great to reuse it for training or at least mention it to give listeners more reference points for the feature.

[Feedback] Conan Essentials - `user/channel` advice

The course strongly encourages using custom user/channel for packages that were built locally, not from Conan Center.
I agree for proprietary recipes or recipes that were written/created out of the CCI so maybe I just misunderstood the advice here.

The issue with the advice is that a new user may think that migrating CCI recipes to company/stable scheme is the way to go for vendoring recipes to a private remote. Which is practically a bad user experience since Conan provides very poor overriding capabilities in its interfaces and the only way to prevent "leaking" of packages through a private remote would be to override all requirements in vendored recipes, which is a poor application of one's effort and time.

My personal advice is to actually preserve the original user/channel if you intent to use the binaries as-if or in-place of CCI created binaries and control the binary origin through the remote list only.

FreeTier migration issue: Please use a local ArtifactoryCE instance for the training

The recommended Free Trier is under a migration issue right now.

It is strongly recommended to grab the ArtifactoryCE from https://conan.io/downloads.html (for training purposes, getting the .zip or .tgz, unzipping and running the script in app/bin, then going to :8082 will be good).

The training shouldn't be affected, just taking care to use the real , instead of localhost can avoid issues connecting from the docker container.

[Feedback] Conan Advanced - A note about build_requires

The course tells to use build_requires only for tools or testing frameworks, but doesn't quite explain why with respect to the C/C++ context.

It could be useful to have a little explanation about Conan's graph solving ability and conflicting symbols in C++ binaries.

[Error] Exercise : Consume Hello Package - not enough instruction on how to modify files

The commented instructions are very vague.

eg
# modify conanfile.txt to account for new dependency

Had to relisten since the only guidance here is in voice, and says to use the existing format as a guide, which gives us:
[requires]
boost/1.72.0
poco/1.9.4
hello/0.1

The next step is also obscure:
# modify CMakeLists.txt to account for new CONAN_PKG::hello

Which I assume refers to:
target_link_libraries(timer CONAN_PKG::poco
CONAN_PKG::boost
CONAN_PKG::hello)

Finally:
# modify timer.cpp to include "hello.h" and call the hello() function

The other includes have a path, but nothing is explained here, so this could be wrong:
#include <hello.h>

But I assume calling hello() anywhere in main() is fine.
int main(int argc, char** argv){
...
hello();
...
return 0;
}

Result:
$ conan install ..
Configuration:
[settings]
arch=x86_64
arch_build=x86_64
build_type=Release
compiler=gcc
compiler.libcxx=libstdc++11
compiler.version=7
os=Linux
os_build=Linux
[options]
[build_requires]
[env]

hello/0.1: Not found in local cache, looking in remotes...
hello/0.1: Trying with 'conan-center'...
ERROR: Unable to find 'hello/0.1' in remotes

This looks like its failing from the first step, not the second or third (although it's not clear if they will work).

Replicating the training in my environment

I was able to get the training to work in the tutorial provided environment. Now I am trying to do it in my environment. My Azure Ubuntu has:

  • gcc 7.4.0
  • conan 1.18.4
  • cmake 3.10.2

When I run the command "conan install .." from consumer/build, it finds and installs the packages boost, pocoproject, and their dependencies. However, it asks me to log into conan-center. As per the suggestions, I created an account in https://bintray.com/signup/oss.

However, when I specify my user name and password, it tells me that the password is wrong. As a result, conanbuildinfo.cmake is not generated. Any help is appreciated.

Travis CI tests are broken due to compiler error related to boost

Something changed in the CI and builds that previously passed are now failing due to this error.

I haven't narrowed it down to the precise cause, but it seems somehow related to boost and libstdc++11 and -D_GLIBCXX_USE_CXX11_ABI

Potentially related issue: https://stackoverflow.com/questions/40225571/regex-search-hpp56-undefined-reference-to-boostre-detail-106100perl-match

Actual error: https://travis-ci.com/github/conan-io/training/builds/211476455#L516-L540

Scanning dependencies of target timer
[ 50%] Building CXX object CMakeFiles/timer.dir/timer.cpp.o
[100%] Linking CXX executable bin/timer
CMakeFiles/timer.dir/timer.cpp.o: In function `boost::re_detail_107200::perl_matcher<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::match_match()':
timer.cpp:(.text._ZN5boost16re_detail_10720012perl_matcherIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISC_EEENS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEE11match_matchEv[_ZN5boost16re_detail_10720012perl_matcherIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISC_EEENS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEE11match_matchEv]+0x44e): undefined reference to `boost::match_results<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > >::maybe_assign(boost::match_results<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > const&)'
CMakeFiles/timer.dir/timer.cpp.o: In function `boost::re_detail_107200::perl_matcher<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::match_imp()':
timer.cpp:(.text._ZN5boost16re_detail_10720012perl_matcherIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISC_EEENS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEE9match_impEv[_ZN5boost16re_detail_10720012perl_matcherIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISC_EEENS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEE9match_impEv]+0x54c): undefined reference to `boost::match_results<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > >::maybe_assign(boost::match_results<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > const&)'
CMakeFiles/timer.dir/timer.cpp.o: In function `bool boost::regex_match<std::char_traits<char>, std::allocator<char>, char, boost::regex_traits<char, boost::cpp_regex_traits<char> > >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&, boost::regex_constants::_match_flags)':
timer.cpp:(.text._ZN5boost11regex_matchISt11char_traitsIcESaIcEcNS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEEEbRKNSt7__cxx1112basic_stringIT1_T_T0_EERKNS_11basic_regexISA_T2_EENS_15regex_constants12_match_flagsE[_ZN5boost11regex_matchISt11char_traitsIcESaIcEcNS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEEEbRKNSt7__cxx1112basic_stringIT1_T_T0_EERKNS_11basic_regexISA_T2_EENS_15regex_constants12_match_flagsE]+0x166): undefined reference to `boost::re_detail_107200::perl_matcher<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::construct_init(boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&, boost::regex_constants::_match_flags)'
collect2: error: ld returned 1 exit status
CMakeFiles/timer.dir/build.make:145: recipe for target 'bin/timer' failed
make[2]: *** [bin/timer] Error 1

Here's a warning about the libstdc++11 situation.

Auto detecting your dev setup to initialize the default profile (/home/travis/.conan/profiles/default)
Found gcc 5.4
Found clang 7.0
gcc>=5, using the major as version
************************* WARNING: GCC OLD ABI COMPATIBILITY ***********************
 
Conan detected a GCC version > 5 but has adjusted the 'compiler.libcxx' setting to
'libstdc++' for backwards compatibility.
Your compiler is likely using the new CXX11 ABI by default (libstdc++11).
If you want Conan to use the new ABI for the default profile, run:
    $ conan profile update settings.compiler.libcxx=libstdc++11 default
Or edit '/home/travis/.conan/profiles/default' and set compiler.libcxx=libstdc++11
************************************************************************************
Default settings
	os=Linux
	os_build=Linux
	arch=x86_64
	arch_build=x86_64
	compiler=gcc
	compiler.version=5
	compiler.libcxx=libstdc++
	build_type=Release
*** You can change them in /ho

Conan Essentials - Environment Setup Fails

Hi,

I am on win10, using docker desktop v20.10.0-rc1.

When running the steps in Environment setup, on the conan essentials course, I am unable to build the images with the current Dockerfile configuration. When I run docker-compose up -d, it fails with:

"Step 1/11 : FROM docker.bintray.io/jfrog/artifactory-cpp-ce:7.6.2
ERROR: Service 'jfrog-artifactory-training' failed to build : missing or empty Content-Length header"

This seems to be an issue with the image on bintray.io, as running "docker pull docker.bintray.io/jfrog/artifactory-cpp-ce:7.6.2" results in
"Error response from daemon: missing or empty Content-Length header".

Modifying the dockerfiles to use docker.bintray.io/jfrog/artifactory-cpp-ce:current seems to resolve the issue.

[Feedback] Conan Essentials - `test_package`

While the quiz at the end of the section had a question about relation of the test_package and unit tests - I feel like it should be pressed much harder in the course itself that:

  1. Test_package is not about unit tests.
  2. It runs only once at the time of a recipe export, only for the current configuration.

conan Unable to connect to conan-center=https://conan.bintray.com

Problem

Using the docker container for the training, while using the command conan install .. mentioned in this lesson conan can not reach conan center remote.

This is caused when the container produces /etc/resolv.conf contains the localhost address nameserver 127.0.X.X.

Suggested Enhancement

This can be fixed by filling /etc/resolv.conf with a public DNS like google's public DNS 8.8.8.8 while building the container.

Details about the environment used:

  • VirtualBox
  • Guest: Ubuntu 18.04
  • Host: Windows 10

Exact error output

ERROR: HTTPSConnectionPool(host='conan.bintray.com', port=443): Max retries exceeded with url: /v1/ping (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7f23d2758810>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution'))

Unable to connect to conan-center=https://conan.bintray.com
1. Make sure the remote is reachable or,
2. Disable it by using conan remote disable,
Then try again.

[Feedback] Conan Essentials - Runtime Linking

I believe the course has not quite correct information about the runtime linking.
In the slide it shows the line that imports so file to the bin directory and the narrator mentions that by default linker will look into the directory, but it's, in fact, only the default behaviour on Windows, not Linux! For Linux you'd need to point the LD_LIBRARY_PATH to the bin directory.

The runtime linking is a hard problem and I believe creating a section on it would be useful to help users on the border between Linux system programming and "user-space" C++ programming with Conan.

Artifactory not usable through localhost, but works with 127.0.0.1

First of all, thank you for the great tutorials!

After using docker-compose to start the containers, I could not use artifactory through localhost:8082 in my browser, because it forwards me to http://jfrog-artifactory-training:8082/ui/ (http://container_name:8082/ui). Using the address 127.0.0.1:8082 does work, because it points me to 127.0.0.1:8082/ui/login.

OS: Ubuntu 18.04.2
Docker: 20.10.5
Docker-compose: 1.26.0

It takes some time to start artifactory in a container. When you connect the browser, you are redirectored form localhost:8082 to localhost:8082/artifactory. The same for 127.0.0.1:8082. The screen shows a "JFrog Platform will be available shortly" screen. When artifactory is ready the different redirects as described above occur.

[Conan Essentials] Docker Compose Fails

In Conan Essentials/Environment Setup video, docker compose command fails and gives the following output:
Building jfrog-artifactory-training
Step 1/11 : FROM docker.bintray.io/jfrog/artifactory-cpp-ce:7.6.2
ERROR: Service 'jfrog-artifactory-training' failed to build : missing or empty Content-Length header

I am on docker version 20.10.1, docker-compose version 1.27.4, containerd version 1.4.3.

I edited the Docker YAML file to pull FROM docker.bintray.io/jfrog/artifactory-cpp-ce:7.12.5 and the docker image built successfully. I have not yet completed the rest of the training to ensure everything works correctly with this newer version of artifactory.

Conan Advanced - Exercise 16: zlib build failed

When trying to run the last command from the exercise (conan create . user/testing -pr=rpi_armv7 --build=missing), the unintended error is displayed:

ERROR: 404: Not Found. [Remote: conan-center]
The 'zlib/1.2.11' package has 'exports_sources' but sources not found in local cache.
Probably it was installed from a remote that is no longer available.

[Feedback] Conan Advanced - Configuration Conflicts

The course mentions conflicting options configuration and how to resolve it. In my personal experience - changing upstream options from non-leaf [non-executable] recipes is an anti-pattern, because any change to the default value very quickly leads to the diamond problem conflict which prevents recipes from working out of the box.
I strongly believe the course should voice this concern and suggest to throw an exception when an upstream package option is wrong instead as a guideline when designing packages.

[Feedback] Move the question about user/channel to section "Create Conan Packages"

The quiz at the end of the section Consuming Conan Packages contains a question about whether users should populate the attributes user and channel when building locally. However, I couldn't find any reference to this advice in the section. I wonder whether this question should actually belong to the section Create Conan Packages

Could not connect to jfrog User Interface whit https://127.0.0.1:8082

All steps up to "Remote Repositories on Artifactory" are working fine. But in this chapter I have to setup the JFrog Conan Repository. This is not possible because while connection to https://127.0.0.1:8082 (changed) I got the response "Service Unavaliable"

Do you have an Idea whats going wrong? Containers are started

Kind Regards
Martin

F:\GitHubClones\training\docker_environment>docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
954baf5fbc63 conan_training_env_conan-training "tail -f /dev/null" 14 minutes ago Up 5 minutes conan-training
e030b0448f87 conan_training_env_jfrog-artifactory-training "/entrypoint-artifac…" 14 minutes ago Up 5 minutes 8081/tcp, 0.0.0.0:8082->8082/tcp jfrog-artifactory-training

Exercise issue with bzip2 lib. Expected version: 1.33.0, current version 1.28.1

Hello.

I am facing issues with the tutorial of conan. Due to updates in libs, required version of conan is 1.33.0, but, in the image I downloaded, it is still 1.28.1.

bzip2/1.0.8: Downloaded recipe revision 0
ERROR: bzip2/1.0.8: Cannot load recipe.
Error loading conanfile at '/home/conan/.conan/data/bzip2/1.0.8/_/_/export/conanfile.py': Current Conan version (1.28.1) does not satisfy the defined one (>=1.33.0).
conan@33bcf2d9910c:~/training/consumer/build$ vi ../
.gitignore CMakeLists.txt build/ conanfile.txt timer.cpp
conan@33bcf2d9910c:~/training/consumer/build$ vi ../
.gitignore CMakeLists.txt build/ conanfile.txt timer.cpp
conan@33bcf2d9910c:~/training/consumer/build$ vi ../conanfile.txt
conan@33bcf2d9910c:~/training/consumer/build$ vi ../conanfile.txt
conan@33bcf2d9910c:~/training/consumer/build$ vi ../conanfile.txt
conan@33bcf2d9910c:~/training/consumer/build$ conan install ..
Configuration:
[settings]
arch=x86_64
arch_build=x86_64
build_type=Release
compiler=gcc
compiler.libcxx=libstdc++11
compiler.version=7
os=Linux
os_build=Linux
[options]
[build_requires]
[env]

ERROR: bzip2/1.0.8: Cannot load recipe.
Error loading conanfile at '/home/conan/.conan/data/bzip2/1.0.8/_/_/export/conanfile.py': Current Conan version (1.28.1) does not satisfy the defined one (>=1.33.0).

Currently, I am running pip install conan --upgrade to make it work, but I think it would be great to update the images :)

Conan Essentials - Remote repositories on Artifactory

Hi,

The question 5 of the quiz and the summary mention the option -q of the search command whereas it has not yet been introduced in any previous exercises. Would not it be pertinent to add one or two command examples in the previous exercises?

Thanks for those excellent training sessions.

Laurent Taurines

Add --recipe-only flag to conan export command

When using in-source recipes and the total size of the exported sources is very large, the conan export command takes a long time, and this can be highly problematic is some development workflows (such as mono-repo for example). This problem could be solved by adding a flag to conan export such as --recipe-only, which simply copies only the conanfile to the local cache.

[Missing Info][Blocked] Exercise : Upload to Artifactory - Part 1

The first command in the exercise is:
conan remote list
Which gives a result of:
conan-center: https://conan.bintray.com [Verify SSL: True]

We're next told to go to the web UI, without any information about where the web UI is supposed to be found. The address above does not go to it (it links to a .dms file with an empty {} curly brace set). The video shows going to http://34.67.115.149:8082/ui/admin/repositories/local/new which only returns ERR_EMPTY_RESPONSE when it returns anything (removing path targets does not change this).

Multiple steps occur on this mysterious web UI, and information from the UI is required for the next command line instruction.

Like many exercises, there is nothing on the right hand side to expand.

This exercise cannot be completed with the information provided.

Conan Essentials - Environment Set-Up

If you set-up the prerequisites, the training container won't load because the artifactory port is already in use.
Easily worked around, but annoying.

zlib source code failed to download in VPN (ZScaler)

When running the training in the docker and enabled my VPN (ZSCaler), the download of the source code from sourceforge will fail.

This fails in Ex.16, when cross-building the zlib:

zlib/1.2.11: Configuring sources in /home/conan/.conan/data/zlib/1.2.11/_/_/source
ERROR: Error downloading file https://zlib.net/zlib-1.2.11.tar.gz: 'HTTPSConnectionPool(host='zlib.net', port=443): Max retries exceeded with url: /zlib-1.2.11.tar.gz (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1076)')))'

wget will fail too:

wget https://downloads.sourceforge.net/project/libpng/zlib/1.2.11/zlib-1.2.11.tar.gz
ERROR: cannot verify downloads.sourceforge.net's certificate, issued by 'CN=Zscaler Intermediate Root CA (zscaler.net) (t)\\ ,OU=Zscaler Inc.,O=Zscaler Inc.,ST=California,C=US':
  Unable to locally verify the issuer's authority.
To connect to downloads.sourceforge.net insecurely, use `--no-check-certificate'

I have checked without the VPN and it works. Other users worked for them, even if using ZScaler too.

Connecting to Artifactory

To mimic the tutorial, I created a repo in JFrog bintray (https://bintray.com/nsangal/myconanrepo) and I would like to upload the hello package as per the tutorial.

However, I get log in error - Wrong user or password.

neeraj@Ubuntu:~/training$ conan remote list
conan-center: https://conan.bintray.com [Verify SSL: True]
artifactory: https://api.bintray.com/conan/nsangal/myconanrepo [Verify SSL: True]

neeraj@VerifaNeerajUbuntu:~/training$ conan upload "hello" -r artifactory --all
Are you sure you want to upload 'hello/0.1@user/testing' to 'artifactory'? (yes/no): yes
Uploading to remote 'artifactory':
Uploading hello/0.1@user/testing to remote 'artifactory'
Please log in to "artifactory" to perform this action. Execute "conan user" command.
If you don't have an account sign up here: https://bintray.com/signup/oss
Remote 'artifactory' username: nsangal
Please enter a password for "nsangal" account:
ERROR: Wrong user or password

I typed the user and password that I use to log into the JFrog bintray account. Thanks for your help.

[Feedback] Conan Advanced - python_requires

A common question among users about python_requires is to how to use pip dependencies with it. While the quiz provides an answer in the form of a question that it's not a tool for that - the course itself should state the difference a bit louder.

[Feedback] Conan essentials: Exercise 9a : Upload to Artifactory: failed 400 V2 layout

https://academy.jfrog.com/path/conan/conan-essentials/583137

The command conan upload "hello*" -r artifactory fails

$ conan upload "hello*" -r artifactory
Are you sure you want to upload 'hello/0.1@user/testing' to 'artifactory'? (yes/no): yes
Uploading to remote 'artifactory':
Uploading hello/0.1@user/testing to remote 'artifactory'                                 
Compressing conan_sources.tgz completed [3 files]                                        
Please log in to "artifactory" to perform this action. Execute "conan user" command.
Remote 'artifactory' username: [email protected]
Please enter a password for "[email protected]" account: 
ERROR: hello/0.1@user/testing: Upload recipe to 'artifactory' failed: 400: Conan is not yet migrated to V2 layout. Check logs for progress details.. [Remote: artifactory]

ERROR: Errors uploading some packages

Conan version is 1.30.0

[Bug] Note : "create" command with "in-source" recipe is local - duplicated video

In the Create Conan Packages section, the entry Note : "create" command with "in-source" recipe is local uses the same video as the previous note: Note : "create" and "test_package" are local

Expected:

The image and VO in this entry would reference "in-source"

Actual:

The image and VO reference "test_package"

It seems probable that one can infer this means the same practical thing for "in-source" as it does for "test_package" but it does leave things a little confused.

Exercises do not work in the recommended docker image (conan too old, 1.28.1, but 1.32.0 required at least)

I practically cannot run the first example (Exercise : Consume with CMake - https://academy.jfrog.com/path/conan/conan-essentials/583095) because the Conan version of the recommended docker is 1.28.1, but 1.32.0 is the minimum version required. I think it would be better to provide a docker image that works out of the box. Failing that, at least instructions on how to upgrade conan in our containers or steps how to lower the requirements.

conan@52dc4eae7f13:~/training/consumer/build$ conan install ..
Configuration:
[settings]
arch=x86_64
arch_build=x86_64
build_type=Release
compiler=gcc
compiler.libcxx=libstdc++11
compiler.version=7
os=Linux
os_build=Linux
[options]
[build_requires]
[env]

ERROR: poco/1.9.4: Cannot load recipe.
Error loading conanfile at '/home/conan/.conan/data/poco/1.9.4///export/conanfile.py': Current Conan version (1.28.1) does not satisfy the defined one (>=1.32.0).
conan@52dc4eae7f13:~/training/consumer/build$

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.