Closed egede closed 8 months ago
The code resides at https://github.com/ganga-devs/ganga/tree/develop/ganga/GangaCore/Lib/Virtualization and some corresponding tests in https://github.com/ganga-devs/ganga/tree/develop/ganga/GangaCore/test/Unit/Utility.
I am an open source first-timer. I would like to solve this issue if it's okay.
Just by skimming over the code and the repo, I guess the following changes need to be made:
Apptainer.py
, the class name and corresponding dependenciesimport
statement to init.pycheckApptainer
function to Virtualization.py. It's probably going to be an exact copy of the checkSingularity function except for its name and the "singularity"
argument in the try
block.TestUtilitiesVirtualizationCheckApptainer.py
, the class name and corresponding dependencies.apptainer
). I believe some scripts in GangaCore
such as TestContainerHandler.py need to be updated.I might be missing a few other dependencies but those should come to the surface as soon as I start testing. Any feedback is appreciated.
This sounds overall good. Usually I would recommend against duplicating code and instead make a parent class that both inherit from but in this case I think duplication is actually better - it will make it easier to delete the Singularity
class in a years time or so.
Thank you. I'll start working on it then.
I do not think it is a good idea to include the use of the deprecated package without the development of a uniform system for it first.
Sounds good!
@egede For the PR, do you want me to squash all commits into one or keep them as they are in the PR?
We are usually not fussed about this. So you can keep them as they are.
Do you want me to update the documentation too?
Actually, updating the documentation can be done as a separate issue. Doesn't make sense to update it right now before the code is QA'd.
I actually think it would be good to update the documentation in the same one. The documentation is built from the code on the develop
branch (that is our main branch). So the documentation will then be updated at the same time as the code is updated.
I am keeping the Singularity documentation as it is and adding Apptainer documentation side by side (or below) as a 1-to-1 mapping since we are still going to keep Singularity alive for some time. Does that sound good?
Opened a PR #2303
For the container plugins, the name of the plugin itself should be changed to
Apptainer
and the default binary used should be changed toapptainer
. The old Singularity plugin can be kept but a deprecation warning should be issued.