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

Release 4.2.2 #2553

Closed
swt2c opened this issue May 24, 2024 · 44 comments
Closed

Release 4.2.2 #2553

swt2c opened this issue May 24, 2024 · 44 comments
Assignees

Comments

@swt2c
Copy link
Collaborator

swt2c commented May 24, 2024

It has been a long time since the last release and there have been a number of important fixes made in git (such as crashes on exit with Python 3.12). A new wxPython release should be made.

@nai-kon
Copy link

nai-kon commented May 26, 2024

It would be great if Windows dark mode will be supported on the new version.

#2413

@ckhan
Copy link

ckhan commented May 28, 2024

I think the pressure for a new release would be much less if snapshot builds were working for Linux and Windows.
#2530

@DietmarSchwertberger
Copy link
Contributor

@swt2c : I think we need the tweaker tools modifications of PR 2515 to make that actually work.
see comment #2515 (comment)

@swt2c
Copy link
Collaborator Author

swt2c commented May 28, 2024

@swt2c : I think we need the tweaker tools modifications of PR 2515 to make that actually work. see comment #2515 (comment)

Yes, but we need to figure out how to make those changes compatible with all platforms (ie, they won't compile as-is on GTK).

@hasii2011
Copy link

Waiting with bated breath

@RobinD42
Copy link
Member

This issue has been mentioned on Discuss wxPython. There might be relevant details there:

https://discuss.wxpython.org/t/building-wxpython-for-mint/37009/2

@orffen
Copy link

orffen commented Aug 4, 2024

This issue has been mentioned on Discuss wxPython. There might be relevant details there:

https://discuss.wxpython.org/t/building-wxpython-for-mint/37009/2

A user has released their own fork of wxPython because an official release still hasn't been made. Is there something holding up a new release?

@newville
Copy link
Contributor

newville commented Aug 5, 2024

Yes, please release 4.2.2 and push to PyPI.
Ideally, this would be a version that works with Numpy 2 (say, merging #2580) and works well with Python 3.12.

Many small PRs could be merged, but have lingered for a long time. I gave up on a small PR (#2432) about a year ago. I might have been willing to be more involved, but the response I got was truly discouraging.

Please add more maintainers and please enable multiple people to be able to push to PyPI.
Please do not ignore contributions from people trying to help.
Please demonstrate that this project is active.
Please release versions of wxPython more frequently than yearly.

Thanks.

@newville
Copy link
Contributor

newville commented Aug 16, 2024

Would it be possible to get a status report on this project? Maybe an expected timeline for an expected release of 4.2.2?
The most recent release is well over a year old. This Issue is close to 3 months old.

There are a large number of fixed-but-unreleased merges over the past year, and several PRs that might be mergeable but have not really been acknowledged. There have been no merges in more than a month. This project appears to have been abandoned.

Meanwhile, the releases kindly made and pushed to https://pypi.org/project/wxPythonMeticy/ over the past couple of months are more up-to-date, but are not official, I think. That's kind of confusing.

Has development moved to wxPythonMeticy or somewhere else? If not, does anyone know what is going on?

@reticulatus
Copy link
Contributor

To add to the confusion I noticed in the newly released Linux Mint 22 I could install the python3-wxgtk4.0 package from the upstream Ubuntu 24.04.

Although the package claims to be wxPython 4.2.1, wx.version() returns 'wxPython 4.2.1 gtk3 (phoenix) wxWidgets 3.2.4' whereas in official wxPython releases it returns '4.2.1 gtk3 (phoenix) wxWidgets 3.2.2.1'.

It is thus possible that because the Mint22/Ubuntu24.04 package is built on a later version of wxWidgets, it could include behaviour that is not described in the official wxPython 4.2.1 documentation.

I assume the upstream developers created the package due to the lack of an official release of wxPython that is compatible with Python 12.

@hasii2011
Copy link

I would like a comment on the "official" release also.

@RobinD42
Copy link
Member

This issue has been mentioned on Discuss wxPython. There might be relevant details there:

https://discuss.wxpython.org/t/incompatible-with-python-3-12/36774/5

@swt2c
Copy link
Collaborator Author

swt2c commented Aug 20, 2024

Although the package claims to be wxPython 4.2.1, wx.version() returns 'wxPython 4.2.1 gtk3 (phoenix) wxWidgets 3.2.4' whereas in official wxPython releases it returns '4.2.1 gtk3 (phoenix) wxWidgets 3.2.2.1'.

@reticulatus yes, that is because the Debian wxPython package is built using the Debian wxWidgets package, not the copy of wxWidgets bundled with wxPython. So, yes the behavior could be slightly different than the 4.2.1 release, although hopefully better (bugs fixed) for the most part. The wxWidgets interface files from the wxPython package are used so the wxPython API should be that of 4.2.1.

@newville
Copy link
Contributor

@swt2c Can you give any information about a possible release?

This is feeling not so much like a "mature project that needs a little maintenance now and then". If feels much more like "completely abandoned project".

If updates are not happening and Issues and PR are not being looked at, it is time to add more maintainers or moving to a fork. This is not a new problem for wxPython: it has been this way for several years now. This Issue being 3 months old illustrates the problem.

This project needs active maintainers and developers who can merge pull requests, address Issues, tag releases, and push to PyPI. Multiple people with this ability would be preferred. It is unreasonable for a project like this (large, closely tied to upstream wxWidgets binary packages and downstream Python and display binary packages) to go more than a year between updates.

This project needs more regular and active development and maintenance. Developers and maintainers cannot be absent for months at a time. That could happen here or at a different repository. It is always better for forks to be friendly and have a transition, but if the developers and maintainers are absent and either unable or unwilling to participate, forks do not have to be friendly.

Please give a status report and an estimate for a release. Otherwise, it is time to move development somewhere else.

@swt2c
Copy link
Collaborator Author

swt2c commented Aug 21, 2024

@swt2c Can you give any information about a possible release?

Unfortunately, only @RobinD42 can make releases to PyPI. I have tried contacting Robin offline but have not gotten any response. I'll try again.

@sveinse
Copy link

sveinse commented Aug 23, 2024

Based on @newville comment I'd say it ought to be a bigger priority to distribute the ability to make releases by several people than actually making the release itself. A bus-factor of 0 is risky and not sustainable.

@newville
Copy link
Contributor

@sveinse @swt2c The evidence suggests that the bus has, in fact, hit. Possibly a long time ago.

I will tag @vadz, @vslavik, and @tierra here as they appear to be some of the most active and prominent people in the wxWidgets GitHub organization. I do not know how important wxPython is to them.

We are all very appreciative of the contributions from @RobinD42 over many years. But his work here has also been sporadic and low for the past several years. He has been completely absent from this repo for almost a year (a118428). His last posting to the https://discuss.wxpython.org/ (which he set up) was also nearly a year ago: Sept 6, 2023.

We need to move on. I suspect that a fork is needed. I am definitely not a wxWidgets expert, but I am willing to try to help. And I am open for discussion and suggestions about how to proceed. Waiting for a response from @RobinD42 is not an option.

It is always unfortunate to have to fork a project without the original author's consent or help. It is much easier and much better if the original author or maintainers add developers or maintainers in the project in place. If that does not happen, having the original authors help migrate a project to a new home, and even participate in development, is helpful. None of these things have happened here. I wish @RobinD42 well and all the best, and am very grateful for all the amazing work done. If @RobinD42 does come back, that would be great, but he cannot be trusted to be sole maintainer of this project.

@tierra
Copy link
Member

tierra commented Aug 27, 2024

Some patience please @newville. I see that Robin did reply to this issue twice, including just 11 days ago.

@RobinD42 There is at least a good point here that it would be a good idea to have @swt2c and maybe myself (I just setup a PyPI account under "tierra") and/or @vadz setup as at least maintainers on PyPI for the package, even if it's just as backup, assuming you are planning to eventually cut a new release sometime soon.

@swt2c
Copy link
Collaborator Author

swt2c commented Aug 27, 2024

Some patience please @newville. I see that Robin did reply to this issue twice, including just 11 days ago.

@tierra, that reply is from Robin's bot that auto-replies when there is a post on Discourse, not a real Robin response.

@paul-ollis
Copy link

I was about to post a comment, but upon checking here first, found that
@newville had largely nailed what I planned to say. What follows is an edited
version in light of @newville's comment.

I appreciate that I may appear to be butting in here since I am not a
contributor - just a user. It is mainly happenstance that leads me to interfere

  • I have recently started a wxPython project (my first in a number of years)
    and I tripped over the Python 3.12 issue as a result. I have done some poking
    around and reached the following conclusions.

  • Robin's GitHub and online activity has 'fallen off a cliff' over the last
    year or so. I am sure this is for good reasons and, whatever they are, I send
    Robin my best wishes.

  • wxPython is too important to rely so much on a single person. I have no doubt
    that Robin would not disagree with this view.

The GitHib statistics show just how central and fundamental Robin has been to
to wxPython over the years. We all owe him a great debt of gratitude. Whatever
his reason for the recent absence, I am sure a speak for all when I wish him
well in the meantime.

However, as @newville points out, a way forward is urgently needed. And this
does, ultimately, mean a fork. Creating a fork without the maintainer's consent
sounds brutal, but this is clearly not what @newville is proposing. I would
characterise it more as a "lifeline" for the project until one of:

  • Robin is able to become active again.
  • We have to conclude Robin is no longer able to contribute.

Again, I have no doubt that Robin would not disagree.

My personal wxPython project is coming to an end. I would be happy to apply the
freed up time to (and have the skills to) contribute to a community effort to
help keep wxPython alive.

Obviously, there is much work required to progress @newville's suggestion.

  • Volunteers to become a part of a core developer team. (Happy to be one in the
    longer term).

  • A (hopefully interim) project name. My "bike shedding" contribution is
    "PhoenixUI".

  • Efforts to build a well defined wxPython community - required whatever
    happens in the future.

  • Much discussion.

@RobinD42. Whatever has or will happen, once again, I wish you the very best.

@RobinD42
Copy link
Member

Hi all,

Sorry for the long silence. I've been dealing with some age-related decline and although it is mild so far, once I get to the end of a usually gruelling work day it feels like much more and I don't have much motivation to do even more coding and other tech work. There are some other things taking my free time these days as well. I do miss wxPython and the community, it's just hard to put in the time to keep it moving myself.

I have been thinking about this for a while and so the direct contacts I received today about this thread are timely. I'd rather avoid a fork but I would be happy to open up the project to others who can take on things that have only been done by me in the past.

Probably the biggest thing needed to begin transitioning the project would be to get rid of the ancient kludgy build scripts running on my buildbot farm. Keeping the builders up to date and up and running can be a pain. A long while back I started working on some GitHub Workflows (#2411) not just for CI but also with the intent to use it for release builds as well. If somebody wants to continue that work, or come up with something even better, please do.

I've added tierra and swt2c to the PyPI project. It looks like there isn't a vadz account there yet. If there is anybody else that wants to be involved please work through @swt2c, and I'll grant permissions or whatever is needed to help build up the team. @swt2c please let me know if there is anything else you need.

I hope that I'll be able to come back and be active on the project again someday, but in the meantime it's time for me to face reality and accept that that day won't be soon and that it's time to make it possible for the project to stay alive.

Robin

@swt2c
Copy link
Collaborator Author

swt2c commented Aug 27, 2024

Thanks @RobinD42, successfully received PyPI access. Next steps, I'll work on finishing up those GitHub workflows and sorting out the other details for a release (ie, changelogs, etc). Thanks!

@vadz
Copy link

vadz commented Aug 27, 2024

Robin, I'm really sorry to hear this. As you know, I'm not much of a Python person (even if wxPython as a project is very important for wxWidgets, of course), but I could try to help with the GitHub Workflows stuff and, of course, if you need anything on wx side, I'd do my best to help too.

Best wishes to you and good luck to Scott and all the others with the project!

P.S. Sorry, forgot to mention: my PyPI account is VZ, and I'm ready to provide backup for the releases, although I certainly am not qualified to be the primary maintainer.

@tierra
Copy link
Member

tierra commented Aug 28, 2024

Thanks Robin and Scott. I'm in a similar situation as Vadim, maybe not too helpless on the Python side though. I'm not at all familiar with the wxPython release process or builds. But happy to try to help with anything I can, and you can hit me up if you hit any kind of wall in terms of access/integrations on the GitHub side Scott.

@newville
Copy link
Contributor

Thanks all. I'm glad to hear that @RobinD42 is alive, and sorry to hear about health issues, and wish him all the best. Health is always fragile, never certain, and open-source projects are never the most important thing in life.

I have to say, though, that my opinion about needing a fork has not changed much. It is good that others, including @swt2c can push releases to PyPI.

But, @RobinD42 was assigned this GitHub Issue to push a release 3 MONTHS AGO. And, it was pretty obvious that a release was needed then. This was a gentle nudge to remind @RobinD42 that a release was needed. That gentle nudge was simply ignored. Several people, including myself asked politely, multiple times, here and at https://discuss.wxpython.org/ to push a release, for status reports, and to demonstrate that the project is not abandoned. We have offered to help. All of these requests were simply ignored.

... because the project has been abandoned. The only way to solve this issue is to actively demonstrate that the project is not actually abandoned. Yes, of course, push a release. That is step 1.

There also needs to be multiple maintainers and developers of this Github repository -- people who can merge Pull Requests, and triage discussions. The list of maintainers and developers needs to be made public.

Many people have offered to help. There are many open Pull Requests and Issues that have gotten no attention. Many of these come from new or infrequent contributors - they have been and are being ignored. That needs to change. People offering to help should not be ignored. To be clear, I am willing to help. I am also slightly skeptical, as my own most recent experience here was truly discouraging (see #2432).

Again, I think that a fork is likely unless positive action is taken soon.

@infinity77
Copy link
Contributor

infinity77 commented Aug 28, 2024

I’m very happy to finally see some action! I’ve been using wxPython for years and I still do every day, we have very many applications depending on it and I was getting concerned about their possible future…

I do not have a preference on direction the project should take - a fork or not a fork - and to be honest, I believe it makes very little difference one way or another if the project is healthy and maintained.

The days of my large contributions to - and continuous activity on - wxPython are long gone, but I’m willing to get off my a*** and help in whichever way I can.

That being said, I would like to join the chorus of people expressing gratitude to @RobinD42, and wishing him all the best - I’m very sorry to hear about his age-related issues, and I’m well aware that there’s so many other things eating away one’s time during the day. I certainly hope he will come back and join us once again.

@swt2c swt2c assigned swt2c and unassigned RobinD42 Aug 28, 2024
@paul-ollis
Copy link

paul-ollis commented Aug 28, 2024

@RobinD42. It gladdens my heart to see a message from you. I have experience
the exhaustion of which you speak. My solution was to stop paid work about
three years ago and officially retired a few months ago. My energy for serious
coding has only recently returned.

Please be kind to yourself and let the community take on the strain. It seems
to me that there is already the necessary talent to move things forward.

@swt2c. I stand avaiable to help in getting a 4.2.2 release out. I should be
able dedicate quite a bit of time over the next 2.5 weeks. I am proficient
in Python and no slouch at C++.

@reticulatus
Copy link
Contributor

The wxpython.org domain hosts several very useful websites, including the API Documentation, the wxPyWiki, the "extras" folders and the Discuss wxPython forums. It's not clear how the domain and hosting fees are currently funded. Will these sites continue to exist?

@swt2c
Copy link
Collaborator Author

swt2c commented Sep 5, 2024

Making steady progress towards a 4.2.2 release. There's one issue with PyPI configuration that I need to sync up with Robin on. Also, since there's going to be a wxWidgets 3.2.6 release very soon, I'd like to pick up those changes in wxPython as well.

For those interested/able in helping out in the short term, if you could test out the wheels being generated by the new build process on GitHub and report any problems, that would be much appreciated. The wheels have been uploaded to TestPyPI and you can also get them from GitHub Actions (artifacts).
https://test.pypi.org/project/wxPython/4.2.2a1/#files
https://github.com/wxWidgets/Phoenix/actions/runs/10711817604

Longer term, the project could definitely use help with:

  • triaging issues (there are 600+ of them)
  • reviewing pull requests
  • fixing bugs

@hasii2011
Copy link

I tried to use the above test wxPython. As a basic test, I tried to run my unit tests. I am running this on a
MacBook M1, Mac OS Sonoma 14.6.1;
Python 3.10.13 inside a Python virtual environment.
I control my python versions using pyenv.

The error message I am getting is:


ImportError: Failed to import test module: tests.pyut.TestPyutUtils
Traceback (most recent call last):
  File "/Users/humberto.a.sanchez.ii/.pyenv/versions/3.11.5/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/unittest/loader.py", line 407, in _find_test_path
    module = self._get_module_from_name(name)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/humberto.a.sanchez.ii/.pyenv/versions/3.11.5/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/unittest/loader.py", line 350, in _get_module_from_name
    __import__(name)
  File "/Users/humberto.a.sanchez.ii/PycharmProjects/pyut/tests/pyut/TestPyutUtils.py", line 9, in <module>
    from pyut.PyutUtils import PyutUtils
  File "/Users/humberto.a.sanchez.ii/PycharmProjects/pyut/pyut/PyutUtils.py", line 14, in <module>
    from wx import DisplaySize
  File "/Users/humberto.a.sanchez.ii/gitclones/pyut/wxpython-4.2.2/lib/python3.11/site-packages/wx/__init__.py", line 17, in <module>
    from wx.core import *
  File "/Users/humberto.a.sanchez.ii/gitclones/pyut/wxpython-4.2.2/lib/python3.11/site-packages/wx/core.py", line 12, in <module>
    from ._core import *
ImportError: dynamic module does not define module export function (PyInit__core)

Also, this strange message:

ERROR: tests.pyut.uiv2.TestToolBoxHandler (unittest.loader._FailedTest.tests.pyut.uiv2.TestToolBoxHandler)
----------------------------------------------------------------------
ImportError: Failed to import test module: tests.pyut.uiv2.TestToolBoxHandler
Traceback (most recent call last):
  File "/Users/humberto.a.sanchez.ii/.pyenv/versions/3.11.5/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/unittest/loader.py", line 407, in _find_test_path
    module = self._get_module_from_name(name)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/humberto.a.sanchez.ii/.pyenv/versions/3.11.5/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/unittest/loader.py", line 350, in _get_module_from_name
    __import__(name)
  File "/Users/humberto.a.sanchez.ii/PycharmProjects/pyut/tests/pyut/uiv2/TestToolBoxHandler.py", line 5, in <module>
    from codeallyadvanced.ui.UnitTestBaseW import UnitTestBaseW
  File "/Users/humberto.a.sanchez.ii/gitclones/pyut/wxpython-4.2.2/lib/python3.11/site-packages/codeallyadvanced/ui/UnitTestBaseW.py", line 3, in <module>
    from wx import App
  File "/Users/humberto.a.sanchez.ii/gitclones/pyut/wxpython-4.2.2/lib/python3.11/site-packages/wx/__init__.py", line 12, in <module>
    __version__ = wx.__version__.VERSION_STRING
                  ^^^^^^^^^^^^^^
AttributeError: partially initialized module 'wx' has no attribute '__version__' (most likely due to a circular import)

@swt2c
Copy link
Collaborator Author

swt2c commented Sep 6, 2024

Thanks @hasii2011 - I believe the issue was that the macOS wheels were built as x86_64 only. Working on fixing.

@swt2c
Copy link
Collaborator Author

swt2c commented Sep 8, 2024

@hasii2011 I believe I've fixed the issue with the macOS wheels. Can you please try again?
Also, the snapshot builds are being updated again from GitHub, so you can get the wheels here:
https://wxpython.org/Phoenix/snapshot-builds/

@HelioGuilherme66
Copy link
Contributor

HelioGuilherme66 commented Sep 8, 2024

@swt2c (and all) My project, an IDE for the software testing framework, https://robotframework.org, RIDE, could not exist if wxPython did not exist. A big THANK YOU to all developers and contributors of wxPython and wxWidgets.
I am a DevOps/Tester and I am available for any help you need.
(I'll ask my users to try 4.2.2a1)

@hasii2011
Copy link

@swt2c Ok. That seemed to work. No error on unit tests. I ran a cursory set of manual UI actions on my application and everything works. I plan on running through more tests and integrate it into my current development workflow to try and wring more stuff out. I will keep you appraised if I notice any problems, differences, or anomalies. Thanks for the work.

@decodeais
Copy link
Contributor

Here I have some 4.2.2a1 wheels for raspi and
a script which worked for me to build new wheels from source.
decodeais/FortiusANT#2 (comment)

@swt2c
Copy link
Collaborator Author

swt2c commented Sep 12, 2024

wxPython 4.2.2 has been released.

@swt2c swt2c closed this as completed Sep 12, 2024
@swt2c swt2c unpinned this issue Sep 12, 2024
@TheConstructor
Copy link

Hey @swt2c, thanks for the new release! It seems however, that https://wxpython.org/ still doesn't mention it.

@hasii2011
Copy link

Hey @swt2c, thanks for the new release! It seems however, that https://wxpython.org/ still doesn't mention it.

Yeah, let's announce it

@andebjor
Copy link

andebjor commented Oct 2, 2024

Yes, it would be very nice with a release statement including a summary of the differences compared to the previous release.

@swt2c
Copy link
Collaborator Author

swt2c commented Oct 9, 2024

Yes, it would be very nice with a release statement including a summary of the differences compared to the previous release.

The website has been updated. Note: help welcome. https://github.com/wxWidgets/wxPyWeb

@hasii2011
Copy link

Not sure if this is the right place for the issue. It seems like the wxPython discussion site at: https://discuss.wxpython.org, has been down for a few days with a "502 Bad Gateway" error

@reticulatus
Copy link
Contributor

The site was being very heavily spammed. @swt2c was aware of it but didn't have admin privileges for the site. He was trying to contact @RobinD42 to see if he could help. I don't know if the Bad Gateway error is due to the server being overwhelmed by the spam messages, or whether it's been taken offline for repair.

@tierra
Copy link
Member

tierra commented Oct 25, 2024

We've had some discussion in the past for core wxWidgets about maybe enabling GitHub Discussions, though this was in the context of having functional mailing lists (the historical official place for all discussions for decades now), as well as the popular wxForums, and the main concern was about splitting communities to yet another new place. I don't think we ever plan on retiring the mailing lists as the official place for discussions about the library. But that was also before we migrated wxTrac to GitHub issues as well.

Anyway, if managing that Discourse instance is too much overhead with Robin mostly out now, it's probably worth considering as a replacement for discuss.wxpython.org. Probably won't be able to import any of the old discussions over though.

This should probably be discussed in a new issue though.

@swt2c
Copy link
Collaborator Author

swt2c commented Oct 26, 2024

Move the discuss.wxpython.org to a new issue: #2631

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