-
Notifications
You must be signed in to change notification settings - Fork 72
Move formula into Homebrew/homebrew #115
Comments
After #195 this is mostly just waiting for someone to send a PR to homebrew. |
A week has passed since the last commit. If there's no problem after the last commit, I'll make PR on homebrew-core in several days. |
Wasn't there still Lua stuff to sort out? And maybe changing to mpack. Is there any advantage of having Neovim in homebrew-core apart from the fact that users don't have to use a tap anymore? |
@mhinz |
Well, I didn't mean to sound declining, I really wasn't sure about it. :-) You did some great contributions already, 👍, but staying in control feels right at the moment. |
Why do you feel that it would go out of control by committing it to homebrew ? Its an open community with many maintainers so if things needs to be patched then it will happen quite quickly if PRs are made. |
@javian Good points. Pre-compiled option would be really helpful. |
Hi, I'd like to get this formula into Homebrew, given that it is currently the most-used external tap :) |
@fxcoudert Reviewing #198 it seems the blocker is luarocks. We need lpeg and some other lua modules for some of our build scripts. By the way, what statistics are you looking at? |
I don't understand, as Homebrew lua is built with luarocks support by default. (Homebrew analytics.) |
Maybe @equal-l2 can comment. |
Neovim uses luajit instead of pure lua because of performance issue, right? I've never tried with homebrew's lua, but it might be worth to try. |
We need a means to install rocks ( |
@fxcoudert Is that possible/acceptable in a homebrew formula? Do you know of any formulae doing so, that we can use as an example? |
@justinmk https://github.com/Homebrew/homebrew-core/blob/master/Formula/sile.rb and https://github.com/Homebrew/homebrew-core/blob/master/Formula/corsixth.rb depends on lpeg. Looks like you can't bottle those Formulas though if you depend on lua modules. |
@javian Thanks! For neovim, the luarocks dependencies are for build-time only, not runtime. I wonder if that still precludes bottling? @fxcoudert |
Hey! Another Homebrew maintainer here. I haven't looked into it too much, but I'd be very surprised if a build-only Lua dependency prevented bottling. |
@alyssais thanks. Specifically, we download lua modules via luarocks. Same deal? |
I think so. |
Anyone here (particularly Homebrew maintainers): submit the formula as-is to Homebrew/homebrew-core; we can have better discussion on that than before. Thanks ❤️ |
I'm trying at the moment but there seems to be some issues when the last PR is included in the Formula and building HEAD. |
@javian You can ignore my PR since the formula works well now without the PR. |
So I finally managed to get the formula merged into core. It does not have the same same feature set as the neovim formula since it is meant to produce a production ready binary so I'm not sure what you want to do with this now. I'll commit a PR to manage the migration and the deletion of the Formula here and you can decide what to do with it. |
@javian What exactly are the feature differences? I would like to retire this repo if possible. |
The differences are that there is no "dev" build It also doesn't use the third-party downloads that are managed through the cmake files but instead tries to utilize the pre-exisiting homebrew formulas as much as possible and downloads the required luarocks as formula resources. This is turn means that some of the versions are not synced like luarocks which in homebrew is bundles with the lua formula which uses an older version (2.3.0) compared to the one that's defined in the cmake scripts. It shouldn't really make a difference for the end user but might have an impact that you might get less info when people submit bug reports initially. |
And just to give you some numbers to support that here are the installation numbers since April 1st from homebrew. The large majority of the users seems to be using the standard Formula. I just recalled that there is also no option to opt-out of using jemalloc in the core formula since it is assumed that it should work, is the preferred option from the neovim developers and any bugs are related to neovim code (which should be fixed =)). |
Thanks for those notes! The Dev build doesn't matter since neovim/neovim#6827 and will probably be removed from neovim core. RelWithDebInfo is important and I hope it can be added as an option to the core formula. But maintaining this repo only for that purpose is not going to be worth the user and developer confusion.
Yes, as long as it is pinned to a known good version of jemalloc. jemalloc latest version can break, even in released versions, sometimes due to macOS changes. |
I also forgot to mention that the Formula doesn't support Linux and that it would need to be added to the linuxbrew repo for that to work. |
@justinmk can you elaborate why RelWithDebInfo is important and could you link to any examples where it has been used ? |
RelWithDebInfo allows users to get backtraces if a crash occurs. |
@justinmk Has that been useful in debugging things for you on macOS specifically? We generally disable debug symbols because they don't work well on macOS when binaries are built in a different location to where they are installed. |
@MikeMcQuaid Looks like I was cargo-culting. I see that function names appear in macOS crash reports even without debug builds, and that's all we usually get anyways. So RelWithDebInfo is not needed. Looks like rust has trouble with this as well: rust-lang/rust#24346 (comment) |
@justinmk Thanks, good to know. |
Now that there's a release, it should be possible to get the formula accepted into https://github.com/Homebrew/homebrew so we don't have to maintain it ourselves anymore. This might involve having to properly package the third-party dependencies, though.
The text was updated successfully, but these errors were encountered: