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

Bump minimum OS to Yosemite #7698

Merged
merged 2 commits into from
Jun 10, 2020
Merged

Conversation

mistydemeo
Copy link
Contributor

  • Have you followed the guidelines in our Contributing document?
  • Have you checked to ensure there aren't other open Pull Requests for the same change?
  • Have you added an explanation of what your changes do and why you'd like us to include them?
  • Have you written new tests for your changes? Here's an example.
  • Have you successfully run brew style with your changes locally?
  • Have you successfully run brew tests with your changes locally?

This bumps the minimum OS version from Mavericks to Yosemite. Mavericks was already officially on life support, and wasn't receiving official support.

This is in support of #7675, Vidushee's Sorbet branch. Sorbet is very slow and error-prone to build, so it's not practical to install except using binary packages. They provide binary packages going back to Darwin 14 - e.g., macOS 10.10. In order to install that, we'll need our vendored Ruby to be built for at least that macOS version. Right now, since Homebrew runs on macOS going back to 10.9, we build our vendored Ruby for that version and it's unable to use any of the Sorbet binary packages.

I've built a new portable Ruby 2.6.3 for Yosemite and uploaded it to Bintray. I'll publish it and push it to GitHub when this branch is approved.

@mistydemeo mistydemeo requested a review from MikeMcQuaid June 5, 2020 03:38
@mistydemeo
Copy link
Contributor Author

Aside: if Misty is the one raising the minimum OS version, you know there's got to be a good reason. 😆

@MikeMcQuaid
Copy link
Member

Note to self: clean up all :mavericks references in Homebrew/brew and Homebrew/homebrew-core after this is merged.

@Bo98
Copy link
Member

Bo98 commented Jun 5, 2020

Looks good. Will existing users get the updated Portable Ruby however? We want to make sure they do.

One concern: this could mean that bumping the minimum OS becomes Sorbet's decision and not ours. If Sorbet suddenly drops 10.10-10.14 tomorrow say, are we fine with staying on the older version of Sorbet?

@Bo98
Copy link
Member

Bo98 commented Jun 5, 2020

Note to self: clean up all :mavericks references

If it is possible to deprecate in a way that depends_on :macos => :mavericks is still valid but with a deprecation warning, that might avoid some taps suddenly breaking without warning.

Might end up being a special case for depends_on. I think every other usage is okay to delete.

@Bo98
Copy link
Member

Bo98 commented Jun 5, 2020

Last question (sorry): we use system Ruby on Catalina, which is built for darwin-19 rather than portable Ruby's darwin-14. Does Sorbet's darwin-14 binaries work fine under a darwin-19 compiled Ruby? I notice that they provide multiple versions which makes me wonder that it doesn't work.

@mistydemeo
Copy link
Contributor Author

If it is possible to deprecate in a way that depends_on :macos => :mavericks is still valid but with a deprecation warning, that might avoid some taps suddenly breaking without warning.

I think that'd be ideal, and give us a clean way to gradually clean things up on our end too.

Does Sorbet's darwin-14 binaries work fine under a darwin-19 compiled Ruby?

It does, but it won't be fetched in this context. I believe the reason they provide separate versions is to satisfy Rubygems, which fetches gems precisely matching RUBY_PLATFORM. It doesn't do an "or greater" type of fetching like we do, so Ruybgems won't, for example, fetch darwin-14 when running on darwin-19.

Rubygems should transparently fetch whichever is the appropriate version. That means it will work on Linux too.

Will existing users get the updated Portable Ruby however? We want to make sure they do.

They won't. At the current time this will only affect users running dev commands, most likely dev commands invoking Sorbet, but providing an upgrade mechanism would be useful.

One concern: this could mean that bumping the minimum OS becomes Sorbet's decision and not ours. If Sorbet suddenly drops 10.10-10.14 tomorrow say, are we fine with staying on the older version of Sorbet?

I think we can reevaluate if this becomes onerous. Right now I'm happy with this because their support schedule conveniently lines up with ours. If they suddenly drop all but the latest OS, that's obviously going to be a deal-breaker for us and we can make different decisions at that time.

@Bo98
Copy link
Member

Bo98 commented Jun 6, 2020

Rubygems should transparently fetch whichever is the appropriate version. That means it will work on Linux too.

Ok, cool. I asked because the darwin-14 version appears in the Gemfile.lock, or at least it did in the other pull request.

@issyl0 issyl0 mentioned this pull request Jun 8, 2020
6 tasks
@mistydemeo mistydemeo force-pushed the bump_minimum_os branch 2 times, most recently from 63f31d2 to f4be636 Compare June 9, 2020 00:47
@issyl0
Copy link
Member

issyl0 commented Jun 9, 2020

Looks like the Ruby bump needs doing for Linuxbrew as well. 😩

Oh, it already is. Just seen the other PR. 😪

@MikeMcQuaid MikeMcQuaid mentioned this pull request Jun 10, 2020
6 tasks
@MikeMcQuaid
Copy link
Member

Note to self: clean up all :mavericks references in Homebrew/brew and Homebrew/homebrew-core after this is merged.

If it is possible to deprecate in a way that depends_on :macos => :mavericks is still valid but with a deprecation warning, that might avoid some taps suddenly breaking without warning.

Might end up being a special case for depends_on. I think every other usage is okay to delete.

Done in #7716

@MikeMcQuaid
Copy link
Member

For release notes https://formulae.brew.sh/analytics/os-version/30d/ will be useful.

@MikeMcQuaid
Copy link
Member

@mistydemeo once built from Homebrew/homebrew-portable-ruby#101 and it is merged: this is good to 🚢.

@mistydemeo
Copy link
Contributor Author

Updated, and published the new rubies for Mac and Linux; I will be merging this once CI finishes.

@mistydemeo mistydemeo merged commit b3bc735 into Homebrew:master Jun 10, 2020
@mistydemeo mistydemeo deleted the bump_minimum_os branch June 10, 2020 21:06
vitorgalvao pushed a commit to Homebrew/homebrew-cask that referenced this pull request Jun 10, 2020
* Update documentation according to Homebrew/brew#7698

* adobe-dng-converter: remove Mavericks support

* amethyst: remove Mavericks support

* appcleaner: remove Mavericks support

* araxis-merge: remove Mavericks support

* bettertouchtool: remove Mavericks support

* cocktail: remove Mavericks support

* coconutbattery: remove Mavericks support

* coteditor: remove Mavericks support

* daisydisk: remove Mavericks support

* deeper: remove Mavericks support

* eme: remove Mavericks support

* evernote: remove Mavericks support

* feishu: remove Mavericks support

* geekbench: remove Mavericks support

* hammerspoon: remove Mavericks support

* interarchy: remove Mavericks support

* ipartition: remove Mavericks support

* istumbler: remove Mavericks support

* itrash: remove Mavericks support

* itsycal: remove Mavericks support

* itunes-producer: remove Mavericks support

* jitouch: remove Mavericks support

* lark: remove Mavericks support

* launchbar: remove Mavericks support

* maintenance: remove Mavericks support

* monolingual: remove Mavericks support

* omnifocus: remove Mavericks support

* omnipresence: remove Mavericks support

* onyx: remove Mavericks support

* plug: remove Mavericks support

* poedit: remove Mavericks support

* programmer-dvorak: remove Mavericks support

* qdslrdashboard: remove Mavericks support

* superduper: remove Mavericks support

* thorn-writing: remove Mavericks support

* time-out: remove Mavericks support

* tinderbox: remove Mavericks support

* x2goclient: remove Mavericks support

* xlink-kai: remove Mavericks support
@BrewTestBot BrewTestBot added the outdated PR was locked due to age label Dec 28, 2020
@Homebrew Homebrew locked as resolved and limited conversation to collaborators Dec 28, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
outdated PR was locked due to age
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants