Gathering the Tribes Gathering the Tribes

Gathering the Tribes Gathering the Tribes

Gathering the Tribes Gathering the Tribes

Conan Community and C/C++ build engineering and packaging enthusiasts

March 19-20 | Madrid

About ConanDays

ConanDays, 2 days full of technical content for the whole Conan Community and C/C++ build engineering and packaging enthusiasts in Madrid, Spain, 19-20 March 2020.

  • Technical talks with real-life examples from Conan experts/contributors/users
  • Keynote about “Modules: The Future of Building C++” from Bryce Lelbach
  • Hands-on trainings
  • Campfire session on defining the future of Conan together
  • Networking, fun and a social evening event

Come to learn the latest Conan features or good practices, or to share your knowledge and engage with other Conan users and experts, but also with other contributors and the Conan founders and maintainers.

Our Call for Speakers is open!

We look forward and welcome submissions from everyone. We are interested in all kind of talks that relate to Conan and C/C++ building and packaging.
There are slots of 45 minutes talks.

AGENDA

  • Day 1
  • Day 2

8am – 9am
Registration + Breakfast

9am – 12pm
Training Tracks

12pm – 1:30pm
Lunch Breakout

1:30pm – 2:00pm
Opening Keynote
“State of Conan” – Diego Losada Rodriguez

2:00pm – 2:15pm
Break

2:15pm – 5:00pm
The Campfire, Hearing the Tribes
Collaboratively Defining the future of Conan (in smaller workshop groups)​

6:00pm – 10:00pm
Evening Event

9:00am – 10:30am
Keynotes

10:30am – 10:45am
Break

10:45am – 12:45pm
Community Talks 

12:45pm – 1:45pm
Lunch Breakout

1:45pm – 3:45pm
Community Talks 

3:45pm – 4:00pm
Break

4:00pm – 6:00pm
Community Talks

6:00pm
Closing Ceremony

  • Day 1

8am – 9am
Registration + Breakfast

9am – 12pm
Training Tracks

12pm – 1:30pm
Lunch Breakout

1:30pm – 2:00pm
Opening Keynote
“State of Conan” – Diego Losada Rodriguez

2:00pm – 2:15pm
Break

2:15pm – 5:00pm
The Campfire, Hearing the Tribes
Collaboratively Defining the future of Conan (in smaller workshop groups)​

6:00pm – 10:00pm
Evening Event

  • Day 2

9:00am – 10:30am
Keynotes

10:30am – 10:45am
Break

10:45am – 12:45pm
Community Talks 

12:45pm – 1:45pm
Lunch Breakout

1:45pm – 3:45pm
Community Talks 

3:45pm – 4:00pm
Break

4:00pm – 6:00pm
Community Talks

6:00pm
Closing Ceremony

ConanDays Trainings

On the first day of ConanDays, March 19th, we will start with three different 3-hour hands-on technical training sessions that you can choose from:

Conan Essentials

Conan introduction for beginners, helping those starting out get the most out of the rest of the conference.
Duration: 3h
Duration: 3h

Description
This class is a hands-on introductory course on how to use Conan. It will cover the basic use of Conan like how to consume existing packages in your applications, how Conan integrates with different build systems and how to create packages for your own libraries. These concepts will be approached and learned in real working exercises, installing, creating, cross-building, uploading and downloading packages.

Why should I attend?
This course is the perfect complement if you are new to Conan or want to refresh basic concepts to make the most of the talks in ConanDays.

Topics covered

  • Using existing packages in your applications.
  • Using different build systems: Conan generators and build helpers
  • Searching and displaying information about packages and the dependency graph
  • Creating packages for C++ libraries.
  • The binary model: how to create and maintain packages for different OS, compilers, architectures… using profiles.
  • Cross-compiling packages
  • Conan decentralized architecture: uploading and downloading packages to remote servers. Using Artifactory CE server.
  • Introduction to Bintray repositories, existing OSS packages.

Prerequisites

  • Basic knowledge of building C++. Very basic CMake will be used in the examples, but not necessary to have used it before.
  • A laptop with a reasonably modern OS and WiFi internet capable.
  • Environment (Conan, CMake, editors) will be virtualized in the cloud.
Read more  

Conan Advanced

Advanced topics for more savvy users, introducing some of the latest and greatest Conan features.
Duration: 3h
Duration: 3h

 

Description
This class is a hands-on course on advanced Conan topics such as integrations with different build systems, SCM, development of packages, versioning, dependencies conflicts, ABI compatibility and binaries management, revisions and lockfiles. These concepts will be approached and learned in real working exercises, installing, creating, cross-building, uploading and downloading packages.

Why should I attend?
This course is perfect if you have previously used Conan but did not have the chance to try new or advanced features like python-requires, lockfiles or revisions.

Topics covered

  • Using Conan packages to wrap tools like CMake, compilers or testing frameworks, with build-requires
  • Integrations with source control systems
  • Automatic versioning with package revisions
  • Customizing the binary model. Distributing configuration with “conan config install”
  • Store the information of a whole dependency graph using lockfiles.
  • Conan extensions: hooks (linter, binary checking, etc) and python-requires (how to reuse common code in your package recipes)

Prerequisites

  • Familiarity with Conan. Basic knowledge on Conan like how to consume and create packages, using different profiles, settings, and options and uploading and downloading from remotes with Conan. 
  • Basic knowledge of building C++. Very basic CMake will be used in the examples, but not necessary to have used it before.
  • A laptop with a reasonably modern OS and WiFi internet capable.
  • Environment (Conan, CMake, editors) will be virtualized in the cloud.
Read more  

CI/CD Best Practices for C/C++ Projects with Conan and Artifactory

A course on how to set up a CI/CD flow for C/C++ projects using Conan along with other technologies such as Jenkins. It will cover which Conan features can help in quickening the adoption of a CI/CD pipeline for your C/C++ projects, how the different parts of the system relate to each other and what are the challenges that must be faced.

Duration: 3h
Duration: 3h

 

Description
Implementing modern DevOps and continuous integration in C and C++ projects isn’t easy. It is still challenging due to the nature of the C/C++ programming language and its ecosystem. This class is a hands-on course on how to set up a CI/CD flow for C/C++ projects using Conan along with other technologies such as Jenkins. It will cover which Conan features can help in quickening the adoption of a CI/CD pipeline for your C/C++ projects, how the different parts of the system relate to each other and what are the challenges that must be faced.

Why should I attend?
If you haven’t implemented a CI/CD flow for your C/C++ projects yet or you have done it but you want to learn some tips and good practices you should attend this training session.

Topics covered

  • Challenges using C/C++: slow builds, huge projects, manage transitive dependencies, binary management, ABI compatibility.
  • Conan features that can help to set up the pipeline: package ID modes, revisions, lockfiles
  • Generation of build info: creating build info from lockfiles and publishing the info to Artifactory
  • Promoting artifacts between different repositories.
  • Artifactory. Setting up the repositories for the pipeline. Using a generic Artifactory repository to store metadata information for the pipeline.
  • Introduction to the Jenkins Artifactory plugin.

Prerequisites

  • Mid/Advanced knowledge level on Conan with some experience using features such as lockfiles, revisions, and package id modes.
  • Knowledge of building in C++.
  • A laptop with a reasonably modern OS and WiFi internet capable.
  • Environment (Conan, CMake, editors, Jenkins) will be virtualized in the cloud.
Read more  

Introduction to CMake

a hands-on introductory course on how to use CMake to manage your builds. It will cover an overview of CMake and how to use modern CMake features to build your executables and libraries in a cross-platform manner.
Duration: 3h
Duration: 3h

 

Description
This class is a hands-on introductory course on how to use CMake to manage your builds. It will cover an overview of CMake and how to use modern CMake features to build your executables and libraries in a cross-platform manner.

Why should I attend?
This training session will be very useful for both new and experienced C/C++ developers that don’t have a lot of experience using CMake.

 

Topics covered

  • CMake concepts and workflow.
  • CMake generators.
  • Use CMake to build projects cross-platform. Creating executables and libraries with CMake.
  • CMake language features. Using macros and functions.
  • CMake syntax. Use of variables and cache.
  • Modern CMake. Using targets.

Prerequisites

 

  • Basic knowledge of C++.
  • A laptop with a reasonably modern OS and WiFi internet capable.
  • Environment (Compilers, CMake, editors) will be virtualized in the cloud.
Read more  

Location

We will meet in the cozy hotel Melia Reina Victoria, in the heart of Madrid. It is located in a vibrant and beautiful area, Madrid’s historical city center. Madrid has a lot to offer and we will make sure you will spend a great time there!
See you soon!

Hotel rooms for participants are available at the special rate of 205 Euros per night with the group code “ConanDays“, you can write an email to the ConanDays@jfrog.com to book your room(s).

Melia Hotel Reina Victoria
14 Plaza de Santa Ana 28012 Madrid, Spain

Bryce Adelstein Lelbach

Tooling and Library Evolution Incubator

Bryce Adelstein Lelbach has spent nearly a decade developing libraries in C++. Bryce is passionate about C++ evolution and is one of the leaders of the C++ community. He is an officer of ISO/IEC JTC1/SC22/WG21, the C++ Standards Committee. Bryce chairs both the C++ Committee’s Tooling Study Group (SG15) and Library Evolution Incubator (SG18). He is the program chair for the C++Now and CppCon conferences, and the chief organizer of the Bay Area C++ User Group.

On the C++ Committee, he has personally worked on the C++17 parallel algorithms, executors, futures, senders/receivers, multidimensional arrays, and modules. Bryce works at NVIDIA, where he leads the CUDA C++ core libraries team. He is one of the initial developers of the HPX parallel runtime system. He also helped start the LLVM Linux initiative and has occasionally contributed to the Boost C++ libraries.

Modules: The Future of Building C++

Modules are coming to C++ in the next standard, and they will have an impact unlike any other new feature added to C++ since 1998. Modules are a first-class system for encapsulating and defining interfaces to translation units. They are a modern replacement for C++’s textual inclusion system (e.g. headers).

Other features change how you write C++ code. Modules change not only how you write your code; they will change the very structure of your C++ projects, your build system, your IDE, and your tools.

In this talk, I’ll show you how modules work, how they contrast with the current header inclusion system, how you’ll benefit from them, and the transition path for the C++ ecosystem.

Tooling and Library Evolution Incubator

Diego Rodriguez-Losada & Luis Martinez de Bartolome

Founders of Conan

Diego Rodriguez-Losada

Diego’s passions are robotics and SW engineering and development. He has developed many years in C and C++ in the Industrial, Robotics and AI fields. Diego was also a University (tenure track) professor and robotics researcher for 8 years, till 2012, when he quit academia to try to build a C/C++ dependency manager and co-founded a startup. Since then he mostly develops in Python. Diego is a conan.io open source C/C++ package manager co-creator and maintainer, now working at JFrog as SW engineer and C/C++ advocate.

Luis Martinez de Bartolome

Luis is a full stack software engineer with more than 13 years of experience. He has spent the last 5 years mitigating the pains of C/C++ development flows & dependency management. Co-founder of Conan and a proudly Frog 🐸, today spends his time developing Conan and its ecosystem, playing ukulele, growing hydroponic lettuces and enjoying his two kids.

Conan package IDs in depth

The package IDs are the unique identifiers of every binary that can be generated for a certain Conan package version. It is possible to configure them in different ways, based on inputs like the configuration of settings (operating system, compilers, architecture) and options (shared or static libraries, etc), or the topology of the graph and type of dependencies. This talk will deep dive into it: the history, the present, the pros and cons and the future of this key Conan feature, and how it is related to other important features like the dependency graph resolution, the package revisions, how to consume packages and lockfiles.