Hacker News new | past | comments | ask | show | jobs | submit login
PySimpleGUI 4 will be sunsetted in Q2 2024 (pysimplegui.com)
48 points by joshuaissac 12 months ago | hide | past | favorite | 65 comments



PySimpleGUI 4, a free and open source GUI framework for Python, is being replaced by a subscription-based PySimpleGUI 5.

> For the last 5 years, PySimpleGUI offered free software with the hope of sustaining the company by donations.

> We appreciate the support we received, but the amount has been too small to support the PySimpleGUI project.

> For this reason, PySimpleGUI is switching to a subscription model, where commercial users are expected to pay a nominal annual fee.

Current GitHub repository with the code removed: https://github.com/PySimpleGUI/PySimpleGUI

An older fork with the open source code: https://github.com/gabrielsroka/PySimpleGUI


Thanks for clearing that up... I was reading "If you use PySimpleGUI 4, don't worry! PySimpleGUI 5 is backward compatible with PySimpleGUI 4." and wondering "why, then, the major version number change?". Well, in that case, users who don't want to pay for v5 can still fork v4 and maybe keep working on it?


You can see in the "Activity" tab what the last commit to each branch was before they deleted it. For master, it was https://github.com/PySimpleGUI/PySimpleGUI/commit/1fa911cafe...


I was surprised to see my fork here. Is it the only one? [I guess it's the most recent]

I think I just submitted a minor patch/PR.

Edit: yep. https://github.com/PySimpleGUI/PySimpleGUI/pull/6619

See also https://github.com/PySimpleGUI/PySimpleGUI/forks


> We appreciate the support we received, but the amount has been too small to support the PySimpleGUI project.

It's weirdly difficult to tell who I'd be giving money to if I were to donate to the project. I just put a few minutes of clicking into it and couldn't figure it out. I can't imagine donating to a project without knowing who would receive the money.


Hopefully this helps with archival efforts:

https://archive.is/n4TJG (20231209 snapshot)


Notably, in these cases you usually only need to track down a last-known-good commit hash and any GitHub fork of the original project, and GitHub will happily let you view and fetch that commit even if it's not included in that particular fork. (People have called this a bug, but for this kind of code rescue it's more of an unintentional feature.)

In this particular case, https://github.com/PySimpleGUI/PySimpleGUI/commit/ca37e593fe... (five commits newer than GGP’s reference, which has commit a0d3e7ce1f5b015962e9d538f94cd517a9a79692) seems to be the last FOSS revision before the maintainer deleted everything.

  $ git clone https://github.com/PySimpleGUI/PySimpleGUI
  $ cd PySimpleGUI
  $ git fetch origin ca37e593fe07177f409639933392b4c2fa94f736
  $ git switch -c foss FETCH_HEAD


Thanks to you and @molticrystal I've made a mirror just in case. Didn't mention your names in the README as I weren't sure if you wanted to be mentioned or not.

https://github.com/andor-pierdelacabeza/PySimpleGUI-4-foss


Tags also currently survive. This is the last LGPL tag: https://github.com/PySimpleGUI/PySimpleGUI/commits/4.60.5/.



Thanks to you and @mananaysiempre I've made a mirror just in case. Didn't mention your names in the README as I weren't sure if you wanted to be mentioned or not.

https://github.com/andor-pierdelacabeza/PySimpleGUI-4-foss



Was I the only one reading the “20231209” date as “20 231 209 snapshots” and going like “that’s an insane amount of captures how did that happen?” before realizing that I was reading it wrong


I don't want to sound negative, but this will probably be the end for the project. At least I am not interested in a non-free GUI framework, and I think the majority of other developers think the same.

If you really want to commercialize this project, maybe a double licence like Qt is a better option?

But I wonder: Those people who use this could also support its development. Or if no-one is supporting the development, maybe there is simply not enough interest by other people in this project? If this is the case, why keeping it alive? Making it commercial will have the opposite effect, it will reduce the interest much more.

Despite that it is commercial now, even before, I was not really sure why I would use this over some of the more well known frameworks.


No, this may be the beginning or the only way to keep the project alive. Open source is good and such, but never could answer one question: funding. Without proper funding, project that you like to work on is ultimately doomed as pure enthusiasm won't drive you too far.


I just wrote a simple CPU emulator last week for the computer architecture class I'm teaching, and used PySimpleGUI for the interface. When students tried to install it on the lab computers yesterday and asked me about that "30 day free trial" business, that really took me by surprise.

Guess I'm going to bite the bullet and rewrite the GUI in tkinter, which is what I wanted to avoid in the first place.


Welp, I have been messing around with a small project using PySimpleGUI using Deepseek to help me learn it. I found a cool project that has a very nice theme for 'ttk' widgets[0] which are supported in PySimpleGUI. Not sure how to proceed... I guess I will use the uncertainty to explore some of these 100% pure python web dev for shits and grins[1].

[0]https://github.com/rdbende/Sun-Valley-ttk-theme [1]https://www.may69.com/purepython/


yes, Sun Valley TTK, I love that project! I've used it for a few personal tools.


Has this project had any contributors copyright assignment in place? Because force rewriting your git history looks pretty sketchy.


Their old CONTRIBUTING file <https://github.com/PySimpleGUI/PySimpleGUI/blob/1fa911cafee6...> said:

> Pull requests are not being accepted for the project. This includes sending code changes via other means than "pull requests". Plainly put, code you send will not be used.

> I don't mean to be ugly. This isn't personal. Heck, I don't know "you",the reader personally. It's not about ego. It's complicated. The result is that it allows me to dedicate my life to this project. It's what's required, for whatever reason, for me to do this. That's the best explanation I have. I love and respect the users of this work.

It's obvious in hindsight that those reasons were a bald-faced lie, and the real reason was exactly that he could legally do this rug pull.


It's not really a "rug pull" to simply take your own open source code off a site at your own discretion.

Nothing's been taken away, it's just been obfuscated. Foolishly. Definitely petty, as another commenter says.

It is a bit of an own goal from the perspective of trust, though; it's going to kill any hope he has of succeeding with the project.


How is "I'm relicensing this program from LGPL to a proprietary subscription, and making (futile) attempts to delete all copies of the old licensed version" not a rug pull?


Exactly because he can't relicense retrospectively.

Nothing has been taken away. The rug has not been pulled out from anyone; they just have one less guarantee about their future development. They still have the repo they cloned and the right to distribute it.

He's shot himself in the foot, guaranteeing a competitive fork, and guaranteeing code mirrors will spring up everywhere.

Given that he apparently never accepted PRs, I don't really see anything has changed; it might even be for the better if it essentially validates a fork.

There is one point on which I would reach some agreement: he should consider returning any large donations made in the last few months if he's done no further development on V4, mind you, or convert those donations into lifetime licences. Those people might otherwise feel a little tug of the rug under their feet. Nobody else really has a right to, and they might benefit from a community-maintained fork.

But it sounds like he might not have had any large donations anyway.


Browsed quickly and only saw the project commits as of late, but maybe cloning and checking more closely will reveal more authors. Will be an L-GPL bonanza in that case.


I see "MikeTheWatchGuy", but checking its profile feels like he's the same person than PySimple, but before creating the org.

   git shortlog -s -n --all --no-merges
  1728  PySimpleGUI
  1685  MikeTheWatchGuy
    11  Tim Kay
     7  Orsiris de Jong
     4  jackyOO7
     3  Ricardo Mendonça Ferreira
     2  Chr0nicT
     2  Jason Yang
     2  Jorj X. McKie
     2  cclauss
     2  timkay@not.com
     1  Michael Kennedy
     1  Sokichi Fujita
     1  eagleEggs
     1  fluxrider
     1  macsdev
     1  mborus
     1  nngogol
     1  novel-yet-trivial
     1  Åge Strand
Edit: also, removing all the code feels... like a bad move. Petty.


> PySimpleGUI creates desktop applications easily, enhancing the tkinter, Qt, WxPython, and Remi frameworks with a much simpler programming interface:

So this is not implementing a GUI on its own, but a wrapper around other GUIs?


yes, that's correct


Hmm. Tangent.

How do these software library subscriptions work? Do you have to pay as long as you distribute the app?

So, say, if a game is on Steam and whoever put it there stops updating the game and paying for any subscriptions they were using during development, say because they retired, do they lose the right to distribute the game and have to take it down?

Great for software preservation in this case.


Depends entirely on how much effort the company wants to put to enforce it legally. If a company has 2 customers, A and B, nothing's stopping them from sharing updates/patches with each other if 1 of them stops paying the license fee, and/or stripping the part of the code that phones home to check for a valid license.

I think the key insight is, it's not worth focusing too much on this segment, except in very specific markets (maybe super-expensive sofware, like the Adobe suite, DAWs, AutoCAD etc.). The majority of paying clients don't go through this amount of effort, and unless they're cheapskates (in which case you might not want them as clients regardless), will just pay and be honest customers, appreciating regular updates and support.


Adobe does not sell a software library and you don't need to distribute anything from them, just the output of their software. Of which, at least for now, they haven't managed to take ownership.

However, for libs like, say, Qt and this library, it's different. I haven't looked closely at licenses for subscription based stuff, has anyone?


> Do you have to pay as long as you distribute the app?

This depends on the licence. In this particular case, the licence agreement[1] appears to allow continued distribution of the end product as long as the subscription was active at the time of development, and the licensing terms have not been breached.

Relevant parts of the licence agreement:

> Term. This Agreement shall commence on the date on which Licensee [...] obtains a copy of PySimpleGUI, and shall continue thereafter until terminated as set forth herein.

> Library. Licensor grants Licensee a [...] license during the Term [...] to redistribute the Library to recipients of its Licensee Applications

> "Authorized Developer" [...] is either (1) a Hobbyist Developer; or (2) a Commercial Developer who has purchased an active PySimpleGUI paid license hereunder, in effect at the time of development, which is fully paid up

1. https://www.pysimplegui.com/eula


I'm not a lawyer, but doesn't the clause under "Library" only grant a license to distribute the library "during the term," which is terminated when the developer doesn't renew their subscription?

Directly quoting what you wrote. What am I not seeing?


I am not a lawyer either, but my understanding is that 'the Term' refers to the term of the agreement, which ends when the agreement is terminated, not to the active term of the subscription.

They specify a few ways in which the agreement can be terminated, but ending the subscription is not one of them.


This is not just about pysimplegui, they just triggered my thinking about it.

Anything depending on subscription based libraries has to consider it. Especially if the seller is all lawyered up like Digia.

What if you stop selling an application, and 10 years later there is a case for selling it again unmodified? Which is exactly what happens with old games on GoG, for example. Would you need to back pay the subscription for 10 years?


In general, it would depend on the specific licence and the jurisdiction. The licensor can demand that the final product using the library can only be distributed while there is an active subscription in place (which is not the case here with PySimpleGUI).

They may even say that the end users only have the licence as long as someone is paying a subscription. There are cases where that might make sense. For example, if the library is relying some online/cloud service operated by the licensor or their agent, and it costs them money to keep it running.


> For example, if the library is relying some online/cloud service operated by the licensor or their agent, and it costs them money to keep it running.

I wouldn't call that product a "library". In that case the product is the service and the library is just the means to access it (unless X provides the service and Y provides the library, but that's a niche case).

The problem is pure software libraries.


It's generally on the honor system. Having to pay for certain usages is likely in their terms of service so they could theoretically sue you if you didn't have a license.

Big companies will pay to be legal. Or to get a support package. Small companies will probably pay out of honor. Some people won't pay but most of them probably wouldn't pay if forced anyway.

I support a UI framework that is just an npm package. I could theoretically use it for free, I just wouldn't get support. I pay because it's the right thing to do and it's not very expensive.


As they've deleted all the GPLv3 code from the repo, mirror up to last known GPL commit:

https://github.com/andor-pierdelacabeza/PySimpleGUI-4-foss


Noteworthy:

> If you are a Hobbyist Developer, then you may use PySimpleGUI for non-commercial purposes at no cost. If you are not a Hobbyist Developer, then you are a Commercial Developer, and you or your company must sign up for an annual subscription on your behalf at $99/year.


Very frustrating that it does not make clear what should happen for FOSS projects, academia, etc etc...


Very reasonable.


Subscriptions are rent seeking and IMO are reasonable only if there is outright purchase option.


FastUI might be worth a look. An alternative from the founder of Pydantic (haven’t tried it though). https://github.com/pydantic/FastUI?tab=readme-ov-file


It seems like, at the very least, it would be worth establishing a fork of the LGPL version under a new name that we can put on PyPi to keep current projects working and installable with a different pip install for the formerly pysimplegui...

It seems like otherwise anything distributed currently that's FOSS that uses it will have to start paying a subscription or something?

It also seems like if I pull a FOSS project off a github repo that uses pysimplegui now, when I install dependencies it will install simplegui 5 and thus I'll have to get a subscription...


This sucks... Found this yesterday and couldn't find anyone talking about it / the implications yet...

Has anyone figured out how their license is supposed to work for FOSS projects?

It's clear that if you just using personally it's free, or selling stuff then pay subscription, but I couldn't find good info on their site / license page about FOSS projects etc.


It seems like, even if you decide your FOSS use falls under hobbyist (and it's not clear if that's necessarily valid), if anyone wants to pull your project and run it, they'll need to set up their own simplegui account and get a key etc...

>" 7. If I ship a product that uses PySimpleGUI do I have to pay royalties to PySimpleGUI? No. To ship a product, commercial users embed Distribution Keys (at no cost) into each application shipped.

Hobbyist Users may share their projects. Each recipient will be able to run the project during a trial period. After the trial period, the recipient must subscribe to PySimpleGUI (at no cost) to obtain their own Developer Key. " from: https://pysimplegui.com/faq


Stellar example of why things, such as GUI, should be part of batteries included with a language.

Swing might not be the prettiest one, but I can at least sleep soundly knowing I won’t wake up to subscription bill tomorrow.


But Python does have a GUI library in its standard library, tkinter, which is a port of tk/tcl. PySimpleGui simply provided an abtraction layer on top of multiple GUI toolkits, including tkinter.


> Stellar example of why things, such as GUI, should be part of batteries included with a language.

But it is part of the batteries with Python:

https://docs.python.org/3/library/tkinter.html


Python actually comes with one, tkinter.

https://docs.python.org/3/library/tkinter.html


> with a language

I think it simply wouldn't work. Which kind of GUI (library) would C++ have, imagining it came with one?


You missed that they gave an example that does work—Java Swing is bundled with the JVM, making it more or less part of the standard library. Python itself also has Tkinter, which exists inside the cpython repo and is installed with Python [0].

C++ may not work, but most other languages (especially VM-based) can and many do.

[0] https://github.com/python/cpython/blob/3.12/Lib/tkinter/__in...


wxwidgets, or maybe they'd just go crazy and build Qt in


Hope pyAutoGUI remains free. https://github.com/asweigart/pyautogui


I think there are far better solutions that python if you want to make a gui app, python shines more at scripting stuff.


Wow this stinks, I've been using this pretty heavily for the last while and really like it, but this kind of rugpull type thing is a pretty bad move.

I wonder, do all the old versions on pip stay there or are they planning on pulling those too, breaking everyones programs?

.. Mostly just wondering because the website seemingly doesn't mention it.


yeah I'm very much in the same boat...


Does it have autocomplete on inputs?

Keyboard bindings for keyboard shortcuts?

Microsoft has made a bit of a hash out of windows gui app development so a small opportunity for alternatives.


Bummer, anyone have good alternatives?


Tkinter


There's just one giant problem with tkinter, it is completely inaccessible. That means that blind people can not use your apps at all if you use tkinter. I have used PySimpleGUIWx in the last years for a youtube client for exactly these people, but the wx port seams to have been neglected over the last years any way so won't pay them.


That's a tiny problem, not a giant one. Blind people are a tiny % of the population.


pyside


4 looks very outdated


Surprisingly this is my first time hearing of PySimpleGUI and it has blown me away. Totally understandable that they are moving to a commercial license, however hobbyist and open source seem to be given a free license, which is great.

I've been struggling with Tkinker too much recently and the last time I dealt with pyQt I lost too much hair. This looks like my salvation for shipping a good looking interface.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: