idris-community / inigo

Inigo: A Package Manager for Idris2
https://inigo.pm
MIT License
61 stars 7 forks source link

Support for non-nodeJS backends #41

Open ohad opened 2 years ago

ohad commented 2 years ago

Goal: discuss what's needed to make inigo backend independent, as the README states.

Example questions:

  1. Which parts of the project currently rely on which parts of nodeJS?
  2. Which parts of the project can easily be made to run on the other backends? (especially Scheme / Racket).

Required backend specific bindings:

We'll need chez/racket substitutes for some of the node FFI bindings in inigo.

Context:

In the Dec 2021 Idris Developers' Meeting, we're discussing choosing an official package manager.

Z-snails commented 2 years ago

First of all, we can ditch concurrency completely, as many tasks are currently being performed sequentially anyway.

We have various options when it comes to resolving this:

1) implement all the functions @ohad has said in scheme/c This is probably the easiest solution to this specific problem

2) remove central repo support from inigo This will eliminate pretty much all the foreign functions current used

3) start afresh, with only the features we want (IMO git and local deps only) This could be in a new repo on idris-community (name to be decided if we choose this)

Feel free to add feedback on discord or here.

ohad commented 2 years ago

Re. 3: Can we easily identify a subset of the configuration file language/fields that would be definitely supported by such future rewrite? Complete rewrites tend to take longer than expected, and we want to have a solid package manager now.

ohad commented 2 years ago

Re. 2: is it easy to implement 2? I think the current central inigo server is not something we have access to, right? So we should probably remove that functionality (for the time being?) and in the future support multiple repos (perhaps even publishing the package to multiple repos).

Z-snails commented 2 years ago

Re 2: I don't have access to the central repo. I don't think it would be too hard to remove that functionality, here's what would need to go: