Comments (13)
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.
from ganga.
We are usually not fussed about this. So you can keep them as they are.
from ganga.
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.
from ganga.
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.
from ganga.
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:
- Create a copy of Singularity.py, change the script's name to
Apptainer.py
, the class name and corresponding dependencies - Add a deprecation warning to Singularity.py
- Add new
import
statement to init.py - Add a
checkApptainer
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 thetry
block. - Create a copy of TestUtilitiesVirtualizationCheckSingularity.py, change the script's name to
TestUtilitiesVirtualizationCheckApptainer.py
, the class name and corresponding dependencies. - Add a deprecation warning toTestUtilitiesVirtualizationCheckSingularity.py
- The default binary also get updated accordingly (to
apptainer
). I believe some scripts inGangaCore
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.
from ganga.
Thank you. I'll start working on it then.
from ganga.
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.
from ganga.
Sounds good!
from ganga.
@egede For the PR, do you want me to squash all commits into one or keep them as they are in the PR?
from ganga.
Do you want me to update the documentation too?
from ganga.
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.
from ganga.
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?
from ganga.
Opened a PR #2303
from ganga.
Related Issues (20)
- How to split job over a list of input files with Dirac HOT 4
- Missing UltraDict and psutil dependencies for GangaDirac (8.7.2) HOT 1
- Making Dirac proxy stuck in loop HOT 10
- Overloading AFS HOT 1
- [Feature] Enhance Workflow with Pre-commit Hook HOT 1
- Let the virtualization feature support unpacked containers
- Add deprecation system HOT 7
- ganga do not stop when a dirac job is submitted HOT 1
- Utility in GangaTest utils to check if required files are generated in the output directory HOT 4
- Running a Ganga job locally through a Docker container throws syntax error HOT 3
- Virtualization.rst is probably showing incorrect docker commands when calling the Docker class through job.virtualization HOT 2
- Running unit tests throw logging error
- Better handle the case that jobs don't exist in DIRAC HOT 4
- Need gfal2 plugins HOT 4
- GSoc 2024: Integration of LLM into command prompt and exception handling HOT 3
- Investigate docker commands that do not currently work with virtualization and make them work HOT 11
- Support SMOG2 in LHCb bookkeping queries HOT 2
- Updating Developer Documentation HOT 2
- Incomplete python3 migration in BatchScriptTemplate.py.template
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ganga.