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:
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.
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.
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.
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.
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.
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:
Thank you so much! I have revised the post in order to address points 1 and 3. It is good to know about point 2; I am new around here and don't really know who is associating with who.
How do you know that Git for Windows is switching to MSYS2 and mingw-w64? I looked around and couldn't really find a reference. The closest thing I found was this message on their Google group indicating that they are building something based on MSYS1 right now:
My migration plan would be to get a vocal minority of people using Ruby on MSYS2 and submitting patches to the Ruby core and gem authors until everything works smoothly and plays well with the package manager. If we do it well enough, perhaps the RubyInstaller developers would see that it is good and stop releasing new versions of RubyInstaller.
--David
Last edit: David Grayson 2015-04-21
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Thank you so much! I have revised the post in order to address points 1
and 3. It is good to know about point 2; I am new around here and don't
really know who is associating with who.
No problem, I didn't know your own background neither, so it`s better to
tell you some information you might already know than to miss it :)
How do you know that Git for Windows is switching to MSYS2 and mingw-w64?
I looked around and couldn't really find a reference. The closest thing I
found was this message on their Google group indicating that they are
building something based on MSYS1 right now:
I was following github issues of MSYS2-Packages and MINGW-Packages and
saw something about it so I started to search more information.
My understanding it that their started their own style of package manager
based on mingw-get (MSYS1 based) but after a while, they decided to try
MSYS2 and they were really pleased about it. This thread https://github.com/git-for-windows/git/issues/25 is probably the better
source of information for the switch.
Out of scope, do you receive two messages from me? If you receive only one,
is it formatted correctly? I'm asking because I see my first reply, than I
receive another one which is completely broken, my sentences are
inter-weave with yours and formatting is all broken.
On Tue, Apr 21, 2015 at 12:42 AM David Grayson davidegrayson@users.sf.net
wrote:
Matthieu,
Thank you so much! I have revised the post in order to address points 1
and 3. It is good to know about point 2; I am new around here and don't
really know who is associating with who.
No problem, I didn't know your own background neither, so it`s better to
tell you some information you might already know than to miss it :)
How do you know that Git for Windows is switching to MSYS2 and mingw-w64?
I looked around and couldn't really find a reference. The closest thing I
found was this message on their Google group indicating that they are
building something based on MSYS1 right now:
I was following github issues of MSYS2-Packages and MINGW-Packages and
saw something about it so I started to search more information.
My understanding it that their started their own style of package manager
based on mingw-get (MSYS1 based) but after a while, they decided to try
MSYS2 and they were really pleased about it. This thread https://github.com/git-for-windows/git/issues/25 is probably the better
source of information for the switch.
I see a total of 3 messages from you and the formatting looks OK to me, except sometimes when you quote my message, one line of the quote is in a really large font size.
--David
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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
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.
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
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
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.
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.
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.
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.
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:
Matthieu,
Thank you so much! I have revised the post in order to address points 1 and 3. It is good to know about point 2; I am new around here and don't really know who is associating with who.
How do you know that Git for Windows is switching to MSYS2 and mingw-w64? I looked around and couldn't really find a reference. The closest thing I found was this message on their Google group indicating that they are building something based on MSYS1 right now:
https://groups.google.com/forum/#!searchin/msysgit/msys2/msysgit/nyh7lhsTthU/_A_c_s8FSi0J
My migration plan would be to get a vocal minority of people using Ruby on MSYS2 and submitting patches to the Ruby core and gem authors until everything works smoothly and plays well with the package manager. If we do it well enough, perhaps the RubyInstaller developers would see that it is good and stop releasing new versions of RubyInstaller.
--David
Last edit: David Grayson 2015-04-21
On Tue, Apr 21, 2015 at 12:42 AM David Grayson davidegrayson@users.sf.net
wrote:
My understanding it that their started their own style of package manager
based on mingw-get (MSYS1 based) but after a while, they decided to try
MSYS2 and they were really pleased about it. This thread
https://github.com/git-for-windows/git/issues/25 is probably the better
source of information for the switch.
Check out also user git-for-windows on github (
https://github.com/git-for-windows) particularly repositories git (
https://github.com/git-for-windows/git), MSYS2-Packages (
https://github.com/git-for-windows/MSYS2-packages) and build-extra (
https://github.com/git-for-windows/build-extra). Check the open and closed
issues and you will find lots of information about Git for windows using
MSYS2 as the development environment.
They even have some experimental packages that you can download from the
upcoming updated website http://git-for-windows.github.io/.
Regards,
Matt
Out of scope, do you receive two messages from me? If you receive only one,
is it formatted correctly? I'm asking because I see my first reply, than I
receive another one which is completely broken, my sentences are
inter-weave with yours and formatting is all broken.
Thanks,
Matt
On Tue, Apr 21, 2015 at 8:19 AM Matthieu Vachon warknight@users.sf.net
wrote:
Thanks for the links, Matthieu!
Off-topic: I have been using the Sourceforge web interface at:
https://sourceforge.net/p/msys2/discussion/general/thread/15cb03ec/
I see a total of 3 messages from you and the formatting looks OK to me, except sometimes when you quote my message, one line of the quote is in a really large font size.
--David
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
Hi David,
On Wed, Apr 22, 2015 at 5:36 PM, David Grayson
davidegrayson@users.sf.net wrote:
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.
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.
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.
Build it and they will come.
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: