Skip to content

Commit 3f3a4a2

Browse files
committed
docs: revamp issue templates
1 parent 81c7b0b commit 3f3a4a2

File tree

6 files changed

+243
-32
lines changed

6 files changed

+243
-32
lines changed
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
labels: [question]
2+
body:
3+
- type: checkboxes
4+
id: guidelines
5+
attributes:
6+
label: Contributing guidelines
7+
options:
8+
- label: I have read [CODE_OF_CONDUCT.md](https://github.com/echasnovski/mini.nvim/blob/main/CODE_OF_CONDUCT.md)
9+
required: true
10+
- type: dropdown
11+
id: module
12+
attributes:
13+
label: "Module(s)"
14+
description: "Choose one or several modules this question is related to"
15+
multiple: true
16+
options:
17+
- mini.ai
18+
- mini.align
19+
- mini.animate
20+
- mini.base16
21+
- mini.basics
22+
- mini.bracketed
23+
- mini.bufremove
24+
- mini.clue
25+
- mini.colors
26+
- mini.comment
27+
- mini.completion
28+
- mini.cursorword
29+
- mini.deps
30+
- mini.diff
31+
- mini.doc
32+
- mini.extra
33+
- mini.files
34+
- mini.fuzzy
35+
- mini.git
36+
- mini.hipatterns
37+
- mini.hues
38+
- mini.icons
39+
- mini.indentscope
40+
- mini.jump
41+
- mini.jump2d
42+
- mini.map
43+
- mini.misc
44+
- mini.move
45+
- mini.notify
46+
- mini.operators
47+
- mini.pairs
48+
- mini.pick
49+
- mini.sessions
50+
- mini.snippets
51+
- mini.splitjoin
52+
- mini.starter
53+
- mini.statusline
54+
- mini.surround
55+
- mini.tabline
56+
- mini.test
57+
- mini.trailspace
58+
- mini.visits
59+
- none of the above
60+
- all of the above
61+
validations:
62+
required: true
63+
- type: textarea
64+
id: description
65+
attributes:
66+
label: "Question"
67+
validations:
68+
required: true
69+
Lines changed: 101 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,51 +1,129 @@
11
name: Bug report
2-
description: Report a problem
2+
description: Report a problem with the existing module(s)
33
labels: [bug]
44
body:
55
- type: checkboxes
6+
id: guidelines
67
attributes:
78
label: Contributing guidelines
89
options:
910
- label: I have read [CONTRIBUTING.md](https://github.com/echasnovski/mini.nvim/blob/main/CONTRIBUTING.md)
1011
required: true
1112
- label: I have read [CODE_OF_CONDUCT.md](https://github.com/echasnovski/mini.nvim/blob/main/CODE_OF_CONDUCT.md)
1213
required: true
13-
- label: I have updated 'mini.nvim' to latest version
14+
- label: I have updated 'mini.nvim' to latest version of the `main` branch
1415
required: true
15-
- type: input
16+
- type: dropdown
17+
id: module
1618
attributes:
1719
label: "Module(s)"
18-
description: "List one or several modules this bug is coming from"
19-
validations:
20-
required: true
21-
- type: textarea
22-
attributes:
23-
label: "Description"
24-
description: "A short description of a problem"
20+
description: "Choose one or several modules the problem is related to"
21+
multiple: true
22+
options:
23+
- mini.ai
24+
- mini.align
25+
- mini.animate
26+
- mini.base16
27+
- mini.basics
28+
- mini.bracketed
29+
- mini.bufremove
30+
- mini.clue
31+
- mini.colors
32+
- mini.comment
33+
- mini.completion
34+
- mini.cursorword
35+
- mini.deps
36+
- mini.diff
37+
- mini.doc
38+
- mini.extra
39+
- mini.files
40+
- mini.fuzzy
41+
- mini.git
42+
- mini.hipatterns
43+
- mini.hues
44+
- mini.icons
45+
- mini.indentscope
46+
- mini.jump
47+
- mini.jump2d
48+
- mini.map
49+
- mini.misc
50+
- mini.move
51+
- mini.notify
52+
- mini.operators
53+
- mini.pairs
54+
- mini.pick
55+
- mini.sessions
56+
- mini.snippets
57+
- mini.splitjoin
58+
- mini.starter
59+
- mini.statusline
60+
- mini.surround
61+
- mini.tabline
62+
- mini.test
63+
- mini.trailspace
64+
- mini.visits
2565
validations:
2666
required: true
27-
- type: input
67+
- type: dropdown
68+
id: nvim-version
2869
attributes:
2970
label: "Neovim version"
30-
description: "Something like `0.5`, `0.5.1`, Neovim nightly (please, include latest commit)"
71+
description: "Choose the latest Neovim version on which you can reproduce the problem"
72+
multiple: false
73+
options:
74+
- 0.8.x
75+
- 0.9.x
76+
- 0.10.x
77+
- 0.11 (!at least latest Nightly build!)
78+
default: 2
3179
validations:
3280
required: true
3381
- type: textarea
82+
id: description
3483
attributes:
35-
label: "Steps to reproduce"
36-
description: "Steps to reproduce using as minimal config as possible"
37-
value: |
38-
1. `nvim -nu minimal.lua`
39-
2. ...
84+
label: "Description"
85+
description: "A short description of a problem; include expected behavior"
4086
validations:
4187
required: true
4288
- type: textarea
89+
id: reproduction
4390
attributes:
44-
label: "Expected behavior"
45-
description: "A description of behavior you expected"
46-
- type: textarea
47-
attributes:
48-
label: "Actual behavior"
49-
description: "A description of behavior you observed (feel free to include images, gifs, etc.)"
91+
label: "Reproduction"
92+
description: "Steps to reproduce the issue. Suggested steps involve creating an independent config from scratch. If can not reproduce like this, please ask a usage question first."
93+
value: |
94+
1. Create separate 'nvim-repro' config directory:
95+
- '~/.config/nvim-repro/' on Unix
96+
- '~/AppData/Local/nvim-repro/' on Windows
97+
98+
2. Inside 'nvim-repro' directory create a file named 'init.lua'.
99+
Populate it with the following content:
100+
101+
```lua
102+
-- Clone latest 'mini.nvim' (requires Git CLI installed)
103+
vim.cmd('echo "Installing `mini.nvim`" | redraw')
104+
local mini_path = vim.fn.stdpath('data') .. '/site/pack/deps/start/mini.nvim'
105+
local clone_cmd = { 'git', 'clone', '--depth=1', 'https://github.com/echasnovski/mini.nvim', mini_path }
106+
vim.fn.system(clone_cmd)
107+
vim.cmd('echo "`mini.nvim` is installed" | redraw')
108+
109+
-- Make sure 'mini.nvim' is available
110+
vim.cmd('packadd mini.nvim')
111+
require('mini.deps').setup()
112+
113+
-- Add extra setup steps needed to reproduce the behavior
114+
-- Use `MiniDeps.add('user/repo')` to install another plugin from GitHub
115+
```
116+
117+
3. Run `NVIM_APPNAME=nvim-repro nvim` (i.e. execute `nvim` with `NVIM_APPNAME` environment variable set to "nvim-repro").
118+
Wait for all dependencies to install.
119+
120+
4. Replace this with description of interactive reproduction steps along with the behavior you observe.
121+
Feel free to include images/videos/etc, this helps a lot.
122+
123+
Note: after reporting the issue, it is safe (and even recommended for
124+
cleaner future issues) to remove 'nvim-repro' config from the system:
125+
- Delete config directory ('~/.config/nvim-repro' on Unix).
126+
- Delete data directory ('~/.local/share/nvim-repro' on Unix).
127+
- Delete state directory ('~/.local/state/nvim-repro' on Unix).
50128
validations:
51129
required: true

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,5 @@
1-
blank_issues_enabled: true
1+
blank_issues_enabled: false
2+
contact_links:
3+
- name: Question
4+
url: https://github.com/echasnovski/mini.nvim/discussions/new?category=q-a
5+
about: Ask about configuration and usage of 'mini.nvim'

.github/ISSUE_TEMPLATE/feature-request.yml

Lines changed: 51 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,70 @@
11
name: Feature request
2-
description: Describe a feature you want to see
2+
description: Describe a new feature you would like to see
33
labels: [feature-request]
44
body:
55
- type: checkboxes
6+
id: guidelines
67
attributes:
78
label: Contributing guidelines
89
options:
910
- label: I have read [CONTRIBUTING.md](https://github.com/echasnovski/mini.nvim/blob/main/CONTRIBUTING.md)
1011
required: true
1112
- label: I have read [CODE_OF_CONDUCT.md](https://github.com/echasnovski/mini.nvim/blob/main/CODE_OF_CONDUCT.md)
1213
required: true
13-
- type: input
14+
- type: dropdown
15+
id: module
1416
attributes:
1517
label: "Module(s)"
16-
description: "List one or several modules this feature is related to"
18+
description: "Choose one or several modules this feature is related to. Choose 'new' for a new module suggestion."
19+
multiple: true
20+
options:
21+
- mini.ai
22+
- mini.align
23+
- mini.animate
24+
- mini.base16
25+
- mini.basics
26+
- mini.bracketed
27+
- mini.bufremove
28+
- mini.clue
29+
- mini.colors
30+
- mini.comment
31+
- mini.completion
32+
- mini.cursorword
33+
- mini.deps
34+
- mini.diff
35+
- mini.doc
36+
- mini.extra
37+
- mini.files
38+
- mini.fuzzy
39+
- mini.git
40+
- mini.hipatterns
41+
- mini.hues
42+
- mini.icons
43+
- mini.indentscope
44+
- mini.jump
45+
- mini.jump2d
46+
- mini.map
47+
- mini.misc
48+
- mini.move
49+
- mini.notify
50+
- mini.operators
51+
- mini.pairs
52+
- mini.pick
53+
- mini.sessions
54+
- mini.snippets
55+
- mini.splitjoin
56+
- mini.starter
57+
- mini.statusline
58+
- mini.surround
59+
- mini.tabline
60+
- mini.test
61+
- mini.trailspace
62+
- mini.visits
63+
- new
1764
validations:
1865
required: true
1966
- type: textarea
67+
id: description
2068
attributes:
2169
label: "Description"
2270
description: "A concise and justified description of a feature"

CONTRIBUTING.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,9 @@ You can make contributions in the following ways:
66

77
- **Mention it** somehow to help reach broader audience. This helps a lot.
88
- **Create a GitHub issue**. It can be one of the following types:
9-
- **Bug report**. Describe your actions in a reproducible way along with their effect and what you expected should happen. Before making one, please make your best efforts to make sure that it is not an intended behavior (not described in documentation as such).
9+
- **Bug report**. Describe your actions in a reproducible way along with their effect and what you expected should happen. Before making one, please make your best efforts to:
10+
- Make sure that it is not an intended behavior, i.e. not described in documentation as such.
11+
- Make sure that it was not reported before, i.e. there is no bug report already created (no matter open or closed).
1012
- **Feature request**. A concise and justified description of what one or several modules should be able to do. Before making one, please make your best efforts to make sure that it is not a feature that won't get implemented (these should be described in documentation; for example: block comments in 'mini.comment').
1113
- **Create a pull request (PR)**. It can be one of the following types:
1214
- **Code related**. For example, fix a bug or implement a feature. **Before even starting one, please make sure that it is aligned with project vision and goals**. The best way to do so is to receive positive feedback from maintainer on your initiative in one of the GitHub issues (existing or created by you). Please, make sure to regenerate latest help file and that all tests pass (see later sections).

MAINTAINING.md

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,8 @@ Begin the process of stopping official support for outdated Neovim version short
111111
end
112112
```
113113

114-
- Modify CI to not test on Neovim 0.x.
114+
- Modify CI to not test on old Neovim version.
115+
- Update issue template to not include old Neovim version.
115116
- Update README and repo description to indicate new oldest supported Neovim version.
116117
- Wait for a considerable amount of time (at least about a month) *and* a new 'mini.nvim' stable release (so that there is no actual deprecation in the stable release).
117118

@@ -121,6 +122,11 @@ Begin the process of stopping official support for outdated Neovim version short
121122
- Adjust code/comments/documentation that contains any combination of `Neovim{<,<=,=,>=,>}{0.x,0.(x+1)}` (like `Neovim<0.x`, `Neovim>=0.(x+1)`, etc.).
122123
- Add entry "Stop official support of Neovim 0.x." in 'CHANGELOG.md' at the start of current development version block.
123124

125+
## Reacting to new minor Neovim version
126+
127+
- Modify CI to test on new Neovim version.
128+
- Update issue template to mention new Neovim version as released one, make it default choice, and bump Nightly version.
129+
124130
## Adding new config settings
125131

126132
- Add code which uses new setting.
@@ -145,9 +151,13 @@ Begin the process of stopping official support for outdated Neovim version short
145151
- Add Lua source code in 'lua' directory.
146152
- Add tests in 'tests' directory. Use 'tests/dir-xxx' name for module-specific non-test helpers.
147153
- Update 'lua/init.lua' to mention new module: both in initial table of contents and list of modules.
148-
- Update 'scripts/minidoc.lua' to generate separate help file.
149-
- Update 'scripts/dual_sync.sh' to include new module.
150-
- Update 'scripts/dual_release.sh' to include new module.
154+
- Add new module to the following files:
155+
- 'scripts/minidoc.lua' to generate separate help file.
156+
- 'scripts/dual_sync.sh' to include new module.
157+
- 'scripts/dual_release.sh' to include new module.
158+
- '.github/ISSUE_TEMPLATE/bug-report.yml' to be included in a dropdown menu.
159+
- '.github/ISSUE_TEMPLATE/feature-request.yml' to be included in a dropdown menu.
160+
- '.github/DISCUSSION_TEMPLATE/q-a.yml' to be included in a dropdown menu.
151161
- Generate help files.
152162
- Add README to 'readmes' directory. NOTE: comment out mentions of `stable` branch, as it won't work during beta-testing.
153163
- Update main README to mention new module in table of contents.

0 commit comments

Comments
 (0)