Skip to content
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

Get rid of the Docker image #226

Open
yakutovicha opened this issue Jan 30, 2025 · 5 comments
Open

Get rid of the Docker image #226

yakutovicha opened this issue Jan 30, 2025 · 5 comments

Comments

@yakutovicha
Copy link
Contributor

yakutovicha commented Jan 30, 2025

Currently, we rely on a Docker image for testing, but this approach is becoming increasingly problematic. While the initial goal was to provide a reproducible and portable environment, several challenges make this less effective in practice. Here are the issues that I encountered:

Architecture Compatibility:

  • Building an image that works on both x86 and ARM architectures is becoming increasingly difficult.
  • For example, CP2K (v9.1) installation is available for both architectures on Ubuntu 22 but not on Ubuntu 24.
  • Conda only provides CP2K binaries for x86: Conda CP2K.
  • GitHub releases of CP2K also contain only the x86 version: CP2K Releases.

Maintenance Burden:

  • As a result of the previous points, the growing complexity of maintaining a functional Docker image is making it more of a hindrance than a benefit.

Development Workflow Mismatch:

  • Plugin development (at least from my side) is primarily done using AiiDAlab images, which already provide the necessary environment.
  • As a result, the aiida-cp2k container is rarely used in development.

Coverage Reporting Issues:

  • Setting up coverage reporting within the container is complicated since standard actions do not work.

Dependency on aiida-core Base Image:

  • Recently, aiida-core 2.6.x versions were released with a critical fix for the restart work chain.
  • However, the absence of corresponding Docker images meant that we could not immediately apply the fix, delaying our ability to resolve testing issues.

Conclusion

Based on the above, I propose we stop using the container for testing the plugin to simplify our lives.

@yakutovicha
Copy link
Contributor Author

@oschuett would you agree?

@oschuett
Copy link
Collaborator

You could use the official CP2K containers: https://hub.docker.com/r/cp2k/cp2k/tags
For the time being they are only for x86, but since AiiDA is written in Python it should be very portable.
As for CP2K, we do test it daily on ARM-64 and Apple M1.

@yakutovicha
Copy link
Contributor Author

yakutovicha commented Feb 2, 2025

You could use the official CP2K containers: https://hub.docker.com/r/cp2k/cp2k/tags

That doesn't solve the problem of testing/developing on ARM machines

@oschuett
Copy link
Collaborator

oschuett commented Feb 3, 2025

That doesn't solve the problem of testing/developing on ARM machines

That's true. What I'm trying to say is that in my opinion it's not worth the effort.

As for getting ride of the container, does this mean you would stop integration testing CP2K+AiiDA entirely on your side?

@yakutovicha
Copy link
Contributor Author

As for getting ride of the container, does this mean you would stop integration testing CP2K+AiiDA entirely on your side?

No, absolutely not.

I am only talking about removing the docker layer. I will run the tests directly on GitHub Runner. This will allow me to pull CP2K directly from the release page, since I am now sure that the architecture is x86.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants