Pinning the dependencies and listing all subdependencies are generally not good practice. It will make conflicts ~more likely~ inevitable, which in turn makes a package ~harder~ impossible to install when you want to use it in an environment together with other packages.
Now having said that, it could make sense for this repository because reproducibility is the main goal here.
I think there's a few options here:
Define a single environment per recipe. In that case, I would prefer to use a proper lock file to make sure the environment is reproducible. I would give Pixi a look to accomplish this.
Define a global environment to be used by each recipe in a way similar to how we do so for Polaris.
Given the scope that we will want to cover, I think we'll require a lot of different dependencies, which would make a monolithic environment file as in option 2 impractical. I thus think we should go with option 1!
Pinning the dependencies and listing all subdependencies are generally not good practice. It will make conflicts ~more likely~ inevitable, which in turn makes a package ~harder~ impossible to install when you want to use it in an environment together with other packages.
Now having said that, it could make sense for this repository because reproducibility is the main goal here.
I think there's a few options here:
Given the scope that we will want to cover, I think we'll require a lot of different dependencies, which would make a monolithic environment file as in option 2 impractical. I thus think we should go with option 1!