Idea: Conan Package Registry with GitLab
Idea
Lets talk about the GitLab conan registry with Tim Rizzi, Sr. Product Manager at GitLab working on the Package stage.
Idea came from working on gitlab-org/gitlab#229368 (comment 418224625) and @dnsmichi
☕ Area
Pick all which apply.
-
DevOps -
DevSecOps -
CI/CD -
Social -
Misc
💡 Description
Registries are an extremely important piece of technology nowadays like for example https://www.npmjs.com (npm) or https://hub.docker.com (docker). It is highly recommended to host your own registry because they contain often important data (see the docker hub rate limiting problem). GitLab makes it really easy to host your own registry (per project and also per instance including gitlab.com and on premise) next to your git repos like npm, pypi, maven, etc. .
GitLab also supports the C++ package manager conan which is really popular in C/C++ world. Conan solves the problem of handling dependencies (build system agnostic) at any scale and is a source and binary package manager. With conan you don't need header only libraries just to make it available for any developer.
I have used conan since V0.6 (2016). I hosted my conan recipes on my own instance of conan_server
(the simple conan server which is part of the conan repo, only for small teams) and nowadays I use artifactory (JFrog, which owns artifactory and conan) also on premise. Hosting your own registry is not so much fun and so GitLabs conan registry is perfect here because it takes away the hassle of hosting another piece of infrastructure and also gives you good permission control in return.
Starting with conan is not so trivial like npm. Also use it in GitLab CI is not easy in the beginning because conan is a special type of package manager which has to be extremely flexible to handle C/C++ build-systems and dependencies of all kinds and so you have to understand their basic concept first really well.
So I tried to create a repo (https://gitlab.com/tonka3000/conan-cpp-example) which acts as a starting point for C/C++ developers to use conan (maybe learn to use conan).
Possible parts of the talk
- Initial implementation
- Why conan
- future plans aka roadmap
- challenges
- little demo
-
Project level remote vs Instance level remote
There are some naming conventions which should be known by a developer. - View proposal
✍ Relevant URLs
💻 Resources
Can you prepare slides, live demo, a short story or a blog post? Pick all that apply.
-
Presentation/Slides (expected: Tim Rizzi) -
Live demo (expected: Tim Rizzi) -
Blog post (@tonka3000 ) -
Story (@tonka3000 )