-
Notifications
You must be signed in to change notification settings - Fork 45.2k
Description
Background
The README already acknowledges this tension:
"You likely want to remove
lazy-lock.jsonfrom your fork's.gitignorefile too — it's ignored in the kickstart repo to make maintenance easier, but it's recommended to track it in version control."
This issue proposes resolving it at the source rather than continuing to document a workaround.
How users end up using this repo
The README recommends forking and customising. Many users go a step further — maintaining an upstream remote to periodically pull in improvements from nvim-lua/kickstart.nvim while keeping personalisation in a separate branch. For example, my own fork does exactly this.
In that workflow, every upstream sync can introduce a conflict on the lazy-lock.json ignore entry, requiring the manual edit to be re-applied.
The problem
Users who want to track lazy-lock.json (as lazy.nvim recommends) need to manually edit .gitignore to opt in and maintain that edit across upstream syncs. This is a minor but recurring friction point for what is likely a common usage pattern.
Proposed alternative
- Remove
lazy-lock.jsonfrom.gitignore— fork users track it by default with no manual edit required - Add a CODEOWNERS entry for
lazy-lock.jsonto flag any upstream PR that inadvertently includes it — though note this is only a soft gate unless branch protection is configured to enforce CODEOWNERS review; a lightweight CI check would provide a more reliable hard block - Document
.git/info/excludefor contributors working directly against the upstream clone who want to suppress the untracked file locally without touching.gitignore
Outcome
| Current | Proposed | |
|---|---|---|
Fork users track lazy-lock.json |
Manual .gitignore edit required |
Works out of the box |
Upstream sync conflicts on .gitignore |
Possible | Gone |
| Upstream PRs accidentally including the file | Blocked by ignore (blunt) | Flagged via CODEOWNERS / blocked by CI |
| Contributors working on upstream directly | Fine | One-time .git/info/exclude setup |