nix-community / neovim-nightly-overlay

[maintainer=@GaetanLepage, @willruggiano]
https://matrix.to/#/#neovim-nightly-overlay:nixos.org
287 stars 40 forks source link

feat: move neovim flake into the overlay itself #483

Closed ribru17 closed 1 month ago

ribru17 commented 2 months ago

Attempts to move the Neovim nix flake into this overlay. See https://github.com/neovim/neovim/pull/28305#issuecomment-2052066183. I'm marking this as draft because I am not confident enough in my Nix knowledge, but in my local testing this seemed to work well. The sub-flake importing followed solutions discussed in https://github.com/NixOS/nix/issues/3978, though it has its caveats as mentioned over there. Still, I think this may be a fine solution, and I will try to be quick to amend the PR if anything needs a change :+1:

EDIT: I think this is ready for review. It seems to work fine in my configuration. And I believe the drawbacks mentioned above are not applicable here.

Note that the flake copied over here differs slightly from the original Neovim flake in that it pulls in

{
    neovim-src.url = "github:neovim/neovim";
    neovim-src.flake = false;
}

because it obviously can no longer use relative paths to access the files in the repo.

teto commented 1 month ago

thanks for doing this ! It's very much appreciated.

clason commented 1 month ago

@ribru17 You need to bump the tree-sitter dependency to 0.22.6 for nightly/0.11

@teto can we merge this ASAP (and remove the flake from neovim/neovim)? We're getting increasing noise from the outdated flake.

ribru17 commented 1 month ago

Apologies: @teto I might need some guidance from you on this. When trying to merge the two flakes my lack of nix knowledge began showing and I was unable to resolve the errors after quite some trying. I'll keep on it today but maybe in the meantime maybe I can just make a PR to update the dependency in the neovim repo?

EDIT: I think the current unstable version of nixpkgs also has the out-of-date version of tree-sitter (0.22.5) so it will need to be bumped there first so we can update the flake input here (or in the neovim repo)

willruggiano commented 1 month ago

@ribru17 I just moved off of neovim/neovim?dir=contrib so if you need a reference you can check out: https://github.com/willruggiano/neovim.drv/commit/f16c01d0e31b7a27abc7e7b9435fc5599dafc3fe#diff-e126406cafda4a612d447ad20677962966b4f61764ea252c7c932b244e7d5cd3

Note that this also uses the versions specified in deps.txt for a few other dependencies: gettext, libiconv, libuv, libvterm-neovim, msgpack-c and tree-sitter. So your comment above about the outdated tree-sitter version is resolved by this method.

ribru17 commented 1 month ago

Thank you, this is amazing!! I will try and integrate a minimal version of it here.

willruggiano commented 1 month ago

Thank you, this is amazing!! I will try and integrate a minimal version of it here.

No problem. Feel free to @ me if you need any help.

teto commented 1 month ago

@ribru17 I will start doing it myself in a few hours if you dont beat me to it. Neovim core contributors are (rightfully) tired of dealing with nix issues and I've made them wait too long. I've got a window of opportunity in a few hours.

ribru17 commented 1 month ago

Thank you @teto, I appreciate your work. I've definitely bitten off more than I can chew with this one :/ Apologies if I led anyone on with this one, I definitely had higher confidence in myself in the beginning stages of this PR...

teto commented 1 month ago

finally done in https://github.com/nix-community/neovim-nightly-overlay/pull/516 . Sry for the trouble