Open tkphd opened 1 year ago
As mentioned in Slack, there are a couple of options on how to practically implement this: https://reside-ic.github.io/blog/r-markdown-internationalisation/ has a pretty good overview.
The old approach could probably still be used if we employ child documents, but it would involve quite a bit of boiler plate (and if I am honest, I definitely prefer having the content directly in the lesson files!). There was some discussion on this in https://github.com/carpentries/sandpaper/issues/368
From the discussion at the May 4 co-working meeting, an example of valuable content that's only in the snippets at the moment is the Compute Canada snippets, which expand the lesson substantially with material about how to obtain software for their site.
Information like this presents a challenge in the absence of a mechanism for site-specific annotations or content, but on the other hand, site-specific content does not get captured in the core lesson, and maybe should be.
Edit: A likely solution to this is that, for the case of software environments, probably this isn't truly site-specific, nobody "owns" lmod modules, conda, or wget/curl. The content can probably be expressed in a non-site-specific way?
Todo: summarize specific or detailed lesson content in the Snippet Libraries that is not captured elsewhere.
For new adoption, editing the snippet library is tedious, because the snips contain no context and many of them appear to be boilerplate output. Without rhyme or reason, this task becomes daunting. Streamlining this would be excellent.
I came across this issue as I discovered the snippets feature of HPC Carpentry recently, and want to add a couple of notes:
I've been thinking about how to implement translations recently and at the same time consider how we can support multiple schedulers. I've come up with something for translations (see https://github.com/carpentries/sandpaper/issues/18#issuecomment-1721491625 and https://github.com/carpentries/sandpaper/issues/18#issuecomment-1723217737 for the details), and I have an idea for how this can also work for schedulers:
slurm
subdirectory). The scheduler specific alternates are stored with the same name under a scheduler folder in the same directory (such directories are currently ignored by the Workbench build process).This approach has the benefit of completely separating translations and scheduler content but does mean that the complexities of the build process are hidden away within our GitHub Actions. This approach could also be extended for different configurations of the lesson for different sites (but then the list of possible options may be too much).
I believe this approach can be implemented with the Workbench as it stands today.
The snippet library in our lessons is useful, but does not map well into the new Carpentries Workbench framework, and involves a fairly high degree of maintenance.
This Proposal is to replace our cluster-/site-specific snippet libraries with generic content for schedulers instead, e.g. Slurm, PBS/Torque, and SGE, starting with HPC Workflows as a demonstration.
Advantages:
Disadvantages: