Skip to content

remove python upper bound requirement #1588

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

Open
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

solomoncyj
Copy link

@solomoncyj solomoncyj commented Jul 30, 2025

What does this PR do, and why?

External discussion & connections

  • Discussed in #zulip-terminal in topic
  • Fully fixes #
  • Partially fixes issue #
  • Builds upon previous unmerged work in PR #
  • Is a follow-up to work in PR #
  • Requires merge of PR #
  • Merge will enable work on #

How did you test this?

  • Manually - Behavioral changes
  • Manually - Visual changes
  • Adapting existing automated tests
  • Adding automated tests for new behavior (or missing tests)
  • [*] Existing automated tests should already cover this (only a refactor of tested code)

Self-review checklist for each commit

  • It is a minimal coherent idea
  • It has a commit summary following the documented style (title & body)
  • [*] It has a commit summary describing the motivation and reasoning for the change
  • It individually passes linting and tests
  • It contains test additions for any new behavior
  • [*] It flows clearly from a previous branch commit, and/or prepares for the next commit

@zulipbot zulipbot added the size: XS [Automatic label added by zulipbot] label Jul 30, 2025
@solomoncyj solomoncyj force-pushed the patch-1 branch 2 times, most recently from 65bae73 to 2ad73b6 Compare July 30, 2025 14:28
@zulipbot zulipbot added size: S [Automatic label added by zulipbot] and removed size: XS [Automatic label added by zulipbot] labels Jul 30, 2025
@solomoncyj
Copy link
Author

The lxml version is causing Dependency hell and build faliures

Copy link
Collaborator

@neiljp neiljp left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@solomoncyj I left a few comments inline.

What kind of install results in these problems? Are you trying to explicitly run with new python, or newer lxml, or something else?

@@ -109,7 +109,7 @@ def long_description():
"zulip>=0.8.2,<0.9.0", # Next release, 0.9.0, requires Python 3.9
"urwid_readline>=0.15.1",
"beautifulsoup4>=4.13.4",
"lxml==4.9.4",
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've been busy outside of ZT recently, but I believe this was pinned so as to avoid errors with PyPy 3.7, which I believe you're seeing here.

As per comments elsewhere - likely in the channel(s) on chat.zulip.org as well as on GitHub - the idea some time ago was to get a release out for 3.7 and then drop support. I don't recall if one can set different package version dependencies per python version, which would work as a short-term workaround for this. Failing that, I'd be open to moving to 3.9+, since 3.8 is also past end of life now.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If the lxml version is too low, the wheel has to be built manually for python>= 3.13 and failes due to ABI incompatibility , however there are abi changes when i bump lxml versions and tests fail.

lxml == 4.9.4 dosnt have prebuild wheels for >=3.12, and when pip attempts to compile from source, the dependncies are no longer abi-compatible to upstream libs

python_requires=">=3.7, <3.12",
python_requires=">=3.7",
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This seems to be an agreed-upon approach; the challenges are either keeping up to date with issues from newer python versions (and pinning until tested), or relying upon users to report issues with those newer versions.

In the past we staged support for more recent versions in CI, before making a release. With this change it'd be useful to document that certain versions are supported, but to report success and details with other pythons - perhaps similar to how it's great to hear reports from other terminal emulators that work well.

Comment on lines +274 to +275
# crashing builds lately
# - name: Check we detect the python environment correctly
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does the imported code not detect the platform correctly?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yup 3.12 and 3.13 was freaking out and not building

@neiljp neiljp added the PR awaiting update PR has been reviewed & is awaiting update or response to reviewer feedback label Jul 31, 2025
@solomoncyj
Copy link
Author

also it seems that the test suite fails due to typing errors

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
PR awaiting update PR has been reviewed & is awaiting update or response to reviewer feedback size: S [Automatic label added by zulipbot]
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants