-
Notifications
You must be signed in to change notification settings - Fork 992
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
Help me get the homebrew formula building again #851
Comments
Nevermind Boost, it's a transitive dep of folly:
Though judging by the list from CI, some deps like ninja are still missing from the formula. watchman/.github/workflows/getdeps_mac.yml Lines 20 to 72 in ebdade3
|
This issue might be related/of interest: #839 |
Thanks for taking a look at this! I think fixing up the homebrew formula in core homebrew is probably quite difficult. The easiest way to build watchman from master today is using our getdeps machinery. That is responsible for fetching, building and composing the dependencies. This is at odds with homebrew's own dependency management, so a proper update to the homebrew formula probably should not use the getdeps stuff. Another challenge here is that watchman depends on I've been copied on numerous issues in the folly repo over the past few years where folks have been working to resolve build issues that block updating the folly homebrew formula, so I sense that this might turn into an ongoing/uphill battle to keep the formula working. What I've been leaning towards as a solution for this is to effectively move watchman out of homebrew core and manage it via our taps repo at https://github.com/facebook/homebrew-fb. We could automatically update the tap as part of our weekly release automation and have it install the most recently successful macos binary build published to our releases section. This feels like less work for everyone overall, and I have made a proof of concept of this approach in a personal project: I haven't had an opportunity to sit down and make this happen so far, but if you're feeling motivated and have the bandwidth for it, we'd love to see you submit a couple of PRs for this. What I think needs to happen:
Then we can look at deprecating the homebrew core formula. I think that this will result in something that is easier to maintain overall. What do you think? |
This sounds reasonable. Monorepos are The Way 😉. I'm confused about what the collisions/ |
By default, yes, but for example: at FB we have a site specific homebrew deployment set to deploy to Outside of homebrew/mac, some users have commented that they'd appreciate having the linux binaries not deploy |
The formula in homebrew-core is moribund, and as per facebook/watchman#851 (comment), continuing to build watchman from source with brewed dependencies is untenable. So we add one that just distributes the released binaries here.
The formula in homebrew-core is moribund, and as per facebook/watchman#851 (comment), continuing to build watchman from source with brewed dependencies is untenable. So we add one that just distributes the released binaries here. Eventually the url and sha will be updated automatically by the watchman release process.
The formula in homebrew-core is moribund, and as per facebook/watchman#851 (comment), continuing to build watchman from source with brewed dependencies is untenable. So we add one that just distributes the released binaries here. Eventually the url and sha will be updated automatically by the watchman release process.
So, here's where my inexperience with native {builds,packaging,anything at all} fails me: why would the prefix get baked into the binaries at all? I thought that the prefix was just to tell I set up the formula at facebook/homebrew-fb#41. |
The formula in homebrew-core is moribund, and as per facebook/watchman#851 (comment), continuing to build watchman from source with brewed dependencies is untenable. So we add one that just distributes the released binaries here. Eventually the url and sha will be updated automatically by the watchman release process.
The formula in homebrew-core is moribund, and as per facebook/watchman#851 (comment), continuing to build watchman from source with brewed dependencies is untenable. So we add one that just distributes the released binaries here. Eventually the url and sha will be updated automatically by the watchman release process.
The formula in homebrew-core is moribund, and as per facebook/watchman#851 (comment), continuing to build watchman from source with brewed dependencies is untenable. So we add one that just distributes the released binaries here. Eventually the url and sha will be updated automatically by the watchman release process.
The formula in homebrew-core is moribund, and as per facebook/watchman#851 (comment), continuing to build watchman from source with brewed dependencies is untenable. So we add one that just distributes the released binaries here. Eventually the url and sha will be updated automatically by the watchman release process.
hey folks, trying to catch up on this whole conversation; it sounds like, per @isker PR merged last week by @KapJI: facebook/homebrew-fb#41 now if someone wants to install watchman via homebrew and not get stuck on the 2017's 4.9.0 version they'd need to:
correct? The side problem I'm seeing about this is that @isker's PR "hardcoded" the version in the .rb file to PS: btw @isker thank you SO MUCH for deciding to drive this problem and make that PR 👏👏 |
As for now, it needs to be maintained manually. Feel free to send PR for the new version. |
The intent was that, after that initial formula was merged, I would add a
script to the release CI tooling for this project that would automatically
update the version in that formula and commit.
However that initial PR sat for about 5 months and I no longer have much
interest in driving the remaining work. Feel free to pick it up.
…On Thu, Feb 18, 2021 at 07:02 Ruslan Sayfutdinov ***@***.***> wrote:
As for now, it needs to be maintained manually. Feel free to send PR for
the new version.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#851 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ABH3ZNJGRGEPY3X3NFUSK3LS7T6WBANCNFSM4QK66WAA>
.
|
I think I can set up the GitHub action to automatically send PR to the Facebook repo updating the version every release. |
Buck has this implemented here: https://github.com/facebook/buck/blob/master/tools/release/platforms/homebrew.py |
that would be great @fanzeyi 👍 do you know if/when you'll be able to do it? |
@kelset maybe later this week. Will update soon =) |
Some update, I have a version working and it opened a PR here facebook/homebrew-fb#56 in my testing. I'm now waiting on our open source team for a bot token I can use to make these commits :) |
dope 👍 lmk once it works :) I'm planning to do a PR for the react-native docs once it's all set up :) |
Summary: #851 --- In my local testing it generated facebook/homebrew-fb#56 Pull Request resolved: #896 Reviewed By: wez Differential Revision: D26858965 Pulled By: fanzeyi fbshipit-source-id: 4f53e292c9f00acdc3283627365a5a9786bcc1c8
@fanzeyi any updates on this? |
Summary: Pull Request resolved: facebookincubator/zstrong#851 Reviewed By: markbt Differential Revision: D58012216 fbshipit-source-id: 2143ba626421f7b6048e9e2ce3522aac614a8b72
Hello @wez! As per #665 (comment) I am trying to get the homebrew formula building again. Sadly my knowledge of: homebrew internals; watchman; and native toolchains of any kind are all pretty poor 🙂 .
I made the suggested changes to the formula:
But
getdeps.py
is, well, still trying to get all of the deps. Right now it's trying and failing to build openssl. I'm not sure why, but I'm pretty sure it shouldn't be trying to build it in the first place.OpenSSL build error
Am I supposed to skip
autogen.sh
and invokegetdeps.py
directly with something like--allow-system-packages
? If so, I think I'd need to add homebrew dependencies on more than just folly. Boost, for example. Is there a full list handy anywhere?The text was updated successfully, but these errors were encountered: