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

Upgrading dear imgui version beyond 1.82 #376

Open
tycode opened this issue May 18, 2024 · 6 comments
Open

Upgrading dear imgui version beyond 1.82 #376

tycode opened this issue May 18, 2024 · 6 comments

Comments

@tycode
Copy link

tycode commented May 18, 2024

ATOW dear imgui is now on v1.90.6 and appears to have had a lot of development.

The latest release of pyimgui was from just over a year ago and this repo doesn't seem very active in comparison.

One key piece of functionality I was looking for is BeginDisabled/EndDisabled, added in v1.84.

I'd like to help out if I can. At least upgrading to v1.84 if not further. I've had a glance at HACKING.md which states

Since the process is very time-consuming, please refrain from taking the initiative of upgrading DearImGui before asking via an issue. We may have specific plans that you are not informed of.

So here I am.

Is there any further documentation I should be aware of, or am I on my own here?

It would also be useful to know who is managing releases these days, or if there are any communication channels for this project other than GitHub.

@KinoxKlark it looks like you have been working on upgrading up to v1.87 over here a while ago, does this stand any chance of revival?

@KinoxKlark
Copy link
Member

Hi there, thanks for reaching out.

First of all, I have to apologize for not being present past months to manage PR and issues. I do not have the time anymore to keep up with this project and I don't really know when it will be possible for me to continue working on this.

I am obviously not against the idea of updating to a newer version of DearImgui, but I won’t be able to manage it, review PR, and so on. However, and I am thinking about it for a while, pyimgui is an organization repository. Which means that I can add people to the organization to take over and build upon what is already present. I can’t ask for one person to take over everything, but maybe we can find a crew of motivated people willing to help.

If you want to tackle the project of updating pyimgui, feel free to go for it, and I’ll try to help you as much as I can.

Be aware that it is not a light task. We already had PR of “update” that where just about updating the sub repository. However, in order to be done correctly, each new function from DearImgui API should be mapped in our header. Obsoleted functions should be marked as such. Removed functions should be dealt with by asking ourselves how to keep the functionality since we probably don’t change the major version number. All flags should be remapped correctly and manually. Documentation should be changed. And there is a bunch of places where the version number should be changed. Moreover, there is also a few functions from internals that are exposed and that have to be managed (but it is not as important as the normal API).

The best way I found to tackle the challenge is to go incrementally, meaning doing the update for one version of DearImgui at the time from the current mapped one to the most recent version. It is time consuming, but it allows to efficiently use diff tools on headers file to find which functions have changed and how. And it allows to address each point of each release, documenting every change for our version release note.

I think that updating the internal version of DearImgui would be a very good thing and we should definitively go in that direction. It could add some momentum again to the project. But if we want to go in that direction, we need to find motivated contributors to take over as I can’t guarantee to be available to deal with everything anymore. And I don’t want anyone to put as much effort in something if I can’t guarantee to be helpful and proceed with build and version release and issue management.

@learn-more , have you any thoughts on that matter? (If you are still around here ^^)

@KinoxKlark KinoxKlark pinned this issue May 19, 2024
@tycode
Copy link
Author

tycode commented May 19, 2024

Thanks for the reply!

As I am new to pyimgui myself, I will wait a little longer to see if any existing contributors or more experienced users also wish to work on this - it would be silly for me to embark on this project myself if me creating this issue spurs on someone already acquainted with it :) But I am happy to have a look further into this if no one else has the time.

in order to be done correctly, each new function from DearImgui API should be mapped in our header. [...]
The best way I found to tackle the challenge is to go incrementally [...]

I agree with these entire two paragraphs. A job worth doing is worth doing well :) This was already somewhat outlined in HACKING.md so I was already expecting to use this kind of workflow.

If I do take this on I would like to fully document the process as well, this would make it much easier for someone else to pick up and do another upgrade in future. (Which is one reason why I asked if there was any further existing documentation!)

pyimgui is an organization repository. Which means that I can add people to the organization to take over and build upon what is already present. I can’t ask for one person to take over everything, but maybe we can find a crew of motivated people willing to help.

we need to find motivated contributors to take over as I can’t guarantee to be available to deal with everything anymore.

The org seems to only have one person in it - @swistakm (unless hidden org memberships are a thing?). That's one of the first places I looked to see who might be working on the project. If there are active contributors maybe they should be org members?

@KinoxKlark
Copy link
Member

Let me know if you decide to start working on this. If several people want to help, I can try to create a branch for it on which you can push things or a project to coordinate everything (I am not that familiar with all github functionalities so I will have to look into that).

The org seems to only have one person in it - @swistakm (unless hidden org memberships are a thing?). That's one of the first places I looked to see who might be working on the project. If there are active contributors maybe they should be org members?

Indeed, hidden org member is a thing, I changed my status to public instead of private (Did not knew about it either ^^). swistakm was the original owner of this repository but he couldn't continue. I took over some time ago and now it is my turn to not being able to keep up. Yes, I do agree, if we form a group of active contributors to take over the project, they should be org members.

@learn-more
Copy link
Collaborator

learn-more commented May 22, 2024

There are multiple python bindings that are auto-generated, it would make sense to either incorporate something like that, or move to that:

https://github.com/cammm/deargui
https://github.com/pthom/imgui_bundle

And there is the metadata repo:
https://github.com/dearimgui/dear_bindings

@tycode
Copy link
Author

tycode commented May 23, 2024

Thanks @learn-more. I will check those out!

If one of those works for all use cases that pyimgui was intended for, but don't take any effort to keep updated, it would probably make sense to archive this repository and point people over there. I think I mainly ended up here since pyimgui is on PyPI.

@tycode
Copy link
Author

tycode commented May 23, 2024

I've migrated my project to use https://github.com/pthom/imgui_bundle, so I now have dear imgui 1.90.

So I won't be looking at updating pyimgui after all. Hopefully others will be able to migrate too!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants