JFrog Academy: Conan 2 TrainingΒΆ

Conan 2 training is available on the JFrog Academy in two paths: Conan 2 Essentials and Conan 2 Advanced. There are 29 video lessons across 7 modules (16 in Essentials, 13 in Advanced). The courses are practical (with code you can follow along), free, and self-paced.

The examples in the courses use the Conan Training 2 GitHub repository. If you run into problems with the code or have feedback, open an issue there.

Conan 2 EssentialsΒΆ

Fundamentals of consuming and creating packages. Good starting point if you have little or no Conan experience.

Register here: Conan 2 Essentials

Modules:

  • Module 1: Fundamentals of Package Usage (Lessons 1–7, ~59 min) β€” Building a simple CMake project, multiple configurations (Release/Debug, static/shared), conanfile.py for consumption, build tools as Conan packages, cross-compilation (host/build profiles), versioning (revisions, version ranges, lockfiles), Conan Audit.

  • Module 2: Package Creation and Uploading (Lessons 8–13, ~48 min) β€” First package, dependencies and generators, package() and package_info(), settings and options (package_id), testing packages, remotes and uploading.

  • Module 3: Advanced Package Creation Scenarios (Lessons 14–16, ~21 min) β€” Header-only libraries, prebuilt binaries, tool requires.

Conan 2 AdvancedΒΆ

For users who already know Conan 2 basics. Local development, dependency graph, extensibility, and the advanced binary model.

Register here: Conan 2 Advanced

Modules:

  • Module 1: Developing Packages Locally (Lessons 17–18, ~16 min) β€” Package development flow (source, install, build, export-pkg), editable mode.

  • Module 2: The Dependency Graph (Lessons 19–21, ~25 min) β€” Package types, test_requires, advanced versioning and lockfiles.

  • Module 3: Extensibility & Customization (Lessons 22–26, ~47 min) β€” Config and extensibility (config install), deployers, custom commands, hooks, python_requires.

  • Module 4: Advanced Binary Model (Lessons 27–29, ~28 min) β€” Binary model, extending the model (custom settings, conf in package_id), defining binary compatibility.