Releases: zuqini/zpack.nvim
v1.2.0 — public introspection API + opts merging refactor
What's Changed
- feat: add public introspection API for third-party tooling by @zuqini in #12
- refactor: collapse opts merging to single authoritative path by @zuqini in #13
Full Changelog: v1.1.2...v1.1.3
v1.1.2 — lazy-loading event re-firing bug fixes + polish
What's Changed
Full Changelog: v1.1.1...v1.1.2
v1.1.1 - bug-fix/stability
What's Changed
Full Changelog: v1.1.0...v1.1.1
v1.1.0 — ZRestore
New
:ZRestore [plugin]— restore plugins to the state recorded in the native lockfile. Wrapsvim.pack.update()withtarget='lockfile'. Useful for syncing plugins across machines or reverting after an update.
Commits
- feat: add ZRestore command to restore plugins from lockfile by @zuqini in #4
- docs: split README into separate docs for examples, tips, and migration by @zuqini in #5
Full Changelog: v1.0.0...v1.1.0
v1.0.0 — Stable Release for Neovim 0.12
🎉 zpack.nvim v1.0.0
The first stable release of zpack.nvim, timed with the official release of Neovim 0.12 and vim.pack.
zpack is a thin layer on top of Neovim's native vim.pack, adding lazy-loading capabilities and support for the widely adopted lazy.nvim-like declarative spec — so you can keep using the plugin specs you already know, powered entirely by what's built in.
Highlights
- 100% native — installs and manages plugins (including zpack itself) through
vim.pack - Near drop-in from lazy.nvim — use the same declarative specs plugin authors already provide
- Lazy-loading triggers —
event,cmd,keys,ft,priority, andcond/enabledcontrols - Build hooks — run shell commands or Lua functions on install/update
- Plugin lifecycle commands —
:ZUpdate,:ZClean,:ZBuild,:ZLoad,:ZDeletewith tab completion - Spec imports — organize plugins across files under
lua/plugins/just like lazy.nvim - Dependency resolution — dependencies load automatically before their parent
- Version pinning — branches, tags, commits, and semver ranges via
vim.version.range() - lazy.nvim compatibility fields —
sem_version,branch,tag,commit,dir,urlall map to native equivalents - Configurable command prefix — rename
:Z*commands to whatever you prefer - Tested — CI test suite via GitHub Actions
What's New Since the Initial Announcement
Since the original Reddit post (~4 months ago), zpack has matured significantly:
- FileType lazy-loading (
ft) — with automatic re-triggering ofBufReadPre,BufReadPost, andFileTypeevents for proper LSP/Treesitter attachment - Event patterns — inline patterns (
"BufReadPre *.rs") and structuredEventSpecwith multiple patterns - Plugin lifecycle commands —
:ZBuild,:ZLoad,:ZDelete(with!for batch operations) joined the original:ZUpdateand:ZClean - Global defaults —
defaults.confirmanddefaults.condfor all plugins vim_loaderintegration —performance.vim_loaderfor faster startup (enabled by default)- Configurable command prefix — via
cmd_prefixoption inithook — runs before plugin load for plugins that need early setupmodulefield — disable module-based lazy loading per-pluginenabledvsconddistinction —enabledskipsvim.pack.addentirely;condskips loading after installmainfield — explicit main module override when auto-detection failsoptsas function —opts = function(plugin, opts) return {} end- Plugin data in hooks — all lifecycle hooks receive a
zpack.Pluginobject withpathandspec - Snacks.nvim compatibility guide — documented workaround for dashboard startup section
- Community extension — zshow.nvim by @sairyy provides a floating window UI for viewing installed plugins
- Comprehensive test suite — automated testing via GitHub Actions
Getting Started
-- Bootstrap with vim.pack
vim.pack.add({ 'https://github.com/zuqini/zpack.nvim' })
vim.g.mapleader = " "
require('zpack').setup()Create plugin specs in lua/plugins/ — see the README for examples and the migration guide for lazy.nvim users.
Requirements
- Neovim 0.12.0+
Thank You
Thanks to everyone who tried zpack and gave feedback since the initial announcement. Special thanks to the early adopters and to @sairyy for building the first community extension.
Full Changelog: https://github.com/zuqini/zpack.nvim/commits/v1.0.0
New Contributors
Full Changelog: https://github.com/zuqini/zpack.nvim/commits/v1.0.0