In reality the best solution is to mix all available tools in a way where individual interactions always have a specific place to be addressed effectively. For example, I encourage people to introduce issues in the discord. If it is fixable with the given context and I am available, I will fix it there and then + publish a new version of the package/patches within minutes. This way others don't even have the time to experience the problem in the first place.
If the problem seems more complex, I direct them to fill in an extensive issue template.
On boot of the library, I also log a link to an issue template with most of the context filled in.
If the issue has a few bits of information missing & there seems to be miscommunication, I direct them to message me on the discord.
Most projects are maintained by a single person, so the communication landscape of the project should be optimised for that person and how they deem effective to communicate. It's not for users/passers-by/etc.
If the problem seems more complex, I direct them to fill in an extensive issue template.
On boot of the library, I also log a link to an issue template with most of the context filled in.
If the issue has a few bits of information missing & there seems to be miscommunication, I direct them to message me on the discord.
Most projects are maintained by a single person, so the communication landscape of the project should be optimised for that person and how they deem effective to communicate. It's not for users/passers-by/etc.