Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Drop support for Python 3.9 (EOL)#539

Open
jorenham wants to merge 1 commit intopydot:mainpydot/pydot:mainfrom
jorenham:drop-py39jorenham/pydot:drop-py39Copy head branch name to clipboard
Open

Drop support for Python 3.9 (EOL)#539
jorenham wants to merge 1 commit intopydot:mainpydot/pydot:mainfrom
jorenham:drop-py39jorenham/pydot:drop-py39Copy head branch name to clipboard

Conversation

@jorenham
Copy link
Copy Markdown

Python 3.9 Eind of life was at 2025-10-31 (https://devguide.python.org/versions/). This drops support for python<3.10, and removes the relevant code paths.

@jorenham jorenham requested a review from lkk7 as a code owner April 13, 2026 15:05
@lkk7
Copy link
Copy Markdown
Member

lkk7 commented Apr 13, 2026

Hi @jorenham, thanks for the PR.

Edit: disregard the previous comment, this is the first time I saw the diff through the mobile app and got confused... Embarrassing!

I'll look at this soon.

@jorenham
Copy link
Copy Markdown
Author

Edit: disregard the previous comment, this is the first time I saw the diff through the mobile app and got confused... Embarrassing!

The mobile app kinda sucks, so no worries :)

@ferdnyc
Copy link
Copy Markdown
Member

ferdnyc commented Apr 14, 2026

First: There's a single commit here that mixes up style fixes (removal of trailing whitespace, at least) with functional changes. I don't mind the style fixes (in fact, they're always appreciated), but I do mind them not being in a separate commit.

That aside, I'm not sure we want to do this.

Pydot has traditionally had a policy of supporting older, even EOL, Python versions as long as there's meaningful demand for them. We're well aware 3.9 is EOL, in fact several Python 3.9 fixes were added AFTER it became EOL. As long as there's still significant Pydot download traffic on PyPi from Python 3.9 installs, it's worth (minimally) supporting. (And our support is minimal. We don't even test typecheck under Python 3.9, because the Pyparsing releases with type annotations have dropped support. We just try not to go out of our way to actively break 3.9 users.)

Last I heard from @lkk7 regarding the PyPi stats, there was still a depressingly significant amount of Python 3.SEVEN traffic, to say nothing of 3.8 and 3.9. Until whatever Ubuntu LTS release shipped with Python 3.9 is itself EOL, there will still be a lot of demand. Because Ubuntu's LTS policies have ultimately proven more contagious than the GPL.

@jorenham
Copy link
Copy Markdown
Author

First: There's a single commit here that mixes up style fixes (removal of trailing whitespace, at least) with functional changes. I don't mind the style fixes (in fact, they're always appreciated), but I do mind them not being in a separate commit.

Ah sorry, that wasn't intentional; it was just VSCode being "helpful". I'll revert it

Pydot has traditionally had a policy of supporting older, even EOL, Python versions as long as there's meaningful demand for them. We're well aware 3.9 is EOL, in fact several Python 3.9 fixes were added AFTER it became EOL. As long as there's still significant Pydot download traffic on PyPi from Python 3.9 installs, it's worth (minimally) supporting. (And our support is minimal. We don't even test typecheck under Python 3.9, because the Pyparsing releases with type annotations have dropped support. We just try not to go out of our way to actively break 3.9 users.)

If you publish a new pydot release that doesn't support those versions, then that doesn't mean that things will break for those that are still using the (very insecure) EOL Python versions; they just won't be able to use the latest pydot version; they probably wouldn't even notice.

@jorenham
Copy link
Copy Markdown
Author

Oh and for context: My plan was to improve type annotation coverage of pydot. Doing so would be significantly easier if we don't have to take these EOL Python versions into account, because then we'd be able to use the fancy | union syntax for example.

And to be clear; if you really don't want to drop these Python versions, then that's not a deal-breaker for me or anything. I just figured that it's something you'd wanted to do anyways 🤷.

@lkk7
Copy link
Copy Markdown
Member

lkk7 commented Apr 16, 2026

Thoughts @ferdnyc?
To be honest, he's right about the new version release. 3.9 users would not notice a new major version. And any critical patches could be done in the older branch too (which is annoying but doable).
BUT, I guess if any improvements are coming, we'd also like to release them for old versions users. Because they do exist. So it's a matter of doubling the work for every future improvement. And due to new typing you couldn't just push the new work to the old branch. Then, it'd be easier to drop the new typing usage. But that defeats the main benefit of the version drop...
Unless I got it wrong somewhere.

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.

3 participants

Morty Proxy This is a proxified and sanitized view of the page, visit original site.