Hi Kyle,
On 3/24/23 14:59, Kyle wrote:
I am a bit worried about your proposed project is too focused on replacing
python with guile. I think the project would benefit more from making python
users more comfortable productively using Guix tools in concert with the tools
they are already comfortable with.
Yes, I agree with you. Replacing Python with Guile is a much more ambitious
task and is not the highest priority here.
I'm wondering if you might consider modifying your project goals toward
exploring how GWL might be enhanced so that it could better complement more
expressive language specific workflow tools like snakemake. I am also
personally interested in exploring such a facilities from the targets workflow
system in R as well. Alternatively, perhaps you could focus kn extending the
GWL with more features?
I would also be interested in extending GWL with more features, I will follow
up with this on the GWL mailing list.
I agree that establishing an achievable scope within a short timeline is
crucial. The conda env importer idea would be quite an ambitious undertaking by
itself and would lead you towards thinking about some pretty interesting and
impactful problems.
While it's a challenging project, it could be broken into smaller steps:
1. import packages by exact matching names only, without versioning.
2. extend `guix import` to have `guix import conda` to help with package names
that do not match exactly, and to accelerate adoption of Conda packages not in
Guix
3. match software version numbers when translating Conda packages to Guix
What's currently undefined is the error handling:
- if a Conda package does not exist in Guix
- if the dependency graph is not solvable
- if compiling the environment fails (due to mismatching dependency versions)
I believe there are many satisfactory stopping points for successful completion
within the timeline of the summer, which I hope to present with my proposal
soon.
Thanks,
Skylar
On March 22, 2023 5:44:52 PM EDT, Spencer Skylar Chan
<schan12@terpmail.umd.edu> wrote:
Hi Ricardo,
On 3/22/23 14:19, Ricardo Wurmus wrote:
- Translating Snakemake to Guix Workflow Language (GWL)
Ricardo, maybe you would have some suggestions. :-)
Oh, this looks interesting. Could you please elaborate on the idea?
My idea is to take as input a Snakemake workflow file and eventually
output an equivalent GWL workflow file.
Currently, Snakemake workflows can be exported to CWL (Common Workflow
Language):
https://snakemake.readthedocs.io/en/stable/executing/interoperability.html
<https://snakemake.readthedocs.io/en/stable/executing/interoperability.html>
One approach could be to add CWL import/export capabilities to GWL. Then
Snakemake/GWL conversion would be a 2 step process, using CWL as an
intermediate step:
1. Snakemake -> CWL
2. CWL -> GWL
However, CWL is not as expressive as Snakemake. There may be some details
that are lost from Snakemake workflows.
So a 1-step Snakemake/GWL transpiler could be interesting, as both Snakemake/GWL use
a domain-specific language inside a general purpose language (Python/Guile respectively).
There may be a possibility to achieve more "accurate" translations between
workflows.
Is this topic something that could fit into a summer project?