GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — gh-75552: Remove deprecated tkinter.tix module by zware · Pull Request #104902 · python/cpython

Conversation

@zware

@zware zware commented May 24, 2023 •
edited by github-actions Bot
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Member
  • Issue: Remove deprecated tkinter.tix module #75552

📚 Documentation preview 📚: https://cpython-previews--104902.org.readthedocs.build/

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@zware
zware requested a review from a team as a code owner May 24, 2023 22:51
@bedevere-bot bedevere-bot added the awaiting core review label May 24, 2023
@bedevere-bot bedevere-bot mentioned this pull request May 24, 2023
Remove deprecated tkinter.tix module #75552
Closed
@zware
zware force-pushed the so_long_and_thanks_for_all_the_Tix branch 3 times, most recently from 72026c5 to e7abc51 Compare May 24, 2023 23:36
@zooba

zooba commented May 24, 2023

Copy link
Copy Markdown
Member

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.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@zware

zware commented May 24, 2023

Copy link
Copy Markdown
Member Author

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?

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@zware
zware force-pushed the so_long_and_thanks_for_all_the_Tix branch from e7abc51 to 0524a21 Compare May 25, 2023 02:18
@zware

zware commented May 25, 2023

Copy link
Copy Markdown
Member Author

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 :)

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@zooba

zooba commented May 25, 2023

Copy link
Copy Markdown
Member

Yeah, there'll be updates needed to https://github.com/python/release-tools/blob/master/windows-release/tcltk-build.yml, which is where the "real" build happens. I can do that.

We probably need to tag builds separately for "without Tix" unless we've got a major version update coming (i.e. one that won't be used for 3.12)?

zware reacted with thumbs up emoji
All reactions
  • 👍 1 reaction

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@zooba

zooba commented May 25, 2023

Copy link
Copy Markdown
Member

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?

zware reacted with hooray emoji
All reactions
  • 🎉 1 reaction

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@hugovk

hugovk commented May 25, 2023

Copy link
Copy Markdown
Member

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 \
All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@zooba

zooba commented May 25, 2023 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Member

See also python/release-tools#47 where I'm making the Tix build step optional for the cpython-bin-deps build.

The package from my test run is at https://dev.azure.com/Python/cpython/_build/results?buildId=128771&view=artifacts&pathAsName=false&type=publishedArtifacts (for about 30 days I expect) if you want to check that it works. You shouldn't need to log in, but all you can do is click the three dots at the right of the tcltk item to download it.

zware reacted with thumbs up emoji
All reactions
  • 👍 1 reaction

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@zware

zware commented May 25, 2023

Copy link
Copy Markdown
Member Author

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.

hugovk reacted with thumbs up emoji
All reactions
  • 👍 1 reaction

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@jneb

jneb commented May 25, 2023

Copy link
Copy Markdown
Contributor

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?

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@zware

zware commented May 25, 2023

Copy link
Copy Markdown
Member Author

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.

taleinat reacted with thumbs up emoji
All reactions
  • 👍 1 reaction

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@zware
zware force-pushed the so_long_and_thanks_for_all_the_Tix branch from c8d477d to 99efec0 Compare May 26, 2023 17:06
zware added 2 commits May 26, 2023 12:08
@zware
pythongh-75552: Remove deprecated tkinter.tix module
450cc5e
@zware
Use specific imports in purge.py
27c8d16
Mostly this is an excuse to run the MSI CI tests.
@zware
zware force-pushed the so_long_and_thanks_for_all_the_Tix branch from 99efec0 to 27c8d16 Compare May 26, 2023 17:08
@zware
zware merged commit a989b73 into python:main May 27, 2023
@zware
zware deleted the so_long_and_thanks_for_all_the_Tix branch May 27, 2023 17:34
@bedevere-bot bedevere-bot removed the awaiting core review label May 27, 2023
@hugovk hugovk mentioned this pull request Sep 4, 2023
[3.12] Resolve reference warnings in faq/gui.rst (GH-108147) #108193
Merged
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

No reviews

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

5 participants

@zware @zooba @hugovk @jneb @bedevere-bot
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.