feat(migrations): record the v0.2.1 autopairs swap, require migrations for default changes#9
Merged
Conversation
…s for default changes v0.2.1 swapped core pair handling from mini.pairs to nvim-autopairs but the migrations table stayed empty, so the change reached users without the explicit upgrade path the manifesto promises. Add a non-breaking notify-only migration so the next :BlakUpgrade explains the swap and the plugins.specs opt-out (the editor.mini extra deliberately skips the pairs module, so that is the supported path back). Make the process explicit in CONTRIBUTING.md and AGENTS.md: any change to a shipped default needs a migration entry plus a NEWS.md entry in the same change.
9f31abd to
641f0d6
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The migrations machinery exists precisely so shipped defaults change through an explicit upgrade path — but the table in
lua/blak/core/migrations.luawas empty, even though NEWS.md v0.2.1 documents swapping core pair handling frommini.pairstonvim-autopairs. That change reached users without the machinery ever being used.Two parts:
v0.2.1.autopairs: deliberately non-breaking (it doesn't block:BlakUpdate— the swap shipped two releases ago, so blocking everyone now would punish current users). It's notify-only: on the next:BlakUpgradeit explains the swap once and points at the opt-out. Note the opt-out is{ "windwp/nvim-autopairs", enabled = false }inplugins.specs— notmini.modules = { "pairs" }, because theeditor.miniextra deliberately skips thepairsmodule (lua/blak/extras/editor/mini.lua:14). Besides serving stragglers upgrading from 0.2.0, this exercises the migration pipeline for the first time, so it's proven before it's needed for something scary.Validation
make validatepasses. Neovim isn't available here formake smoke(which exercises the migration pipeline viascripts/update-contract.lua); manual check: run:BlakUpgradeon a machine with no migration state and confirm the one-time notification appears and:BlakUpdateis never blocked.