Giter Site home page Giter Site logo

Comments (12)

raphinesse avatar raphinesse commented on May 12, 2024 3

To provide more context: cross-spawn only improves cross-platform compatibility of child_process.spawn while replicating it's interface. execa builds on top of that and adds various other features, like a nicer Promise-based interface (similar to superspawn) cross-platform shebang support (would be useful for HooksRunner) and a lot more. And lastly we do not have to maintain execa. That's a big plus.

So yes, we want something a bit more high-level than cross-spawn, but I'd prefer execa over superspawn.

from cordova.

raphinesse avatar raphinesse commented on May 12, 2024 2

I'd like to finally resolve this issue and #7, so I'm going to try and finish the transformation we started here.

from cordova.

raphinesse avatar raphinesse commented on May 12, 2024 1

I think we want to replace superspawn invocations with execa invocations, not cross-spawn.

from cordova.

janpio avatar janpio commented on May 12, 2024 1

This goal of this issue is to "Remove usage of cordova-common/superspawn". execa is an implementation detail. When someone gets around to implement this, it might very well be that it makes sense to use something else or newer.

from cordova.

janpio avatar janpio commented on May 12, 2024

Whatever works, I was getting this from apache/cordova-common#50 but exaca looks great as well. On the other hand, that might show that we may not want to get rid of the wrapper after all - preferences seems to change here.

from cordova.

brodybits avatar brodybits commented on May 12, 2024

I think we want to replace superspawn invocations with execa invocations, not cross-spawn.

Why not use execa and skip cross-spawn?

from cordova.

raphinesse avatar raphinesse commented on May 12, 2024

@brodybits That is what I'm suggesting. Or I don't understand the question.

from cordova.

brodybits avatar brodybits commented on May 12, 2024

I am getting a bit confused here.

#16 (comment) and #16 (comment) indicate to me that we should skip cross-spawn and use execa right away, while apache/cordova-common#50 (comment) and apache/cordova-common#50 (comment) indicate to me that we take a two-step process (use cross-spawn first then use execa).

I would personally favor the two-step process:

  • first use cross-spawn as proposed in apache/cordova-common#50 to solve the problem
  • then we migrate to execa and get rid of our cordova-common/superspawn as discussed here

@raphinesse can you please straighten me out here?

I would also like to motion that we hide or remove the following comments as "off-topic":

from cordova.

raphinesse avatar raphinesse commented on May 12, 2024

@brodybits Now I understand. Yes, I would favor a two step process too since migration to execa could take quite some time.

I hid the comments you referred to as "resolved"

from cordova.

janpio avatar janpio commented on May 12, 2024

apache/cordova-common#50 is one PR, doing one thing.
This, #16, is another issue, suggesting the doing of another thing. (At first it was "replace superspawn with cross-spawn", after comments from @raphinesse it is "replace superspawn with execa").

These are not related only in that this issue only makes sense after apache/cordova-common#50 has been merged to remove the Windows specific handling.

from cordova.

brodybits avatar brodybits commented on May 12, 2024

from cordova.

brodybits avatar brodybits commented on May 12, 2024

Another rationale I gave in #7 (comment) is that superspawn seems to return a non-standard Promise-like object that can also notify the listener of stdout and stderr data. I think getting rid of superspawn would really help finish getting rid of q (#7).

from cordova.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.