carpentries-incubator / singularity-introduction

An introduction to singularity
https://carpentries-incubator.github.io/singularity-introduction
Other
11 stars 18 forks source link

Name change from Singularity to Apptainer #32

Open warrickball opened 1 year ago

warrickball commented 1 year ago

Singularity is now Apptainer but this change isn't reflected in this course at all. For example, the top-level README points to

https://github.com/hpcng/singularity

which redirects to

https://github.com/apptainer/singularity

which is only an archive repo.

I apologise if you've already considered this but I searched the repo (code, issues and PRs) and found no mention of Apptainer.

The change is probably in some sense incomplete. Among other things, I wouldn't be surprised if some HPC users log in to systems that still have Singularity but not Apptainer, but some users might already get confused. Our HPC admins, for example, have left a symlink from singularity to apptainer.

I'd suggest that both the repo documentation and the course itself mention that Singularity is now Apptainer but its behaviour is unchanged. I'm happy to create a PR that adds a simple statement, like the official announcement, explaining the name change to both.

In the long run, all references to Singularity and relevant links should be replaced with Apptainer and its links. I'm personally expecting to need to start building and maintaining containers starting in April (which is why I found this course) so I'm happy to propose revisions then when I work through this material.

jcohen02 commented 1 year ago

Hi @warrickball, thanks for your input and for opening this issue.

So far, we've been dealing with the Singularity name change on a case-by-case basis, as things have developed - when the maintainers run this course, we fork this core material and make updates specific to the instance of the course that we're running (e.g. providing local, site-specific instructions for the infrastructure available for a given run of the course). So far, we've been handling the name change of the main open source Singularity codebase to Apptainer by covering a bit of history about Singularity at the start of the material, e.g. see this example from a course run last year.

However, as you're probably aware, the current Singularity structure is not straightforward. The main issue with making a complete switch of everything from singularity to apptainer is that, so far, in 2021/2022, many of the high performance computing platforms being used by learners who have attend courses covering this material have been running versions of Singularity prior to the initial Apptainer release, although this is, of course, now changing. Also, there are people running the SingularityCE open source release from the Sylabs fork. It also seems to be fairly common to have the apptainer executable symlinked to singularity, presumably to support existing scripts and workflows? The tool also seems to still be widely known within the community as "Singularity" although, again, I guess that will change in time as Apptainer becomes more widely known.

Either way, this is something we're thinking about how to address but we have been reluctant to make a switch across all the material to use "Apptainer" rather than "Singularity" at this stage to avoid confusing learners who are still very familiar with Singularity as a tool that they are keen to learn. If/when the open source releases of SingularityCE and Apptainer begin to diverge more substainantially, there will hopefully be some greater clarity about how to address this within the material.

I really appreciate your offer of contributing revisions to the material and it would be good to take you up on this in due course, if you're still in a position to offer a contribution, however, I think we need to decide on the best approach to ensure that the material is compatible with new deployments as well as exisiting deployments on HPC infrastructure while also providing some context around the name change.

One wonders if porting an updated version of the introductory "history" text from the course repo that I linked to above into this main repo could be a short-to-medium term solution. We'd then explain that if you're using a new "Apptainer" release you may need to use the command apptainer in place of singularity. At the same time, if a platform has singularity symlinked to apptainer, even that shouldn't be an issue.

It would be good to get your thoughts on this, @warrickball.

@aturner-epcc, do you have thoughts on this too?

warrickball commented 1 year ago

One wonders if porting an updated version of the introductory "history" text from the course repo that I linked to above into this main repo could be a short-to-medium term solution.

Yes, I would take that as a good interim solution. That description looks quite complete to me. A few absolute dates would help prevent it falling out of date but otherwise the key points are there.

I'm happy to open a PR to implement this modest change.

I'm not familiar with the SingularityCE fork and will bear it in mind as I make my way through this course later.

jcohen02 commented 1 year ago

Many thanks @warrickball, yes, if you're happy to open a PR to add some history/background into the main repo, that would be great, feel free to go ahead and do this at your convenience.