Did you check the docs?
Is your feature request related to a problem? Please describe.
Currently, lazy-lock.json only stores branch and commit for each plugin. This means the lockfile alone is not self-contained - you cannot determine where a plugin comes from without also referencing your plugin spec configuration.
This becomes a problem when:
- Reviewing the lockfile in a PR diff (you can't tell at a glance where a plugin comes from)
- Sharing or auditing lockfiles across machines without the accompanying spec
- Tools or scripts that want to process the lockfile independently
nvim-pack-lock.json is specified that way.
https://neovim.io/doc/user/pack/#vim.pack-lockfile
Describe the solution you'd like
Add a src field to each plugin entry in lazy-lock.json, storing the plugin's repository URL.
For example, the current format:
{
"lazy.nvim": { "branch": "main", "commit": "abc1234" },
"telescope.nvim": { "branch": "main", "commit": "def5678" }
}
Would become:
{
"lazy.nvim": { "branch": "main", "commit": "abc1234", "src": "https://github.com/folke/lazy.nvim.git" },
"telescope.nvim": { "branch": "main", "commit": "def5678", "src": "https://github.com/nvim-telescope/telescope.nvim.git" }
}
The src can be taken from the plugin's url field, or via Git.get_origin() as a fallback.
For reference, Neovim's built-in vim.pack lockfile (:h vim.pack-lockfile) already includes a src field for the same purpose, making the lockfile self-describing.
Describe alternatives you've considered
- Store only owner name: e.g. "owner": "folke". More compact but less useful — doesn't help with non-GitHub sources or when the owner alone is ambiguous.
- Store owner/repo shorthand: e.g. "source": "folke/lazy.nvim". Compact and matches the spec format users are already familiar with, but assumes GitHub.
Additional context
No response
Did you check the docs?
Is your feature request related to a problem? Please describe.
Currently,
lazy-lock.jsononly stores branch and commit for each plugin. This means the lockfile alone is not self-contained - you cannot determine where a plugin comes from without also referencing your plugin spec configuration.This becomes a problem when:
nvim-pack-lock.jsonis specified that way.https://neovim.io/doc/user/pack/#vim.pack-lockfile
Describe the solution you'd like
Add a src field to each plugin entry in lazy-lock.json, storing the plugin's repository URL.
For example, the current format:
{ "lazy.nvim": { "branch": "main", "commit": "abc1234" }, "telescope.nvim": { "branch": "main", "commit": "def5678" } }Would become:
{ "lazy.nvim": { "branch": "main", "commit": "abc1234", "src": "https://github.com/folke/lazy.nvim.git" }, "telescope.nvim": { "branch": "main", "commit": "def5678", "src": "https://github.com/nvim-telescope/telescope.nvim.git" } }The src can be taken from the plugin's url field, or via Git.get_origin() as a fallback.
For reference, Neovim's built-in vim.pack lockfile (
:h vim.pack-lockfile) already includes a src field for the same purpose, making the lockfile self-describing.Describe alternatives you've considered
Additional context
No response