Menu

Help me convince the Ruby community that MSYS2 should be the standard way to run Ruby on Windows

2015-04-20
2015-04-23
  • David Grayson

    David Grayson - 2015-04-20

    I am planning to post this long post on the RubyInstaller group some time. I really like MSYS2 and I think the RubyInstaller team should consider using MSYS2 as the standard way to run Ruby on Windows.

    I am posting it here first so that the MSYS2 experts can see it and help me fix any problems or add anything important I omitted. Please check it out and give me feedback! Here is the link to my post again:

    https://gist.github.com/DavidEGrayson/42aaa74171e93bcefc18

    --David Grayson

     

    Last edit: David Grayson 2015-04-20
    • Matthieu Vachon

      Matthieu Vachon - 2015-04-20

      Hi David,

      That's a great write up you've come with here. Convincing them to switch to
      MSYS2 environment won't be easy, but I think it's feasible. It will require
      some man power.

      Here some random thoughts about your post.

      1. The RubyInstaller for windows uses the old msys and the mingw-w64
        toolchain (they switched from mingw to ming-w64 some time ago). Hence, your
        target audience probably already know what MSYS2 is about. Some parts
        should be re-written in this optic so the post could be more direct. I
        don't have specifics ideas here. But maybe focusing that MSYS2 is a newer,
        more up to date alternative to msys. The package manager being the killer
        feature in my opinion.

      2. I know that one of the core contributor of RubyInstaller (Luis Lavena)
        already posted to this mailing list once. So, he already know about msys2
        and I won't be surprised that other core contributors know about it. Some
        of them are even maybe following this mailing list.

      3. I think some parts of the post seems are a bit unclear when it comes to
        the separation between MSYS2 and MINGW-64 sub-system. For example, in my
        opinion, it's confusing that your present as "MSYS2's ruby PKGBUILD"
        because the package is really a PKGBUILD to build
        a native windows program using the mingw64 toolchain using msys2 build
        capabilities.

      4. A thing that could be a good point is that Git for windows are
        currently switching to MSYS2/MINGW64 pair. Like the RubyInstaller for
        windows, they were previously using the old msys/mingw pair. Their
        experience could be valuable if RubyInstaller team choose to port the
        installer to MSYS2. .

      Overall, that's a great effort. I would love to see RubyInstaller ported to
      MSYS2 as I am an heavy user of Ruby on Windows.

      Major concerns I think with this migration will be native libraries that
      are currently packaged with lot of gems. This is done mainly to make life
      of Windows developer easier and to ensure consistent environment. Doing a
      change to a new toolchain will require a full migration plan from the
      community.

      Regards,
      Matt

      On Mon, Apr 20, 2015 at 12:41 AM David Grayson davidegrayson@users.sf.net
      wrote:

      I am planning to post this long post
      https://gist.github.com/DavidEGrayson/42aaa74171e93bcefc18 on the RubyInstaller
      group https://groups.google.com/forum/#!forum/rubyinstaller some time.
      I really like MSYS2 and I think the RubyInstaller
      http://rubyinstaller.org team should consider using MSYS2 as the
      standard way to run Ruby on Windows.

      I am posting it here first so that the MSYS2 experts can see it and help
      me fix any problems or add anything important I omitted. Please check it
      out and give me feedback! Here is the link to my post again:

      https://gist.github.com/DavidEGrayson/42aaa74171e93bcefc18

      Help me convince the Ruby community that MSYS2 should be the standard way
      to run Ruby on Windows
      https://sourceforge.net/p/msys2/discussion/general/thread/15cb03ec/?limit=25#eab9


      Sent from sourceforge.net because you indicated interest in
      https://sourceforge.net/p/msys2/discussion/general/

      To unsubscribe from further messages, please visit
      https://sourceforge.net/auth/subscriptions/

       
  • David Grayson

    David Grayson - 2015-04-22

    By reading https://github.com/git-for-windows/git/issues/25 I just realized that the Git for Windows project is just using MSYS2 as the platform for the developers of the project, not for the end users.

    I would have preferred if the Git for Windows project just offered a pacman repository where we can install their Git packages from. Maybe they will offer that option for advanced users.

    This relates to the purpose of MSYS2; the stated purpose according to Ray Donnelly is for building native Windows software. It sure seems like MSYS2 is capable of much more than that (with packages like gimp and blender!), so I'm not sure why that is the stated purpose.

    A typical Git user is not necessarily building native Windows software so they don't necessarily want to install MSYS2.

    It makes sense for Ruby users to install MSYS2, because a Ruby user often does need to build native Windows software, because gems might come with C extensions that need to be compiled. Or at least, I think that's the way they the gem authors should be doing it, since MSYS2 exists, and using it would mean a better experience for people. This is sort of a circular argument. :-)

    --David

     

    Last edit: David Grayson 2015-04-22
    • Ray Donnelly

      Ray Donnelly - 2015-04-22

      Hi David,

      On Wed, Apr 22, 2015 at 5:36 PM, David Grayson
      davidegrayson@users.sf.net wrote:

      By reading https://github.com/git-for-windows/git/issues/25 I just realized
      that the Git for Windows project is just using MSYS2 as the platform for the
      developers of the project, not for the end users.

      I don't think that is correct. AFAIK, Git for Windows >= 2.0 will
      bundle the msys2 shell and use our core repositories, in the same way
      as msysGit < 2.0 bundled the old msys shell. We're still figuring out
      how best to co-exist.

      I would have preferred if the Git for Windows project just offered a pacman
      repository where we can install their Git packages from. Maybe they will
      offer that option for advanced users.

      Again, I think this is what they are doing, I think they're building
      their own installer, and I don't think it will be based on the Qt
      Installer Framework as our is. I don't know the details of this choice
      though.

      This relates to the purpose of MSYS2; the stated purpose according to Ray
      Donnelly is for building native Windows software. It sure seems like MSYS2
      is capable of much more than that (with packages like gimp and blender!), so
      I'm not sure why that is the stated purpose.

      The purpose of the "msys2 shell" is to allow building native software
      using native software as much as possible (if Cygwin was capable of
      this, there'd be no msys2). The purpose of the "MSYS2 software
      distribution" is to distribute said native (and the necessary msys2)
      software. It's unfortunate that we didn't come up with another name,
      so I try to use uppercase when talking about MSYS2 as a software
      distro and lowercase when I'm talking about msys2 as a Cygwin-fork or
      as a shell.

      A typical Git user is no necessarily building native Windows software so
      they don't necessarily want to install MSYS2.

      It makes sense for Ruby users to install MSYS2, because a Ruby user often
      does need to build native Windows software, because gems might come with C
      extensions that need to be compiled. Or at least, I think that's the way
      they the gem authors should be doing it, since MSYS2 exists, and using it
      would mean a better experience for people. This is sort of a circular
      argument. :-)

      Build it and they will come.

      --David


      Help me convince the Ruby community that MSYS2 should be the standard way to
      run Ruby on Windows


      Sent from sourceforge.net because you indicated interest in
      https://sourceforge.net/p/msys2/discussion/general/

      To unsubscribe from further messages, please visit
      https://sourceforge.net/auth/subscriptions/

       
      • Matthieu Vachon

        Matthieu Vachon - 2015-04-23

        Hi David,

        The final distributed archive, from my understanding, will contain a full
        msys2 system (probably very trimmed down) because lot of git commands
        require unix tools. The previous distribution was already like this, i.e.
        that an msys system was provided.

        MSYS2 is the development platform because it contains all the necessary
        toolchains and tools, but it will also be part of the final runtime.

        Sure most git users will not need the full capability of the underlying
        msys2 subsystem. And providing a simple all-in-one distribution is easier
        for vast majority of end users.

        But I also hope that after the initial release, a mingw64 (I know there is
        already one, but highly experimental) package will be available to users
        like me who wish to manage their own MSYS2 installation. This would be the
        best of both world. But right now, I think they have some modifications
        made to msys2 runtime to add some functionality they need. So I'm not sure
        what is the state of this right now.

        Now, for Ruby, they are currently also packaging a full msys/mingw
        environment when you install Ruby for Windows. Even if the target audience
        is more developers then lambda users, who are more inclined to install and
        manage an MSYS2 system, I'm sure lot of people appreciate the all-in-one
        distribution currently available.

        In this optic, I highly doubt they will drop distributing the all-in-one
        package and simply provide a mingw64 package. The ideal for me would be the
        following:
        1. Current distribution is kept but msys2 is used as the subsystem.
        2. But also provide mingw64 packages for those who already have an msys2
        system.

        This would be the best of both world for me. Easier for people who are not
        familiar with all the tooling while letting more advanced users install
        only the required packages and deals with required development toolchain
        and common tools. That's how I see it.

        Regards,
        Matt

        On Wed, Apr 22, 2015 at 2:06 PM Ray Donnelly mingwandroid@users.sf.net
        wrote:

        Hi David,

        On Wed, Apr 22, 2015 at 5:36 PM, David Grayson
        davidegrayson@users.sf.net wrote:

        By reading https://github.com/git-for-windows/git/issues/25 I just
        realized
        that the Git for Windows project is just using MSYS2 as the platform for
        the
        developers of the project, not for the end users.

        I don't think that is correct. AFAIK, Git for Windows >= 2.0 will
        bundle the msys2 shell and use our core repositories, in the same way
        as msysGit < 2.0 bundled the old msys shell. We're still figuring out
        how best to co-exist.

        I would have preferred if the Git for Windows project just offered a pacman
        repository where we can install their Git packages from. Maybe they will
        offer that option for advanced users.

        Again, I think this is what they are doing, I think they're building
        their own installer, and I don't think it will be based on the Qt
        Installer Framework as our is. I don't know the details of this choice
        though.

        This relates to the purpose of MSYS2; the stated purpose according to Ray
        Donnelly is for building native Windows software. It sure seems like MSYS2
        is capable of much more than that (with packages like gimp and blender!),
        so
        I'm not sure why that is the stated purpose.

        The purpose of the "msys2 shell" is to allow building native software
        using native software as much as possible (if Cygwin was capable of
        this, there'd be no msys2). The purpose of the "MSYS2 software
        distribution" is to distribute said native (and the necessary msys2)
        software. It's unfortunate that we didn't come up with another name,
        so I try to use uppercase when talking about MSYS2 as a software
        distro and lowercase when I'm talking about msys2 as a Cygwin-fork or
        as a shell.

        A typical Git user is no necessarily building native Windows software so
        they don't necessarily want to install MSYS2.

        It makes sense for Ruby users to install MSYS2, because a Ruby user often
        does need to build native Windows software, because gems might come with C
        extensions that need to be compiled. Or at least, I think that's the way
        they the gem authors should be doing it, since MSYS2 exists, and using it
        would mean a better experience for people. This is sort of a circular
        argument. :-)

        Build it and they will come.

        --David

        Help me convince the Ruby community that MSYS2 should be the standard way
        to
        run Ruby on Windows


        Sent from sourceforge.net because you indicated interest in
        https://sourceforge.net/p/msys2/discussion/general/

        To unsubscribe from further messages, please visit
        https://sourceforge.net/auth/subscriptions/


        Help me convince the Ruby community that MSYS2 should be the standard way
        to run Ruby on Windows
        http://sourceforge.net/p/msys2/discussion/general/thread/15cb03ec/?limit=25#f37d/8cc7


        Sent from sourceforge.net because you indicated interest in
        https://sourceforge.net/p/msys2/discussion/general/

        To unsubscribe from further messages, please visit
        https://sourceforge.net/auth/subscriptions/