Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How to open an Issue or Pull Request #2261

ocornut opened this issue Jan 2, 2019 · 0 comments

How to open an Issue or Pull Request #2261

ocornut opened this issue Jan 2, 2019 · 0 comments


Copy link

@ocornut ocornut commented Jan 2, 2019


You may use the Issue Tracker to submit bug reports, feature requests or suggestions. You may ask for help or advice as well. However, please carefully read this wall of text before doing so.


Please do your best to clarify your request. The amount of incomplete or ambiguous requests due to people not following those guidelines is often overwhelming. Issues created without the requested information may be closed prematurely. Exceptionally entitled or lazy requests may lead to bans.

Thank you!

(PS: Please open a separate thread to discuss the contents of this specific post.)

How to open an Issue

Prerequisites for new users of dear imgui

  • Please read the FAQ.
  • Please read docs/FONTS.txt if your question relates to fonts or text.
  • Please read one of the examples/ application if your question relates to setting up dear imgui.
  • Please run ImGui::ShowDemoWindow() to explore the demo and its sources.
  • Please use the search function of GitHub to look for similar issues. You may browse issues by Labels.
  • Please use a web search engine to look for similar issues.
  • Please use the search function of your IDE to search in for comments related to your situation.
  • Please browse the Wiki to find code snippets, links and other resources.
  • If you get a assert, use a debugger to locate the line triggering it and read the comments around the assert.

If you have an issue compiling/linking/running/displaying/adding fonts

Guidelines to report an issue or ask a question

  • PLEASE DO FILL THE REQUESTED NEW ISSUE TEMPLATE. Including dear imgui version number, branch name, platform/renderer back-ends (imgui_impl_XXX files), operating system.
  • Please state if you have made substantial modifications to your copy of imgui or the back-end.
  • If you are not calling dear imgui directly from C++, please provide information about your Language and the wrapper/binding you are using.
  • Try to be explicit with your Goals, your Expectations and what you have Tried. What you have in mind or in your code is not obvious to other people. People frequently discuss problems and suggest incorrect solutions without first clarifying their goal. When requesting a new feature, please describe the usage context (how you intend to use it, why you need it, etc..). If you tried something and it failed, show us what you tried.
  • Attach screenshots (or gif/video) to clarify the context. They often convey useful information that are omitted by the description. You can drag pictures/files in the message edit box. Avoid using 3rd party image hosting services, prefer the long term longevity of GitHub attachments (you can drag pictures into your post). On Windows you can use ScreenToGif to easily capture .gif files.
  • If you are discussing an assert or a crash, please provide a debugger callstack. Never state "it crashes" without additional information. If you don't know how to use a debugger and retrieve a callstack, learning about it will be useful.
  • Please make sure that your project have asserts enabled. Calls to IM_ASSERT() are scattered in the code to help catch common issues. When an assert is triggered read the comments around it. By default IM_ASSERT() calls the standard assert() function. To verify that your asserts are enabled, add the line IM_ASSERT(false); in your main() function. Your application should display an error message and abort. If your application doesn't report an error, your asserts are disabled. Please make sure they are enabled.
  • Please provide a Minimal, Complete and Verifiable Example (MCVE) to demonstrate your problem. An ideal submission includes a small piece of code that anyone can paste in one of the examples/ application (e.g. in main.cpp or imgui_demo.cpp) to understand and reproduce it. Narrowing your problem to its shortest and purest form is the easiest way to understand it. Please test your shortened code to ensure it actually exhibit the problem. Often while creating the MCVE you will end up solving the problem! Many questions that are missing a standalone verifiable example are missing the actual cause of their issue in the description, which ends up wasting everyone's time.
  • Be mindful that messages are being sent to the mailbox of "Watching" users. Try to proof-read your messages before sending them. Edits are not seen by those users, unless they browse the site.

Some unfortunate words of warning

  • If you are involved in cheating schemes (e.g. DLL injection) for competitive online multi-player games, please don't try posting here. We won't answer and you will be blocked. We've had too many of you.
  • Due to frequent abuse of this service from aforementioned users, if your GitHub account is anonymous and was created five minutes ago please understand that your post will receive more scrutiny and incomplete questions will be harshly dismissed.

If you have been using dear imgui for a while or have been using C/C++ for several years or have demonstrated good behavior here, it is ok to not fullfill every item to the letter. Those are guidelines and experienced users or members of the community will know which information are useful in a given context.

How to create a Pull Request

  • Please understand that by submitting a PR you are also submitting a request for the maintainer to review your code and then take over its maintenance. PR should be crafted both in the interest in the end-users and also to ease the maintainer into understanding and accepting it.
  • Many PR are useful to demonstrate a need and a possible solution but aren't adequate for merging (causing other issues, not seeing other aspects of the big picture, etc.). In doubt, don't hesitate to push a PR because that is always the first step toward finding the mergeable solution! Even if a PR stays unmerged for a long time, its presence can be useful for other users and helps toward finding a general solution.
  • When adding a feature, please describe the usage context (how you intend to use it, why you need it, etc.).
  • When fixing a warning or compilation problem, please post the compiler log and specify the compiler version and platform you are using.
  • Attach screenshots (or gif/video) to clarify the context and demonstrate the feature at a glance. You can drag pictures/files in the message edit box. Prefer the long term longevity of GitHub attachments over 3rd party hosting (you can drag pictures into your post).
  • Make sure your code follows the coding style already used in the codebase: 4 spaces identations (no tabs), local_variable, FunctionName(), MemberName, // Text Comment, //CodeComment();, C-style casts, etc.. We don't use modern C++ idioms and can compile without C++11. The applications under examples/ are generally less consistent because they sometimes try to mimic the coding style often adopted by a certain ecosystem (e.g. DirectX-related code tend to use the style of their sample).
  • Make sure you create a branch dedicated to the pull request. In Git, 1 PR is associated to 1 branch. If you keep pushing to the same branch after you submitted the PR, your new commits will appear in the PR (we can still cherry-pick individual commits).

Thank you for reading!

Repository owner locked and limited conversation to collaborators Jan 2, 2019
@ocornut ocornut pinned this issue Jan 2, 2019
@ocornut ocornut added the news/info label Jan 6, 2019
@ocornut ocornut added the doc label Dec 17, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
None yet
1 participant
You can’t perform that action at this time.