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

Upgrade/v1.82 #192

Merged
merged 116 commits into from
Aug 27, 2021
Merged

Upgrade/v1.82 #192

merged 116 commits into from
Aug 27, 2021

Conversation

KinoxKlark
Copy link
Member

I started to upgrade imgui from v1.65 to v1.79

  • Removed implemented functions that are not part of ImGui anymore (DisplayVisibleMin, DisplayVisibleMax)
  • Raname ConfigResizeWindowsFromEdges to ConfigWindowsResizeFromEdges
  • Marked obsolete functions as such
  • Cross checked both API and added references to unimplemented functions from the new version
    • I also reordered function and added comments such that it resembles imgui.h as possible in order to facilitate upgrades from here
  • Updated all enums

It is not finished yet, there is a lot of new unimplemented functions, but it should pass tests and be usable with the new ImGui code. I quickly tested the imgui.show_test_window(), and new features seem to work fine. I am willing to put some time into mapping functions to complete the upgrade. Feedback would be great :)

@swistakm
Copy link
Member

OH MY GOD. That's huge! And great!

How did you manage to do all of that? Last time I was attempting the update I have realized how many flags there are and how often they change I had to create some custom tooling to automate that stuff.

@swistakm
Copy link
Member

I'm totally loaded with work at the moment but I quit my current job next week so finally will have more time to do all the reviews, merges and releases. Anyway, don't stress about missing functions. We never had 100% feature parity (imgui has HUGE API). Just tell me when you're ready and we merge it. Later we can do incremental updates.

@coveralls
Copy link

coveralls commented Dec 14, 2020

Coverage Status

Coverage increased (+2.7%) to 58.643% when pulling 3b1c177 on KinoxKlark:upgrade/v1.79 into 480b4de on swistakm:master.

@KinoxKlark
Copy link
Member Author

OH MY GOD. That's huge! And great!

How did you manage to do all of that? Last time I was attempting the update I have realized how many flags there are and how often they change I had to create some custom tooling to automate that stuff.

I saw your scripts but was not really sure of how to use them properly. I initially wanted to code my own and even started to list all features that such a script should have to compare versions and propose updates, but I figured out that I needed to go manually through the entire process once before being able to automatize it. Maybe I should regroup my notes and take the time to understand your scripts to plan the development of a generic tool that we could use after each update of ImGui. A semi-automated process that checks changes between ImGui versions and proposes the modifications to do would be of great help for future upgrades.

@swistakm
Copy link
Member

@KinoxKlark BTW sorry for cancelling your builds on travis. I'm working on a new Appveyor pipeline for macOS builds because the old one on travis became unmanageable. Appveyor isn't perfect but simply works better and faster. Maybe will migrate the manylinux1 build to Appveyor too. When I get it done I'll ask you to rebase on master. OK?

@pvallet
Copy link

pvallet commented Jun 15, 2021

Hello! I have great interest in this PR, notably for what @hinxx is working on (I'd love to have implot bindings). Do we have any updates on what's next? Are you all just waiting for @swistakm to give access to the repository to be able to merge that PR upstream, or does the PR still require some work?

@KinoxKlark
Copy link
Member Author

Hello, glad to hear about your interest in this PR ! Unfortunately, I have been loaded with work for the end of the semester at my university, I had to do a pause to focus on other projects and I won't be able to continue this until next month. As for now, this PR is functioning but requires more testing to be used as a release. Many minor functionalities can be added (e.g. mapping of functions), but pyimgui have never been fully mapped thus what has already be done could be enough for now. As you mentioned @hinxx was working on an external binding of implot, to this respect we discussed how to share the cpp imgui lib to external modules here: KinoxKlark#2 . I think this is temporarily in pause too but definitely a cool project ^^

For the next, we are waiting on @swistakm to be able to move forward, although there is no clear plan of what to do. There is also a new release of imgui (v1.83) with new functionalities to map but I don't know if we should do it here or start a new PR.

@hinxx
Copy link
Contributor

hinxx commented Jun 16, 2021

I'm pretty much in the same situation with regards to lack of time in the coming weeks.

I still do have interested in going forward with pyimplot and have something that could be tested and evaluated right now but needs a bit of coordination to make us all comfortable in using it.

I see myself devoting more time to this after summer vacation is over.

@TTimo
Copy link
Contributor

TTimo commented Jun 16, 2021

fwiw we're using the branch in a small internal app, and haven't had any problems with it

@KinoxKlark KinoxKlark mentioned this pull request Jul 11, 2021
@KinoxKlark
Copy link
Member Author

Hello, I will finally have more time to invest in this project!

I am not really sure about how we should continue here. In the absence of @swistakm I don't think there is much we can do concerning the official release. For now, I think the best we can do is to make this pr as robust as possible so that people interested in a stable branch with more up-to-date imgui functionalities could use it by manual installation.

I will need little time to go on stuff that I have missed the last few months. I would appreciate some insight about the following matters and how we should deal with them:

  • Should we merge here fixes from other pr ? (e.g. Keep references to logfile/inifile #232)
  • A new release of dear imgui is here, 1.83, what should we do about that? As it was mentioned earlier, it may be not a good idea to indefinitely chasse dear imgui releases. Maybe we should settle to 1.82 and stabilize pyimgui enough. Should we create another branch (and another pr?) for the implementation of new stuff and upgrade to the latest dear imgui?
  • @hinxx and I were discussing potential changes on the distribution of the cpp dearimgui with pyimgui such that it would be possible for an external module to share a unique implementation of dearimgui making it possible to create extensions (like implot). I did not wrap my head around it for a long time, where were we on that matter and how should we consider it here (if we should)?
  • I did not have time yet to investigate it deeply but it seems to be an interest for new functionalities like in Add support for panda3d backend #233, or questions about the core functioning of pyimgui like in Why did we choose to make Vec2 and Vec4 namedtuples? #234 (from way before I came around here ^^). What should we do about that?

I may have forgotten some important stuff, feel free to add to that list.

My hope is that we would be able to maintain from this pr a good enough version to be used by anyone who needs it. And maybe one-day @swistakm would manage to merge it and drop a stable release quickly.

Thank's in advance, looking forward to your advice!

@pvallet
Copy link

pvallet commented Jul 13, 2021

To me it feels like in order to keep this project alive and healthy we really need an official place to have it. Incremental changes to a PR, or several pending PRs adding all new functionality is not a good base for welcoming new members of a community or maintaining a stable code base.

Obviously what would be optimal is to have @swistakm back to help maintaining the project or to give admin rights to the ones that are the most involved in maintaining that project already. (I guess @KinoxKlark and @hinxx ? Not sure who I'm missing) This way everything could be stabilized properly, merged to master and then we could fix CI issues and publish to PyPI. It would also allow merging further fixes easily, maintain the documentation and so on

In the meantime, I guess what could be best is doing the same in a fork, like maybe yours @KinoxKlark?

@Froyok
Copy link

Froyok commented Jul 14, 2021

I have been working on my own projects with this PR for a while now and I can vouch for it as well. I made UI focused app and other with OpenGL render interactions via SDL and didn't get into any troubles.

Only issue I found so far it is a little keyboard input issue. :)
(The shortcut CTRL+A -select all- in text input fields doesn't work. Other shortcut such as CTRL+Arrows -word jump-, Shift+Key -uppercase- or SHIFT+Arrows -character selection- work fine.)

@swistakm
Copy link
Member

Hey all! I really apologize for not being responsive in this project. I hoped that once I will finish my book I will have some time, but it turns out I will probably be eternally busy and unable to properly support such projects. The least I can do is to handverthe project to someone (or group of people). I may be able to support project with other resource but probably won't have time for active development anymore.

I know that we had this conversation before and we didn't decide on anything but now I think it is the only solution.

Probably that's simply not a thing that can be easily discussed asynchronously via GitHub issues. Best if we could meet online (e.g. via Zoom) and discuss this live.

@KinoxKlark, @TTimo, @hinxx: I was thinking mostly about three of you but anyone who want's to actively participate and has some spare time is free to join. If you are interested please drop me an email (address is in my Github). If you give me your time availability ( in UTC) I will setup a call where we can finally meet and discuss how to move forward. Best if we could meet over weekend because next week I leave my country for a couple of days.

@learn-more
Copy link
Collaborator

Might I suggest to transfer the repo to an organization, where multiple people can join in on the fun?

or if you want to keep the repo under your name, make a few people able to add / remove participants on this repo.

@swistakm
Copy link
Member

@learn-more organization of course

@KinoxKlark
Copy link
Member Author

Thanks all for your answers!

Nice to hear from you @swistakm. I'll drop you a mail to organize a meeting, it seems more appropriate indeed. I accept to take more responsibilities if it is needed to move forward. I agree with @learn-more, I think we need to make sure multiple people have access and can manage the project in the case where one of us can't be present.

@Froyok, thank you a lot for your feedback. I'll check on that issue as soon as possible ;)

@KinoxKlark
Copy link
Member Author

Hey everyone,

You may have noticed that the project is now an organization one. Moreover, I now have admin right to the repo (and organization) thanks to @swistakm. I opened a discussion about the future and management of the project here: #237. I hope to gather your opinions there. We will be able to move forward with the project and prepare future releases!

There are still details to manage about the succession (like PyPi access for distribution). Those will be dealt with as we go along.

I will take some vacation in the coming week so I won't be always present for the development. I will still try to come regularly for the discussion. Feel free to comments in #237 and gives any insights/advice. Thanks in advance!

@KinoxKlark KinoxKlark changed the base branch from master to dev/version-2.0 August 27, 2021 08:23
@KinoxKlark KinoxKlark merged commit b6ae8d4 into pyimgui:dev/version-2.0 Aug 27, 2021
@KinoxKlark
Copy link
Member Author

Finally! I have merged this PR to a dev branch in order to prepare the next major release. (https://github.com/pyimgui/pyimgui/tree/dev/version-2.0)

I will keep my fork and this branch for a time for those who use it in their project.

@KinoxKlark KinoxKlark added the release pending Merged but still needs official release label Aug 27, 2021
@KinoxKlark KinoxKlark removed the release pending Merged but still needs official release label Oct 31, 2021
@KinoxKlark KinoxKlark mentioned this pull request Nov 1, 2021
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

Successfully merging this pull request may close these issues.

None yet