gh-75552: Remove deprecated tkinter.tix module by zware · Pull Request #104902 · python/cpython (original) (raw)
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 andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Conversation10 Commits2 Checks0 Files changed
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.Learn more about bidirectional Unicode characters
[ Show hidden characters]({{ revealButtonHref }})
Member
zware commented
•
edited by github-actionsbot
Loading
If you haven't rebuilt the MSI yourself, might be worth touching something in the tools/msi directory so that the PR tests run. I don't think there are any Tix-specific dependencies in it though, so it ought to be fine.
Ah, hmm. Because of the way Tcl/Tk/Tix is packaged in cpython-bin-deps
, should we create a tcltk-8.6.13.1
without tix?
I suppose at worst the tix
libraries just become dead weight in the tcltk
installation, and the next time we build a new Tcl/Tk bundle for a new version, the dead weight will be removed.
Interestingly, the TestsMSI
workflows "passed", but each one with 4 warnings and 2 errors. This is not new to this PR, though so I won't hold this up based on that. I would like a positive review from someone before I click the button, though :)
Interestingly, the
TestsMSI
workflows "passed", but each one with 4 warnings and 2 errors.
The warnings are all expected... the errors are because we don't build the docs first in that job. I've just filed #104929 to fix that, so if you want to wait and merge it before merging this, that ought to give you clean results?
Nice branch name! :)
Can some of this stuff be removed?
Modules/tkappinit.c
63:#ifdef WITH_TIX
65: extern int Tix_Init(Tcl_Interp *interp);
66: extern int Tix_SafeInit(Tcl_Interp *interp);
67: Tcl_StaticPackage(NULL, "Tix", Tix_Init, Tix_SafeInit);
Lib/idlelib/help.html
30: <link rel="prev" title="tkinter.tix — Extension widgets for Tk" href="tkinter.tix.html" />
126: <p class="topless"><a href="tkinter.tix.html"
127: title="previous chapter"><code class="xref py py-mod docutils literal notranslate"><span class="pre">tkinter.tix</span></code> — Extension widgets for Tk</a></p>
163: <a href="tkinter.tix.html" title="tkinter.tix — Extension widgets for Tk"
1080: <p class="topless"><a href="tkinter.tix.html"
1081: title="previous chapter"><code class="xref py py-mod docutils literal notranslate"><span class="pre">tkinter.tix</span></code> — Extension widgets for Tk</a></p>
1120: <a href="tkinter.tix.html" title="tkinter.tix — Extension widgets for Tk"
Modules/Setup
225:# specific extension (e.g. Tix or BLT), leave the corresponding line
242:# *** Uncomment and edit for Tix extension only:
243:# -DWITH_TIX -ltix8.1.8.2 \
Can some of this stuff be removed?
I opted to keep the WITH_TIX
bits in tkappinit.c
and Modules/Setup
because they're not actually related to including Tix with Python, they're available for someone building something into tkinter specially. There are other WITH_*
defs in the surrounding code for Tcl modules that we've never included.
The mentions in idlelib/help.html
should go away next time that file is regenerated. I tried it out, but introduced several more changes due to Sphinx version mismatch, so I left it for now. Those bits shouldn't actually be relevant to its use anyway.
There still is no alternative for the tix module. The Select and Balloon classes are nowhere to be found, no Python replacement, and ttk doesn't even look like tix. What are the poor users to do?
Tix has been unmaintained for 10 years now, has open security vulnerabilities, and every update of anything in our toolchain risks breaking it. If you still need it, it's open source and can be vendored into your project or maintained separately, but we will no longer provide it out of the box as of Python 3.13.
Mostly this is an excuse to run the MSI CI tests.
zware deleted the so_long_and_thanks_for_all_the_Tix branch