Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Switch to RubyInstaller2 for Ruby-2.4 ? #352

Closed
larskanis opened this issue Jan 13, 2017 · 39 comments
Closed

Switch to RubyInstaller2 for Ruby-2.4 ? #352

larskanis opened this issue Jan 13, 2017 · 39 comments

Comments

@larskanis
Copy link
Member

At the last days, I was working on the MSYS2 based RubyInstaller2 . IMHO it is now roughly on the level of the current RubyInstaller. There are some outstanding issues that I've documented on the issue list. I'll work on these in the next days and will do more tests on our dev and production systems at work.

So to my question: Shall we switch to RubyInstaller2 for the Ruby-2.4 branch? This would mean:

  1. Everyone should test for regressions compared to the current RubyInstaller and add/solve issues.
  2. Move RubyInstaller2 to https://github.com/oneclick .
  3. Update rubyinstaller.org for MSYS2 stuff. (And remove Ruby-1.8/1.9 related)
  4. Answer a lot of questions related to MSYS2 and pacman.
  5. Going EOL with MSYS1 based RubyInstaller-2.3 in 2 to 3 years and support both environments until then.

This all will probably take a while, but my hope is to have a release quality in 2-3 months.

@sroller
Copy link

sroller commented Jan 13, 2017

I like the idea!
The new Rubyinstaller works for me so far.
It seems it brings us closer to the source as well.

@ccoenen
Copy link

ccoenen commented Jan 13, 2017

A few simple tests with 2.4.0-4 did not turn up any oddities.

@johnnyshields
Copy link

johnnyshields commented Feb 28, 2017

@larskanis @Azolo @luislavena can we move forward with moving RubyInstaller2 to oneclick repo and releasing Ruby 2.4?

@luislavena
Copy link
Member

Hello @larskanis, I've been stalking your work on the new repository but I've been a bit busy with work.

It is possible for us to agree/meet to discuss these steps this week? You can email me at <username on GitHub>@<gmail dot com>

Thank you.

@luislavena
Copy link
Member

For the record, I think steps covered by first comments are good, but will introduce a few more details:

  • Move this repository to rubyinstaller-legacy
  • Document this repository is for old versions of Ruby
  • Move rubyinstaller2 as rubyinstaller
  • Add a paragraph about old (legacy) version.

@larskanis
Copy link
Member Author

@luislavena Sorry for responding so late! First I was too busy with work and second I had several outstanding issues on the agenda with rubyinstaller2, which I wanted to have solved before doing further steps.

Are you sure to rename this repository? This invalidates all links to the repository. I would leave it where it is and document the situation in both repositories.

@ccoenen
Copy link

ccoenen commented Mar 30, 2017

personally, I do not see any advantage in switching the repositories around. And the disadvantage of invalidating a huge amount of links is a very valid point, in my opinion. I believe this would also create weird confusion for everyone just git pull-ing into an existing repository. I don't even know what git would do in such a case.

wouldn't adding a note to the readme of rubyinstaller(1) front and center achieve basically the same goal?

@luislavena
Copy link
Member

luislavena commented Mar 30, 2017

Hello @larskanis, actually renaming the repository will not produce any broken link thanks to GitHub redirect support.

Take for example sqlite3-ruby, which was hosted on my account. From emails, here is a link:

sparklemotion/sqlite3-ruby#85

(the link is https://github.com/luislavena/sqlite3-ruby/issues/85 but is automatically translated by GitHub to the new repository location).

It performs a proper redirect to the new location (sparklemotion/sqlite3-ruby):

Same thing goes for Wiki and other elements, including direct links to commits, releases and others.

I believe this would also create weird confusion for everyone just git pull-ing into an existing repository. I don't even know what git would do in such a case.

@ccoenen the total number of clones for this repository are less than 20 per day, that might be triggered by some build infrastructure or similar. I think when the number is higher than 100 we should be considering that affecting a big user base.

wouldn't adding a note to the readme of rubyinstaller(1) front and center achieve basically the same goal?

In my painful experience through the years working with RubyInstaller I would say no, people don't read.

@luislavena
Copy link
Member

Is worth to mention that something similar to this was done recently by Homebrew.

@larskanis
Copy link
Member Author

@luislavena Github redirection only works as long as there is no new repository at the old name. If I understand you right, your proposed rename is:

oneclick/rubyinstaller -> oneclick/rubyinstaller-legacy
larskanis/rubyinstaller2 -> oneclick/rubyinstaller

Links to larskanis/rubyinstaller2 will still work, but it will invalidate links to issues, wiki, commits, etc. of oneclick/rubyinstaller.

@johnnyshields
Copy link

@larskanis I think that's ok... most of the old issues can be closed anyway and the wiki can be copied/moved over...

@larskanis
Copy link
Member Author

I uploaded a first release candidate: https://github.com/larskanis/rubyinstaller2/releases/tag/2.4.1-1rc1
It has everything built in now, that I planned for the first release. I also added a CHANGELOG that tries to list changes compared to RubyInstaller(1). You're welcome to try it out and give some feedback.

@luislavena
Copy link
Member

Links to larskanis/rubyinstaller2 will still work, but it will invalidate links to issues, wiki, commits, etc. of oneclick/rubyinstaller.

You're correct, not sure why I thought that would be handled.

Let's keep this repository as-is and introduce rubyinstaller2 instead.

@luislavena
Copy link
Member

Hello,

RubyInstaller2 repository has been migrated to OneClick organization.

https://github.com/oneclick/rubyinstaller2

A release candidate has been uploaded by Lars:

https://github.com/oneclick/rubyinstaller2/releases/tag/2.4.1-1rc1

We now require README updates to reflect the changes and later on updates to the website.

@larskanis
Copy link
Member Author

larskanis commented Apr 17, 2017

I've pushed another (and hopefully final) release candidate.

I also did some work to move rubyinstaller.org to a static site. It is stored in the rubyinstaller2 repo and hosted on github. The site is fully self contained and doesn't use external resources. I updated the texts regarding RubyInstaller2 and added a possible release post for Ruby-2.4. Feel free to open pull requests if the wording is not good. Please have a look: https://oneclick.github.io/rubyinstaller2/

I took jekyll as the site generator because it is well supported by github. And I stored it within the rubyinstaller2 repository to make release automation easier.

@luislavena If you agree to the switch of rubyinstaller.org to github, it is required to enable a custom domain in the github settings and to set the CNAME and A records as described in the github docs.

@ccoenen
Copy link

ccoenen commented Apr 17, 2017

Is there anything in the RC2 that should be tested in particular?

@larskanis
Copy link
Member Author

@ccoenen Thanks for asking! All 3 changes are possibly interesting:

  1. Allow MSYS2 to be shipped together with Ruby, independent from the install path: This commit should solve this issue and this issue and is described here.
  2. Removed some unecessary DLLs previously shipped with the installer: This shouldn't change anything visible, but reduces the DLLs to those that are really necessary for ruby core and stdlib.
  3. Decrease the number of MSYS2 packages installed per default using 'ridk install': We don't need all the previous installed MSYS2 development packages and use a reduced set now. This is only relevant for a fresh MSYS2 installation. It's this commit.

@Azolo
Copy link
Member

Azolo commented Apr 17, 2017

@larskanis Nice, I really like the site. I remember discussing this in the past with @luislavena, I think even if he decides not to use GitHub Pages he will want to use the jekyll generated site.

Do you think the site should stay in the same repo or moved into a different repo?

@larskanis
Copy link
Member Author

@Azolo My intention to place the web site into the rubyinstaller2 repo was to be able to add download links and a release post (at least a template) as part of a (future) release task. However this is not absolutely necessary - it's certainly possible to automate releases with a detached repo as well. For all I care it can be stay where it is, but it could also be extracted if there is some need or wish.

@johnnyshields
Copy link

johnnyshields commented Apr 18, 2017

@larskanis thanks for the top-notch work my team and I really appreciate it.

@larskanis
Copy link
Member Author

Hi @luislavena ! Can you please find some time to make the RubyInstaller-2.4 release happen? I'm not sure how to proceed with the web site. If switching https://rubyinstaller.org to the github hosted one is too difficult, we could use the current CMS and think about the static site later. Any chance?

@luislavena
Copy link
Member

@larskanis perhaps will be good to split the website from the build process? That way the history of changes made to support RubyInstaller do not interfere with regular website maintenance.

@larskanis
Copy link
Member Author

perhaps will be good to split the website from the build process?

As explained in the above comments we can separate it into it's own repository. Shall I do it?

@luislavena
Copy link
Member

re: dns switch, I think we can use github pages to host the site and continue to use cloudflare to provide the SSL layer:

https://blog.cloudflare.com/secure-and-fast-github-pages-with-cloudflare/

@luislavena
Copy link
Member

luislavena commented May 17, 2017

As explained in the above comments we can separate it into it's own repository. Shall I do it?

Please so, that will make things more easy to setup and others to contribute (aka: "here is the website vs the code")

@larskanis
Copy link
Member Author

@luislavena OK, looks good. I'm not familiar with cloudflare, but let me know, if I can do something.

@larskanis
Copy link
Member Author

@luislavena I extracted the docs directory to https://github.com/oneclick/rubyinstaller.org-website (including it's history) and enabled the new github site: https://oneclick.github.io/rubyinstaller.org-website/

@luislavena
Copy link
Member

@larskanis excellent. Thank you.

Can we make 2.4.1-1 a draft so we can do the DNS switch and check that everything continues to work?

@larskanis
Copy link
Member Author

Can we make 2.4.1-1 a draft so we can do the DNS switch and check that everything continues to work?

Done.

@luislavena
Copy link
Member

@larskanis thank you!

Site is now run from the Jekyll website!!!

I've added CNAME and hide Ruby 2.4.1-1 release from downloads page. Setup Cloudflare and enforced HTTPS.

This should be good for a release and some proper announcement too!

@luislavena
Copy link
Member

@larskanis

I saw there were some attempts to compile Ruby 2.3 with the new repository (rubyinstaller2) but appears to be failing.

IMO I think 2.3 can still be solved by this repository and keep RI2 just for 2.4 and newer versions moving forward.

The only remaining change for this repo will be a warning/notice pointing to the new repository for those looking for Ruby 2.4.

Last but not least, there is a patch on the new installer that don't think is a good call to include (remember: RubyInstaller aimed to be as close as possible to upstream).

Let me know your thoughts.

Cheers.

@larskanis
Copy link
Member Author

larskanis commented May 20, 2017

@luislavena Thanks for migrating the rubyinstaller website!

I saw there were some attempts to compile Ruby 2.3 with the new repository (rubyinstaller2) but appears to be failing.

This "inofficial" - see oneclick/rubyinstaller2#33

The only remaining change for this repo will be a warning/notice pointing to the new repository for those looking for Ruby 2.4.

I agree. May I open a pull request?

Last but not least, there is a patch on the new installer that don't think is a good call to include (remember: RubyInstaller aimed to be as close as possible to upstream).

To be honest, this was a no-brainer for me, but I was astounded how well Encoding.default_external='locale' seems to work for many people. This is not so in Europe, but I have to discuss that with the ruby core team. For the time being I reverted this patch and added it as an installer option. I also did some more work towards better Unicode/UTF-8 support on Windows which shall find it's way into future releases.

@luislavena
Copy link
Member

@larskanis please, send a pull request for the README changes, thank you! ❤️ ❤️ ❤️

@larskanis
Copy link
Member Author

RubyInstaller-2.4.1 is finally released and available on https://rubyinstaller.org !

@luislavena @Azolo I hope the release text is OK for you. If not please change it! Can you furthermore post the news as done for earlier releases? Or tell me, where+how it used to be published?

@Azolo
Copy link
Member

Azolo commented May 25, 2017

@larskanis I posted it to the RubyInstaller Google Group, rubyinstaller.org, then put the release notes on Bintray.

I was posting to ruby-talk at one point, but stopped when keeping up with that mailing list became tedious.

@Azolo
Copy link
Member

Azolo commented May 25, 2017

For the release notes I would put something in big bold letters at the top that the DevKit for Ruby 2.4 is different than for previous releases.

Then also make click bait that's something like, "Download the DevKit for Ruby 2.4" that is a separate page that gives a walkthrough.

If you decide not to do that, it's still ok. That still won't be nearly enough for some people and you will get tons of bugs that the DevKit doesn't work. 😋

Other than that it looks ok. Like 90% of the release notes that @luislavena and I did were notes about the DevKit or compiling gems. "Use this DevKit not that one.", "Not every Gem will be compiled.", or "Don't use Gems from previous releases." It probably helped a lot of people, but it never felt like it did.

@luislavena
Copy link
Member

RubyInstaller-2.4.1 is finally released and available on https://rubyinstaller.org !

Excellent work @larskanis !!! Thank you! ❤️ ❤️ ❤️

I hope the release text is OK for you.

👍

Originally I put lot of thoughts based on past releases and subsequent follow up with why this doesn't work? and many other issues.

But even after putting those notes in the release announcement, nobody read them, and the questions kept coming.

I think a short announcement on RubyInstaller mailing list with the same release notes contents will be enough.

Thank you so much for stepping in and taking the lead for version 2.4, really really appreciate the effort you are making for all Ruby on Windows.

Cheers.

@ferventcoder
Copy link

ferventcoder commented May 28, 2017

Greetings all, I found one oddity with the new Ruby Installer - oneclick/rubyinstaller2#43 (Installer is not fully silent with /VERYSILENT)

It's not a blocker, more of an annoyance than anything else.

@larskanis
Copy link
Member Author

I think this can finally be closed now.

Thank you to everyone how participated on this transition! Special thanks to @luislavena for getting https://github.com/oneclick/rubyinstaller.org-website up and running!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants