Skip to content

vimPlugins: nvimRequireChecks and nvimSkipModules for new nvimRequireCheckHook#360800

Merged
khaneliman merged 4 commits intoNixOS:masterfrom
khaneliman:neovim-require-check
Dec 1, 2024
Merged

vimPlugins: nvimRequireChecks and nvimSkipModules for new nvimRequireCheckHook#360800
khaneliman merged 4 commits intoNixOS:masterfrom
khaneliman:neovim-require-check

Conversation

@khaneliman
Copy link
Contributor

Things done

Pulling out the vimPlugins changes from #352277 so that plugin additions/changes don't cause merge conflicts constantly during staging cycle. They wont have any effect until the hook changes make it to master.

  • Built on platform(s)
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)
    • sandbox = relaxed
    • sandbox = true
  • Tested, as applicable:
  • Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
  • Tested basic functionality of all binary files (usually in ./result/bin/)
  • 25.05 Release Notes (or backporting 24.11 and 25.05 Release notes)
    • (Package updates) Added a release notes entry if the change is major or breaking
    • (Module updates) Added a release notes entry if the change is significant
    • (Module addition) Added a release notes entry if adding a new NixOS module
  • Fits CONTRIBUTING.md.

Add a 👍 reaction to pull requests you find important.

Some plugins have modules that require setup called or a config/opts.
Just requiring the main module instead of creating a large list of
skips.
@github-actions github-actions bot added the 6.topic: vim Advanced text editor label Dec 1, 2024
@github-actions github-actions bot added 10.rebuild-darwin: 11-100 This PR causes between 11 and 100 packages to rebuild on Darwin. 10.rebuild-linux: 11-100 This PR causes between 11 and 100 packages to rebuild on Linux. labels Dec 1, 2024
@GaetanLepage
Copy link
Contributor

nixpkgs-review result

Generated using nixpkgs-review.

Command: nixpkgs-review pr 360800


x86_64-linux

✅ 89 packages built:
  • vimPlugins.LazyVim
  • vimPlugins.aerial-nvim
  • vimPlugins.astrotheme
  • vimPlugins.asyncrun-vim
  • vimPlugins.auto-session
  • vimPlugins.bamboo-nvim
  • vimPlugins.barbar-nvim
  • vimPlugins.base46
  • vimPlugins.bufferline-nvim
  • vimPlugins.catppuccin-nvim
  • vimPlugins.ccc-nvim
  • vimPlugins.cmd-parser-nvim
  • vimPlugins.cobalt2-nvim
  • vimPlugins.context-vim
  • vimPlugins.darkearth-nvim
  • vimPlugins.dropbar-nvim
  • vimPlugins.feline-nvim
  • vimPlugins.flash-nvim
  • vimPlugins.flutter-tools-nvim
  • vimPlugins.go-nvim
  • vimPlugins.himalaya-vim
  • vimPlugins.hover-nvim
  • vimPlugins.indent-blankline-nvim
  • vimPlugins.instant-nvim
  • vimPlugins.legendary-nvim
  • vimPlugins.lightline-bufferline
  • vimPlugins.lispdocs-nvim
  • vimPlugins.lspsaga-nvim
  • vimPlugins.ltex_extra-nvim
  • vimPlugins.luasnip-latex-snippets-nvim
  • vimPlugins.mason-lspconfig-nvim
  • vimPlugins.mason-nvim
  • vimPlugins.mason-tool-installer-nvim
  • vimPlugins.material-vim
  • vimPlugins.mkdnflow-nvim
  • vimPlugins.modicator-nvim
  • vimPlugins.molten-nvim
  • vimPlugins.neorepl-nvim
  • vimPlugins.neotest-jest
  • vimPlugins.neotest-minitest
  • vimPlugins.neotest-playwright
  • vimPlugins.neotest-vitest
  • vimPlugins.neotest-zig
  • vimPlugins.netman-nvim
  • vimPlugins.nvchad
  • vimPlugins.nvchad-ui
  • vimPlugins.nvim-autopairs
  • vimPlugins.nvim-fzf-commands
  • vimPlugins.nvim-moonwalk
  • vimPlugins.nvim-neoclip-lua
  • vimPlugins.nvim-snippets
  • vimPlugins.nvim-surround
  • vimPlugins.nvim-treesitter-context
  • vimPlugins.nvim-unception
  • vimPlugins.nvzone-menu
  • vimPlugins.omni-vim
  • vimPlugins.onedark-nvim
  • vimPlugins.openscad-nvim
  • vimPlugins.outline-nvim
  • vimPlugins.persisted-nvim
  • vimPlugins.poimandres-nvim
  • vimPlugins.pywal-nvim
  • vimPlugins.qmk-nvim
  • vimPlugins.rainbow-delimiters-nvim
  • vimPlugins.range-highlight-nvim
  • vimPlugins.smart-open-nvim
  • vimPlugins.smart-splits-nvim
  • vimPlugins.snacks-nvim
  • vimPlugins.snap
  • vimPlugins.spaceman-nvim
  • vimPlugins.telescope-frecency-nvim
  • vimPlugins.text-case-nvim
  • vimPlugins.tmux-complete-vim
  • vimPlugins.tokyonight-nvim
  • vimPlugins.trouble-nvim
  • vimPlugins.tsc-nvim
  • vimPlugins.vim-apm
  • vimPlugins.vim-flog
  • vimPlugins.vim-illuminate
  • vimPlugins.vim-matchup
  • vimPlugins.vim-tpipeline
  • vimPlugins.vim-ultest
  • vimPlugins.virt-column-nvim
  • vimPlugins.which-key-nvim
  • vimPlugins.wiki-vim
  • vimPlugins.yanky-nvim
  • vimPlugins.zenbones-nvim
  • vimPlugins.zk-nvim
  • vimPluginsUpdater

aarch64-linux

✅ 89 packages built:
  • vimPlugins.LazyVim
  • vimPlugins.aerial-nvim
  • vimPlugins.astrotheme
  • vimPlugins.asyncrun-vim
  • vimPlugins.auto-session
  • vimPlugins.bamboo-nvim
  • vimPlugins.barbar-nvim
  • vimPlugins.base46
  • vimPlugins.bufferline-nvim
  • vimPlugins.catppuccin-nvim
  • vimPlugins.ccc-nvim
  • vimPlugins.cmd-parser-nvim
  • vimPlugins.cobalt2-nvim
  • vimPlugins.context-vim
  • vimPlugins.darkearth-nvim
  • vimPlugins.dropbar-nvim
  • vimPlugins.feline-nvim
  • vimPlugins.flash-nvim
  • vimPlugins.flutter-tools-nvim
  • vimPlugins.go-nvim
  • vimPlugins.himalaya-vim
  • vimPlugins.hover-nvim
  • vimPlugins.indent-blankline-nvim
  • vimPlugins.instant-nvim
  • vimPlugins.legendary-nvim
  • vimPlugins.lightline-bufferline
  • vimPlugins.lispdocs-nvim
  • vimPlugins.lspsaga-nvim
  • vimPlugins.ltex_extra-nvim
  • vimPlugins.luasnip-latex-snippets-nvim
  • vimPlugins.mason-lspconfig-nvim
  • vimPlugins.mason-nvim
  • vimPlugins.mason-tool-installer-nvim
  • vimPlugins.material-vim
  • vimPlugins.mkdnflow-nvim
  • vimPlugins.modicator-nvim
  • vimPlugins.molten-nvim
  • vimPlugins.neorepl-nvim
  • vimPlugins.neotest-jest
  • vimPlugins.neotest-minitest
  • vimPlugins.neotest-playwright
  • vimPlugins.neotest-vitest
  • vimPlugins.neotest-zig
  • vimPlugins.netman-nvim
  • vimPlugins.nvchad
  • vimPlugins.nvchad-ui
  • vimPlugins.nvim-autopairs
  • vimPlugins.nvim-fzf-commands
  • vimPlugins.nvim-moonwalk
  • vimPlugins.nvim-neoclip-lua
  • vimPlugins.nvim-snippets
  • vimPlugins.nvim-surround
  • vimPlugins.nvim-treesitter-context
  • vimPlugins.nvim-unception
  • vimPlugins.nvzone-menu
  • vimPlugins.omni-vim
  • vimPlugins.onedark-nvim
  • vimPlugins.openscad-nvim
  • vimPlugins.outline-nvim
  • vimPlugins.persisted-nvim
  • vimPlugins.poimandres-nvim
  • vimPlugins.pywal-nvim
  • vimPlugins.qmk-nvim
  • vimPlugins.rainbow-delimiters-nvim
  • vimPlugins.range-highlight-nvim
  • vimPlugins.smart-open-nvim
  • vimPlugins.smart-splits-nvim
  • vimPlugins.snacks-nvim
  • vimPlugins.snap
  • vimPlugins.spaceman-nvim
  • vimPlugins.telescope-frecency-nvim
  • vimPlugins.text-case-nvim
  • vimPlugins.tmux-complete-vim
  • vimPlugins.tokyonight-nvim
  • vimPlugins.trouble-nvim
  • vimPlugins.tsc-nvim
  • vimPlugins.vim-apm
  • vimPlugins.vim-flog
  • vimPlugins.vim-illuminate
  • vimPlugins.vim-matchup
  • vimPlugins.vim-tpipeline
  • vimPlugins.vim-ultest
  • vimPlugins.virt-column-nvim
  • vimPlugins.which-key-nvim
  • vimPlugins.wiki-vim
  • vimPlugins.yanky-nvim
  • vimPlugins.zenbones-nvim
  • vimPlugins.zk-nvim
  • vimPluginsUpdater

x86_64-darwin

✅ 89 packages built:
  • vimPlugins.LazyVim
  • vimPlugins.aerial-nvim
  • vimPlugins.astrotheme
  • vimPlugins.asyncrun-vim
  • vimPlugins.auto-session
  • vimPlugins.bamboo-nvim
  • vimPlugins.barbar-nvim
  • vimPlugins.base46
  • vimPlugins.bufferline-nvim
  • vimPlugins.catppuccin-nvim
  • vimPlugins.ccc-nvim
  • vimPlugins.cmd-parser-nvim
  • vimPlugins.cobalt2-nvim
  • vimPlugins.context-vim
  • vimPlugins.darkearth-nvim
  • vimPlugins.dropbar-nvim
  • vimPlugins.feline-nvim
  • vimPlugins.flash-nvim
  • vimPlugins.flutter-tools-nvim
  • vimPlugins.go-nvim
  • vimPlugins.himalaya-vim
  • vimPlugins.hover-nvim
  • vimPlugins.indent-blankline-nvim
  • vimPlugins.instant-nvim
  • vimPlugins.legendary-nvim
  • vimPlugins.lightline-bufferline
  • vimPlugins.lispdocs-nvim
  • vimPlugins.lspsaga-nvim
  • vimPlugins.ltex_extra-nvim
  • vimPlugins.luasnip-latex-snippets-nvim
  • vimPlugins.mason-lspconfig-nvim
  • vimPlugins.mason-nvim
  • vimPlugins.mason-tool-installer-nvim
  • vimPlugins.material-vim
  • vimPlugins.mkdnflow-nvim
  • vimPlugins.modicator-nvim
  • vimPlugins.molten-nvim
  • vimPlugins.neorepl-nvim
  • vimPlugins.neotest-jest
  • vimPlugins.neotest-minitest
  • vimPlugins.neotest-playwright
  • vimPlugins.neotest-vitest
  • vimPlugins.neotest-zig
  • vimPlugins.netman-nvim
  • vimPlugins.nvchad
  • vimPlugins.nvchad-ui
  • vimPlugins.nvim-autopairs
  • vimPlugins.nvim-fzf-commands
  • vimPlugins.nvim-moonwalk
  • vimPlugins.nvim-neoclip-lua
  • vimPlugins.nvim-snippets
  • vimPlugins.nvim-surround
  • vimPlugins.nvim-treesitter-context
  • vimPlugins.nvim-unception
  • vimPlugins.nvzone-menu
  • vimPlugins.omni-vim
  • vimPlugins.onedark-nvim
  • vimPlugins.openscad-nvim
  • vimPlugins.outline-nvim
  • vimPlugins.persisted-nvim
  • vimPlugins.poimandres-nvim
  • vimPlugins.pywal-nvim
  • vimPlugins.qmk-nvim
  • vimPlugins.rainbow-delimiters-nvim
  • vimPlugins.range-highlight-nvim
  • vimPlugins.smart-open-nvim
  • vimPlugins.smart-splits-nvim
  • vimPlugins.snacks-nvim
  • vimPlugins.snap
  • vimPlugins.spaceman-nvim
  • vimPlugins.telescope-frecency-nvim
  • vimPlugins.text-case-nvim
  • vimPlugins.tmux-complete-vim
  • vimPlugins.tokyonight-nvim
  • vimPlugins.trouble-nvim
  • vimPlugins.tsc-nvim
  • vimPlugins.vim-apm
  • vimPlugins.vim-flog
  • vimPlugins.vim-illuminate
  • vimPlugins.vim-matchup
  • vimPlugins.vim-tpipeline
  • vimPlugins.vim-ultest
  • vimPlugins.virt-column-nvim
  • vimPlugins.which-key-nvim
  • vimPlugins.wiki-vim
  • vimPlugins.yanky-nvim
  • vimPlugins.zenbones-nvim
  • vimPlugins.zk-nvim
  • vimPluginsUpdater

aarch64-darwin

✅ 89 packages built:
  • vimPlugins.LazyVim
  • vimPlugins.aerial-nvim
  • vimPlugins.astrotheme
  • vimPlugins.asyncrun-vim
  • vimPlugins.auto-session
  • vimPlugins.bamboo-nvim
  • vimPlugins.barbar-nvim
  • vimPlugins.base46
  • vimPlugins.bufferline-nvim
  • vimPlugins.catppuccin-nvim
  • vimPlugins.ccc-nvim
  • vimPlugins.cmd-parser-nvim
  • vimPlugins.cobalt2-nvim
  • vimPlugins.context-vim
  • vimPlugins.darkearth-nvim
  • vimPlugins.dropbar-nvim
  • vimPlugins.feline-nvim
  • vimPlugins.flash-nvim
  • vimPlugins.flutter-tools-nvim
  • vimPlugins.go-nvim
  • vimPlugins.himalaya-vim
  • vimPlugins.hover-nvim
  • vimPlugins.indent-blankline-nvim
  • vimPlugins.instant-nvim
  • vimPlugins.legendary-nvim
  • vimPlugins.lightline-bufferline
  • vimPlugins.lispdocs-nvim
  • vimPlugins.lspsaga-nvim
  • vimPlugins.ltex_extra-nvim
  • vimPlugins.luasnip-latex-snippets-nvim
  • vimPlugins.mason-lspconfig-nvim
  • vimPlugins.mason-nvim
  • vimPlugins.mason-tool-installer-nvim
  • vimPlugins.material-vim
  • vimPlugins.mkdnflow-nvim
  • vimPlugins.modicator-nvim
  • vimPlugins.molten-nvim
  • vimPlugins.neorepl-nvim
  • vimPlugins.neotest-jest
  • vimPlugins.neotest-minitest
  • vimPlugins.neotest-playwright
  • vimPlugins.neotest-vitest
  • vimPlugins.neotest-zig
  • vimPlugins.netman-nvim
  • vimPlugins.nvchad
  • vimPlugins.nvchad-ui
  • vimPlugins.nvim-autopairs
  • vimPlugins.nvim-fzf-commands
  • vimPlugins.nvim-moonwalk
  • vimPlugins.nvim-neoclip-lua
  • vimPlugins.nvim-snippets
  • vimPlugins.nvim-surround
  • vimPlugins.nvim-treesitter-context
  • vimPlugins.nvim-unception
  • vimPlugins.nvzone-menu
  • vimPlugins.omni-vim
  • vimPlugins.onedark-nvim
  • vimPlugins.openscad-nvim
  • vimPlugins.outline-nvim
  • vimPlugins.persisted-nvim
  • vimPlugins.poimandres-nvim
  • vimPlugins.pywal-nvim
  • vimPlugins.qmk-nvim
  • vimPlugins.rainbow-delimiters-nvim
  • vimPlugins.range-highlight-nvim
  • vimPlugins.smart-open-nvim
  • vimPlugins.smart-splits-nvim
  • vimPlugins.snacks-nvim
  • vimPlugins.snap
  • vimPlugins.spaceman-nvim
  • vimPlugins.telescope-frecency-nvim
  • vimPlugins.text-case-nvim
  • vimPlugins.tmux-complete-vim
  • vimPlugins.tokyonight-nvim
  • vimPlugins.trouble-nvim
  • vimPlugins.tsc-nvim
  • vimPlugins.vim-apm
  • vimPlugins.vim-flog
  • vimPlugins.vim-illuminate
  • vimPlugins.vim-matchup
  • vimPlugins.vim-tpipeline
  • vimPlugins.vim-ultest
  • vimPlugins.virt-column-nvim
  • vimPlugins.which-key-nvim
  • vimPlugins.wiki-vim
  • vimPlugins.yanky-nvim
  • vimPlugins.zenbones-nvim
  • vimPlugins.zk-nvim
  • vimPluginsUpdater

We dont want to bundle nvim-cmp with these because of alternative
completion plugins existing that can utilize these sources. Adding
nvim-cmp to run checkphase, though.
We dont want to bundle nvim-web-devicons with these because of
alternative plugins existing that can mock their require. Adding
nvim-web-devicons to run checkphase, though.
@khaneliman khaneliman force-pushed the neovim-require-check branch from e6fc76a to 6af0ef2 Compare December 1, 2024 17:33
@khaneliman
Copy link
Contributor Author

khaneliman commented Dec 1, 2024

Just updated note on vim-ultest to not recommend removing atm. It looks like it might still be used for testing in vim, but neotest is suggested for neovim.

@khaneliman khaneliman merged commit d2301bd into NixOS:master Dec 1, 2024
@khaneliman khaneliman deleted the neovim-require-check branch December 1, 2024 17:40
@teto
Copy link
Member

teto commented Dec 1, 2024

It's unusual to start merging unused code. As I feared the number of false positives is concerning. almost 700 lines (and that is without #352277 (comment)) that doesn't bring much in terms of robustness.

@khaneliman
Copy link
Contributor Author

khaneliman commented Dec 1, 2024

As I feared the number of false positives is concerning. almost 700 lines (and that is without #352277 (comment)) that doesn't bring much in terms of robustness.

Not sure I understand what the comment means.

This was just pulling out the code changes that were already tested in #352277 so we dont cause constant conflicts in the github actions for master -> staging-next -> staging cycle due to the single file - multiple source files we have that will be touched constantly with new plugins. Not sure what you mean by false positives, everything currently is a false positive without manual intervention. The upcoming change causes a failure when a lua module throws an error and we need to inspect the plugin to make sure we're providing dependencies and understand what we're providing.

The linked comment are build failures. What is that in relation to this work?

@teto
Copy link
Member

teto commented Dec 2, 2024

If I understand correctly, this PR does nothing without #352277 ?
in which case it is dead code and it is not good practice to merge dead code.

we dont cause constant conflicts in the github actions for master -> staging-next -> staging cycle due to the single file - multiple source files we have that will be touched constantly with new plugins.

Are you talking about pkgs/applications/editors/vim/plugins/overrides.nix ? in my experience it's pretty straightforward to rebase, the chunks are easily identifiable and it's part of the PR process.

The linked comment are build failures.

Sry for the link, I just meant the PR in general, not the specific comment my bad

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

6.topic: vim Advanced text editor 10.rebuild-darwin: 11-100 This PR causes between 11 and 100 packages to rebuild on Darwin. 10.rebuild-linux: 11-100 This PR causes between 11 and 100 packages to rebuild on Linux.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants