fix: remove unused runtime attr from defaultPlugin to fix nixpkgs compat #41

Open
jiriks74 wants to merge 1 commit from fix/remove-runtime-attr into main
Owner

Problem

Building the NixOS configuration fails with:

The option `plugins."[definition 1-entry 1]".runtime' does not exist.

Did you mean `plugins."[definition 1-entry 1]".config',
`plugins."[definition 1-entry 1]".plugin' or
`plugins."[definition 1-entry 1]".optional'?

Root Cause

nixpkgs PR NixOS/nixpkgs#488793 (merged 2026-03-11) introduced evalModules-based typechecking for Neovim plugin definitions. The new module.nix defines a strict pluginWithConfigType submodule that only accepts three options: plugin, config, and optional.

Our nix/mkNeovim.nix had a defaultPlugin attrset with an extra runtime = {}; attribute. Before PR #488793, extra attributes were silently ignored during plugin normalization. Now they cause a type error because evalModules rejects unknown options.

The runtime attribute was:

  • Always set to {} (empty attrset)
  • Never consumed by any code in this repo or in nixpkgs
  • Inherited from the upstream kickstart-nix.nvim template, where it was also unused

Fix

Remove runtime = {}; from the defaultPlugin definition in nix/mkNeovim.nix. This is safe because the attribute was never used.

## Problem Building the NixOS configuration fails with: ``` The option `plugins."[definition 1-entry 1]".runtime' does not exist. Did you mean `plugins."[definition 1-entry 1]".config', `plugins."[definition 1-entry 1]".plugin' or `plugins."[definition 1-entry 1]".optional'? ``` ## Root Cause nixpkgs PR [NixOS/nixpkgs#488793](https://github.com/NixOS/nixpkgs/pull/488793) (merged 2026-03-11) introduced `evalModules`-based typechecking for Neovim plugin definitions. The new `module.nix` defines a strict `pluginWithConfigType` submodule that only accepts three options: `plugin`, `config`, and `optional`. Our `nix/mkNeovim.nix` had a `defaultPlugin` attrset with an extra `runtime = {};` attribute. Before PR #488793, extra attributes were silently ignored during plugin normalization. Now they cause a type error because `evalModules` rejects unknown options. The `runtime` attribute was: - Always set to `{}` (empty attrset) - Never consumed by any code in this repo or in nixpkgs - Inherited from the upstream [kickstart-nix.nvim](https://github.com/mrcjkb/kickstart-nix.nvim) template, where it was also unused ## Fix Remove `runtime = {};` from the `defaultPlugin` definition in `nix/mkNeovim.nix`. This is safe because the attribute was never used.
fix: remove runtime attr from defaultPlugin
All checks were successful
Perform checks / formatting (push) Successful in 39s
Perform checks / nix_flake_check (push) Successful in 33s
Perform checks / nix_build (push) Successful in 5m15s
Perform checks / formatting (pull_request) Successful in 59s
Perform checks / nix_flake_check (pull_request) Successful in 34s
Perform checks / nix_build (pull_request) Successful in 5m18s
abd63ee0bd
The `runtime = {}` attribute in defaultPlugin was never part of the
nixpkgs Neovim plugin schema. It was silently ignored until nixpkgs
PR #488793 introduced `evalModules` typechecking for Neovim plugin
definitions, which now rejects unknown attributes.

The valid plugin options are: `plugin`, `config`, and `optional`.
The `runtime` attribute was always set to `{}` (empty) and never
consumed by any code, so removing it is safe and fixes the build
error:

  The option `plugins."[definition 1-entry 1]".runtime' does not exist.
All checks were successful
Perform checks / formatting (push) Successful in 39s
Perform checks / nix_flake_check (push) Successful in 33s
Perform checks / nix_build (push) Successful in 5m15s
Perform checks / formatting (pull_request) Successful in 59s
Perform checks / nix_flake_check (pull_request) Successful in 34s
Perform checks / nix_build (pull_request) Successful in 5m18s
This pull request can be merged automatically.
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin fix/remove-runtime-attr:fix/remove-runtime-attr
git switch fix/remove-runtime-attr

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch main
git merge --no-ff fix/remove-runtime-attr
git switch fix/remove-runtime-attr
git rebase main
git switch main
git merge --ff-only fix/remove-runtime-attr
git switch fix/remove-runtime-attr
git rebase main
git switch main
git merge --no-ff fix/remove-runtime-attr
git switch main
git merge --squash fix/remove-runtime-attr
git switch main
git merge --ff-only fix/remove-runtime-attr
git switch main
git merge fix/remove-runtime-attr
git push origin main
Sign in to join this conversation.
No description provided.