unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Spencer Skylar Chan <schan12@terpmail.umd.edu>
To: Kyle <kyle@posteo.net>, Ricardo Wurmus <rekado@elephly.net>,
	Simon Tournier <zimon.toutoune@gmail.com>
Cc: guix-devel@gnu.org
Subject: Re: Google Summer of Code 2023 Inquiry
Date: Thu, 30 Mar 2023 19:22:14 -0400	[thread overview]
Message-ID: <42aa5844-0769-e122-efd7-8a152070c71c@terpmail.umd.edu> (raw)
In-Reply-To: <B5DDF68C-81E9-4522-AC05-7B572647CD30@posteo.net>

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?
> 



  reply	other threads:[~2023-03-30 23:22 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-07  1:31 Google Summer of Code 2023 Inquiry Spencer Skylar Chan
2023-03-11 13:32 ` Simon Tournier
2023-03-14 10:10   ` Simon Tournier
2023-03-22 17:41   ` Spencer Skylar Chan
2023-03-22 18:19   ` Ricardo Wurmus
2023-03-22 21:44     ` Spencer Skylar Chan
2023-03-23  7:58       ` Ricardo Wurmus
2023-03-30 23:27         ` Spencer Skylar Chan
2023-03-31  0:52           ` Kyle
2023-03-24 18:59       ` Kyle
2023-03-30 23:22         ` Spencer Skylar Chan [this message]
2023-03-31 15:15           ` Kyle
2023-04-04  0:41             ` Spencer Skylar Chan
2023-04-04  6:29               ` Kyle
2023-04-04  8:59               ` Simon Tournier
2023-04-04 14:32                 ` Kyle
2023-04-04 17:15                   ` Simon Tournier
  -- strict thread matches above, loose matches on Subject: below --
2023-03-08  2:33 Spencer Skylar Chan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=42aa5844-0769-e122-efd7-8a152070c71c@terpmail.umd.edu \
    --to=schan12@terpmail.umd.edu \
    --cc=guix-devel@gnu.org \
    --cc=kyle@posteo.net \
    --cc=rekado@elephly.net \
    --cc=zimon.toutoune@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).