Vim
guest@6admin.io:~$ ls ~/tags/vim
vim-plugin-manager: argument injection hidden in a .gitmodules
Sixteen months of hardening compressed into one story: a proven git argument injection hidden in .gitmodules branch names, a subprocess budget pinned in tests, detached plugins that stop lying as up-to-date and stale tag mirrors poisoning every update. The v1-to-v2.2.10 saga.
MyVim: the DevOps IDE that is only 640 lines, because the manager does the rest
My editor config as a plugin: one file per plugin, linters scoped by buffer content (kubeconform only on apiVersion, actionlint only on workflows), filetypes nobody ships (cloud-init, terragrunt), OSC52 over SSH and a secrets file that never gets committed. The dogfood epilogue of the vim series.
vim-plugin-manager: turning a decade of bash into a real Vim plugin
Seven years after the hand-rolled submodule script, the rewrite in VimScript: declarative PluginBegin blocks, parallel background installs, pinning re-asserted from the vimrc and lazy loading that deletes its own placeholders. Episode three of the vim series.
Git submodules by hand: my Vim 8 plugins without a manager
When Debian and Ubuntu shipped Vim 8 and its native packages, I moved my plugin jungle into git submodules plus a 100-line bash script called plugins. The era of manual init/update, auto-commits and the necessary devil.
apt for Vim: the story of vim-apthogen (2012-2016)
Pathogen was dpkg, so I wrote apt: a 225-line bash script with package lists, a curl|bash netinstall and symlinks for enable/disable. The first rung of the ladder that ends at today's vim-plugin-manager.