-
Notifications
You must be signed in to change notification settings - Fork 90
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Eating Our Own Ice Cream: Use Conan's CMake recipe #241
Conversation
98efa82
to
e1e9754
Compare
e557094
to
cf3caff
Compare
Ready! |
May I get some feedback here? @uilianries @danimtb @czoido 😃 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM I like this idea
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi! I'm a bit concerned about these changes to these images.
I totally agree we should eat our own dog food and, if these docker images were distributed ONLY to outside parties, I'd totally support installing these tools using Conan. It totally makes sense: Conan generates docker images and uses Conan to install tools 💯
BUT, these images are used in conan-center-index
too, these images are the ones we use to compile and generate packages, this CMake is the one we use to compile the packages (cmake/3.18.5
too). If we break cmake
package and update the docker image, we can't recover, we won't be able to compile CMake in conan-center-index
because the installed CMake is broken.
This is very unlikely, but there is a risk (and some headache) we can avoid. We can talk about this, but we need to be sure about what we are doing and why, it requires some consensus. Maybe we need to differentiate between the images we use in C3i (use an independent mechanism to install tools) and other ones we could start to distribute as "Conan images ready to build your binaries".
I like how @jgsogo predict possible failures involving CCI and CDT, indeed the risk is real. What about installing a specific package revision? So we could prevent any possible broken package. |
@Croydon Sorry for creating a conflict with your PR 😞 |
I think splitting containers would be the worst possible thing we could do, so personally, I'm against that. You have a good point to worry about a dead lock situation. Some ideas:
I think that 2) might be actually the best idea 🤔 |
ec14275
to
d598db8
Compare
02b495f
to
6ef2ba8
Compare
I pinned the CMake recipe revision |
As another note, it is pretty unlikely that we deploy new Docker images with a broken CMake since the CI here is building Conan packages with CMake in the tests |
Closing this as it would require a complete rewrite by now. However, some of the concepts are merged by now, like using different container layers, so that temporary files don't get into the final container, using more parameters to configure things and starting to use Conan packages for creating the containers itself (#370) 👏 |
@Croydon Thank you for sharing this idea. Indeed we started to think about using Conan packages instead of APT packages on "modern" Docker images. Binutils is a good start because we didn't find the latest version available from an external PPA and building from source would consume even more time when creating a Docker image. As next step, probably we will internalize other tools which are available in Conan Center, or convert them to Conan packages, e.g. git. |
Changelog: Feature: Use a Conan build of CMake for our build images
https://en.wikipedia.org/wiki/Eating_your_own_dog_food#Alternative_terms
Let's try this first with CMake and get some experience. Later we can
Some explanations:
make
make
.