Skip to content

Reporting issues guide

Jonathan Allard edited this page Dec 15, 2016 · 11 revisions

Welcome to the Selectize bug tracker. Thank you for taking the time to make Selectize a better library!

First off, let's make sure your issue report belongs here.

1 · Search for if your issue has already been submitted

Is your issue already in the tracker? Search for the keywords of your issue. If you have an error message, try that. Remove the is:open flag to see if your issue has already been resolved. If you find your issue, awesome! Give it a +1 vote at the top, and see what can be done to close it. It's okay if you can't find the issue and it turns out there's a duplicate with other keywords, but please do make an effort first.

2 · Make sure you're reporting something precise that needs to be fixed

Does this concern something of Selectize that should be fixed? (Fixing documentation or meta counts, please just make it clear) As much as they'd like to help, maintainers don't have the time to answer questions like "does this work?" and "how do I do this?". If you're wondering whether something works, go ahead and try it. If nothing should be fixed or enhanced, but you're not sure how to do something, maybe a better place to ask would be StackOverflow.

Great! Now that we're ready to file our issue, we're going to need a few more things.

3 · Give your issue a descriptive and concise title

Make it so it's easy for people to look at the title in the issue list and have an idea what it's about. Great title often begin with a verb and say what needs to be done.

Great examples include:

  • Preserve custom HTML data attributes
  • Allow duplicate values in input
  • Make possible to disable the autocomplete dropdown

Not so great examples:

  • Problem with event
  • Reset
  • Selectize js single select search is not easily understandable ?

Awesome. Now, let's describe your issue. In short, you need to describe your issue so that someone else will get a good understanding of the problem without spending a lot of time or make great effort to get into your context. Here's how.

4 · Create a minimal working example

At some point, someone else is needs to try what you're doing and see the same issue. (we call that reproduction) If the problem can be demonstrated on the official Selectize docs, give us the URL to it. Otherwise, make a JsFiddle/Codepen demonstrating the issue.

An issue obligatorily needs either a Selectize docs URL and heading, or a JsFiddle/Codepen demonstrating the issue (unless it is exceedingly trivial).

Emphasis on the minimal. Try to make it as simple as possible, and remove as much settings and functions while still keeping the issue demonstrated. Read the Stackoverflow write-up on how to best create your minimal example. As a bonus, it will also help narrow down the cause of your bug!

5 · Indicate the steps to reproduce and result

For more help on doing this, see our guide: How to make a great reproduction case

Using your example, write the minimal steps that someone needs to take to trigger your bug. Write it in steps in a numbered list, the actual result, and the expected result. (If you prefer it, you can also use the Given-When-Then syntax) Your steps to reproduce must imperatively be in the numbered format or in the Given-when-then fromat.

Example:

STR

  1. Visit http://selectize.github.io/selectize.js/
  2. Copy "let's make a bug report" into clipboard
  3. In section "Tagging", click on Selectize input
  4. Right-click and select "Paste"
  5. Press Down-arrow

Result: "let's" gets added to the input

Expected: Dropdown opens

6 · Use proper formatting, especially for code

Remember to use the Markdown syntax to highlight things such as your code.

Great job! You now have a great bug report in your hands. Once in a while, review this guide, it's going to be updated.

7 · Help it be solved by finding the cause and proposing fixes

Now your bug is submitted, unless many people experience it, nobody will be susceptible to work on it just like that. Help it be solved by advancing it through the stages of an issue.

  1. Issue is reported
  2. Someone else confirms the bug can be reproduced
  3. Find the cause of the bug in the code
  4. Propose alternative code/design to fix the code
  5. Make pull request with tests fixing the bug
  6. Review pull request
  7. Merge pull request