Diego
Diego Rodriguez-Losada‘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 C/C++ package manager co-creator and maintainer, now working at JFrog as Conan Lead Architect and C/C++ Advocate.
Sesión
10 years, +10K stars, MIT license, thousands of community pull-requests per year, reaching 3 millions downloads per month (once classified as a PyPI critical 1% project). Used in production by thousands of organizations worldwide and more than 15% of Fortune 100/500 companies, supported by a team of 10 full time maintainers, and fully created and developed in Spain. If you haven’t heard of it, it is because it is Conan (https://conan.io), a C/C++ package manager, a tool focused on another programming language and community.
This talk will present the lessons learned while creating, developing, maintaining and supporting this Python project, how different challenges have been approached, what worked and what was not so great:
- Typing, or better, the lack of it
- Testing strategy: unit, integration, e2e, thousands of tests, 98% coverage. Our testing framework and - CI for Windows, Linux, OSX, with multiple compilers and build systems.
- The pain of Conan1 to Conan2 migration, repeating Py2-3 history
- Hitting Hyrum's law, the pain of public interfaces and APIs. How to evolve without breaking user space. Documentation.
- Distributing and installing the tool in different OS. Minimizing dependencies.
- The tool configuration system, one tool to rule them all.
- Performance and concurrency challenges.
- Was Python the best tool for the job?
- Abuse of the tool for other programming languages, including Python
- Python backend for C/C++ native extensions with dependencies.
From developers having to maintain long-lived Python projects with many users, to tool creators and open source maintainers planning their project to become a popular open source one, all will be able to benefit from the many learnings that this project has accumulated in the last decade.