You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: MAINTAINING.md
+52-6Lines changed: 52 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -168,6 +168,15 @@ Begin the process of stopping official support for outdated Neovim version short
168
168
169
169
## Adding new module
170
170
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
+
171
180
- Add Lua source code in 'lua' directory.
172
181
- Add tests in 'tests' directory. Use 'tests/dir-xxx' name for module-specific non-test helpers.
173
182
- 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
179
188
- '.github/ISSUE_TEMPLATE/feature-request.yml' to be included in a dropdown menu.
180
189
- '.github/DISCUSSION_TEMPLATE/q-a.yml' to be included in a dropdown menu.
181
190
- 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.
183
191
- 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.
184
192
- Update main README to mention new module in table of contents.
185
193
- Update 'CHANGELOG.md' to mention introduction of new module.
186
194
- 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.
188
196
- 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
+
189
211
- Make standalone plugin:
190
212
- Create new empty GitHub repository. Disable Issues, limit PRs.
191
213
- Clone the repo manually. Copy 'LICENSE' file to it, stage, and commit ("docs: add license"). Push.
192
214
- 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.
194
216
- Check that standalone repo doesn't have some known issues:
195
217
- 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).
196
218
- Make sure that 'README.md' in standalone repository has appropriate relative links (see patch script).
197
219
- If there are issues, manually adjust in the repo, amend to latest commit, and force push.
198
220
- 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.
199
229
200
230
## Making stable release
201
231
232
+
### When
233
+
202
234
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.
203
235
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
205
241
206
242
- Check for `TODO`s about actions to be done *before* release.
243
+
- Checkout `release-0.xx` branch.
207
244
- Update READMEs of new modules to mention `stable` branch. Commit.
208
245
- 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.
211
253
- Synchronize standalone repositories.
212
254
- Make annotated tag: `git tag -a v0.xx.0 -m 'Version 0.xx.0'`. Push it.
213
255
- Make GitHub release. Get description from copying entries of version's 'CHANGELOG.md' section.
@@ -218,6 +260,10 @@ Checklist:
218
260
TAG_NAME="v0.xx.0" TAG_MESSAGE="Version 0.xx.0" make dual_release
219
261
```
220
262
- 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
+
221
266
- Close all beta-testing issues for new plugins.
222
267
- Use development version in 'CHANGELOG.md' ('0.xx.0.9000'). Commit.
268
+
- Synchronize nvim-mini.org.
223
269
- Check for `TODO`s about actions to be done *after* release.
0 commit comments