Skip to content

Commit 007f5d2

Browse files
committed
docs: update 'MAINTAINING.md' with more structured release sections
1 parent 9087880 commit 007f5d2

File tree

1 file changed

+52
-6
lines changed

1 file changed

+52
-6
lines changed

MAINTAINING.md

Lines changed: 52 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,15 @@ Begin the process of stopping official support for outdated Neovim version short
168168
169169
## Adding new module
170170
171+
### Preparation
172+
173+
- Create new module-related assets in https://github.com/nvim-mini/assets:
174+
- Logo files. See 'logo-2/generate.lua' in the repo for more details.
175+
- Demo video. Preferably under 1 minute screencast showcasing main features. Usually should also display module's config. Use config as close to bare MiniMax as possible. See other demos for reference.
176+
- Write release blog post for nvim-mini.org. Copy file naming and structure from previous release posts. Mention future beta-testing issue with a placeholder link.
177+
178+
### Initial
179+
171180
- Add Lua source code in 'lua' directory.
172181
- Add tests in 'tests' directory. Use 'tests/dir-xxx' name for module-specific non-test helpers.
173182
- Update 'lua/init.lua' to mention new module: both in initial table of contents and list of modules.
@@ -179,35 +188,68 @@ Begin the process of stopping official support for outdated Neovim version short
179188
- '.github/ISSUE_TEMPLATE/feature-request.yml' to be included in a dropdown menu.
180189
- '.github/DISCUSSION_TEMPLATE/q-a.yml' to be included in a dropdown menu.
181190
- Generate help files.
182-
- Create new logo files in https://github.com/nvim-mini/assets and push them. See 'logo-2/generate.lua' in the repo for more details.
183191
- Add README to 'readmes' directory following the structure of some of already existing README (preferably one of the latest). NOTE: comment out mentions of `stable` branch, as it won't work during beta-testing.
184192
- Update main README to mention new module in table of contents.
185193
- Update 'CHANGELOG.md' to mention introduction of new module.
186194
- Update 'CONTRIBUTING.md' to mention new highlight groups (if there are any).
187-
- Commit changes with message 'feat(xxx): add NEW MODULE'. NOTE: it is cleaner to synchronize standalone repositories prior to this commit.
195+
- Create separate release branch and commit changes with message 'feat(xxx): add NEW MODULE'. NOTE: it is cleaner to synchronize standalone repositories prior to this commit.
188196
- If there are new highlight groups, follow up with adding explicit support in color scheme modules.
197+
- Push release branch. Make sure CI is green.
198+
199+
### Site integration
200+
201+
- Checkout to module release branch.
202+
- Verify that nvim-mini.org handles new module. For that:
203+
- Modify 'mini.nvim' dependency to checkout into release branch.
204+
- `make sync`.
205+
- Add release blog post.
206+
- `quarto preview`.
207+
- Verify that new content looks as expected.
208+
209+
### Release
210+
189211
- Make standalone plugin:
190212
- Create new empty GitHub repository. Disable Issues, limit PRs.
191213
- Clone the repo manually. Copy 'LICENSE' file to it, stage, and commit ("docs: add license"). Push.
192214
- Add the following GitHub tags: "lua", "neovim", "neovim-plugin", "mini-nvim".
193-
- Push `main` and sync dual distribution.
215+
- Merge release branch into `main`. Push `main` and sync dual distribution.
194216
- Check that standalone repo doesn't have some known issues:
195217
- Make sure that all tracked files are synchronized. For list of tracked files see 'scripts/dual_sync.sh'. Initially they are 'doc/mini-xxx.txt', 'lua/mini/xxx.lua', 'LICENSE', and 'readmes/mini-xxx.md' (copied to be 'README.md' in standalone repository).
196218
- Make sure that 'README.md' in standalone repository has appropriate relative links (see patch script).
197219
- If there are issues, manually adjust in the repo, amend to latest commit, and force push.
198220
- Create a beta-testing issue and pin it.
221+
- Update nvim-mini.org:
222+
- `make sync` on `main` branch.
223+
- Add release blog post. NOTE: update it with proper beta-testing issue link.
224+
- Push.
225+
226+
### Post release
227+
228+
- Wait for at least several weeks of beta-testing before including new module to MiniMax.
199229
200230
## Making stable release
201231
232+
### When
233+
202234
There is no clear guidelines for when a stable (minor) release should be made. Mostly "when if feels right" but "not too often". If it has to be put in words, it is something like "After 3 new modules have finished beta-testing or 4 months, whichever is sooner". No patch releases have been made yet.
203235
204-
Checklist:
236+
### Preparation
237+
238+
- Write release blog post for nvim-mini.org. Copy file naming and structure from previous version release posts.
239+
240+
### Initial
205241
206242
- Check for `TODO`s about actions to be done *before* release.
243+
- Checkout `release-0.xx` branch.
207244
- Update READMEs of new modules to mention `stable` branch. Commit.
208245
- Bump version in 'CHANGELOG.md'. Commit.
209-
- Checkout to `new_release` branch and push to check in CI. **Proceed only if it is successful**.
210-
- Merge `new_release` to `main` and push it. Check that CI has passed.
246+
- Make a dummy change in 'lua/mini/init.lua' file to trigger code CI. Commit.
247+
- Push to check on CI. **Proceed only if it is successful**.
248+
- Remove dummy change commit.
249+
250+
### Release
251+
252+
- Merge `release-0.xx` to `main` and push it. Check that CI has passed.
211253
- Synchronize standalone repositories.
212254
- Make annotated tag: `git tag -a v0.xx.0 -m 'Version 0.xx.0'`. Push it.
213255
- Make GitHub release. Get description from copying entries of version's 'CHANGELOG.md' section.
@@ -218,6 +260,10 @@ Checklist:
218260
TAG_NAME="v0.xx.0" TAG_MESSAGE="Version 0.xx.0" make dual_release
219261
```
220262
- Check that standalone repositories actually got updates (tag + `stable`): manually visit some of them (at least new modules) on GitHub.
263+
264+
### Post release
265+
221266
- Close all beta-testing issues for new plugins.
222267
- Use development version in 'CHANGELOG.md' ('0.xx.0.9000'). Commit.
268+
- Synchronize nvim-mini.org.
223269
- Check for `TODO`s about actions to be done *after* release.

0 commit comments

Comments
 (0)