Maintaining a number of open source projects comes with a number of issues. Reporting a good issue will result in a more engaged approach from project maintainers. Don't forget: there's a human behind every project.

If the issue can be proven, prove it. Submit a failing test or concrete steps to reproduce it.

A good issue has a single responsibility

An issue describes a single problem or feature. If an issue touches multiple topics, it should be split.

A good issue is well formatted

Use code blocks for code. Check indentation for pasted code. Check for syntax errors. When unsure, use a code linter or fixer before reporting. The easier it is for the maintainer to read code, the easier it is for them to understand it.

A good issue is polite

Stay polite in all circumstances. There's no accountability in free open source software. Respectful communication is paramount.

When reporting an issue, it's not uncommon for you to be in a difficult position. Don't hurl that frustration towards the project maintainer.

A good issue creates a human connection

Without a person behind an issue, it's hard for the maintainer to feel empathy. Simply saying “Hello”, or “I would appreciate some help on this matter” creates a human connection.