<@U03R5TJ77GF> <@U03CKGEU3LZ> <@UE6D8290F> <@UGJEZ...
# configs
j
@Jim Downie @Nicolas Vannieuwkerke @Maxime Garcia @pontus let's hash out these two questions on the config specs in a nthread here: โ€ข https://github.com/nf-core/website/pull/4087#discussion_r3109041772 โ€ข https://github.com/nf-core/website/pull/4087#issuecomment-4280624252 ๐Ÿงต ๐Ÿ‘‡
I'm trying to understand exactly what is being request, do you want an an explicit description of HOW we should format dynamic HPC selection? Or just an explicit excemption, e.g. 'You MAY have one config for multiple related-intrastructures (e.g. HPCs), if they support automatic-selection of the given infrastructure with a a conditional'
j
I think I'm talking mainly specifically about /how/ or /whether/ these dynamic includes can be used
j
In that case I can't say anything as I've not dealt with someothign so complex, so I will need you/VSC/UPPMAX people to come up with the guidance ๐Ÿ˜ฌ
j
I think that the logic of what we are doing at Sanger is sound, most of the infrastructure is the same across the two cluster types and it's good to share logic. But currently we have made a specific and perhaps non-sanctioned approach with a
sanger.conf
that includes configs from a
sanger/
directory
If we're going to support this, is this the recommended way? Should all configs be in their own directory that also contains sub-configs?
etc
j
I'll come back for your final decision in about 30m ๐Ÿ˜‰ so please can someone write the final text for then ๐Ÿ˜‰
p
I think this approach is fine and allowed, but would prefer not to specify this as a recommended way just now.
n
Is this also a hard requirement? As it has caused more confusion than anything else maybe we should just drop it?
j
hard requirement
you mean one config == one cluster/infra?
n
yes
j
No, which is why it's phrased as a 'SHOULD' . But I personally would rather try to discourage it ot prevent very very complicated configs which are a) harder to maintainer b) will be hard to mass update when we get to Nextflow DSL3 ;)\
n
Fair enough, I'll try and think of something ๐Ÿ˜›
j
I think I'm talking mainly specifically about /how/ or /whether/ these dynamic includes can be used
To be clear, I think there might be more use-cases for this than "supporting slightly different clusters" which is why I bring it up more generally - maybe enabling or disabling certain features via params?
n
Each cluster or type of infrastructure SHOULD only be represented by a single configuration file. Dependent on the infrastructure this can mean that there is one config per cluster on the system or one configuration file for the whole system.
Something like this?
m
we can always include configs in configs, so I would even go for must
j
Each cluster or type of infrastructure SHOULD only be represented by a single configuration file. Dependent on the infrastructure this can mean that there is one config per cluster on the system or one configuration file for the whole system.
I like that
๐ŸŽ‰ 1
n
we can always include configs in configs, so I would even go for must
I would keep it as a SHOULD since HPC systems can be very weird
๐Ÿคฃ 1
j
FWIW Nextflow should really support system-level config files that are installed in
/etc/nextflow/
or something
j
> Each cluster or type of infrastructure SHOULD only be represented by a single configuration file. > > For HPC infrastructure: a single config MAY include multiple related- or linked-HPCs that are dynamically selected within the config. > If multiple HPCs are supported in a single config, sub-configs that are selected based on a condition in the main config SHOULD go in in sub directories and included in the main config with
includeConfig
What about that?
j
That's good also. Would be good to state that the directory must have the same name as the config basename?
j
So it would be:
Copy code
sanger.conf
sanger/
   hpc1.conf
   hpc2.conf
?
j
Yeah. Alternative would be to put /everything/ in a directory, and have:
Copy code
sanger/
    sanger.conf
    hpc1.conf
    hpc2.conf
But that could be taken as a stronger push towards using this approach
โœ… 1
n
Yeah yours is also very clear! Might need some updates to our config but it will make everything more clear
j
@pontus @Maxime Garcia, is that OK with you?
โœ… 1
Yeah. Alternative would be to put /everything/ in a directory, and have:
@Edmund has a separate proposal for this along those lines actually: https://github.com/nf-core/configs/issues/806
But I suggested we write the specs as we currently have structured, and do the update afterwrds
๐Ÿ‘ 3
Ok update, @Jim Downie @Nicolas Vannieuwkerke can I get some โœ… if you're happy now: https://github.com/nf-core/website/pull/4087
๐Ÿ‘€ 2