Conversation
pyproject.toml
Outdated
| dependencies = [ | ||
| "pgspecial>=2.0.0", | ||
| "click >= 4.1,<8.1.8", | ||
| "click >= 8.3.1", |
There was a problem hiding this comment.
Maybe try this?
| "click >= 8.3.1", | |
| "click >= 4.1,<8.3.2", |
There was a problem hiding this comment.
This will "allow" some configs with broken click versions to be used (8.1.8 to 8.3.0). I could exclude all the problematic ranges, which would be ugly to put in pyproject toml but doable. I could also explore fixing the compatibility issue in pgcli.
Would something like click >= 4.1, != 8.1.8, != 8.2.*, != 8.3.0, < 9 work? Noting that the next click version would be 9, not 8.3.2
There was a problem hiding this comment.
Sounds great! Please commit the following so we can try.
| "click >= 8.3.1", | |
| # Click 8.1.8 through 8.3.0 have broken pager invocation for multi-argument PAGER values, which causes behave test failures. | |
| "click >= 4.1, != 8.1.8, != 8.2.*, != 8.3.0, < 9", |
|
@stratakis thanks for your PR, I approved the CI tests. For anyone reading this, rationale can be found here:
|
click 8.1.8-8.2.x had broken pager invocation for multi-argument PAGER values. click 8.3.1 includes the fix (pallets/click@7db1f20). Removes the defensive <8.1.8 upper bound. Ref: dbcli#1556 Made with ❤️ and 🤖 Claude
DiegoDAF
left a comment
There was a problem hiding this comment.
Confirmed working. We've been running with click 8.3.1 on our fork with the full test suite passing (2759 tests).
The old <8.1.8 upper bound was a workaround for the broken pager in 8.1.8-8.2.x. This is the proper fix.
|
Looks like this fails in the 3.10 build. |
This is due to click 8.3.1 requiring python >= 3.10, as uv checks that in the CI run. In essence pgcli should move to requiring python >=3.10. |
|
Python 3.10 hasn't reached EOL: Maybe remove support end of this year? |
Click 8.1.8 through 8.3.0 have broken pager invocation for multi-argument PAGER values, which causes behave test failures. Fixed on pallets/click@7db1f20
The build that is failing is not the 3.10 one but uv checking the whole dependency matrix, including Python 3.9. So Python 3.10 should be fine. Let's see with the latest changes with the exclusion of the bad click versions it should hopefully not use the incompatible 3.9. |
|
And as I'm not familiar with pgcli's codebase I fed the relevant data into claude to see what it can come out with. Gave it pgcli's codebase including my latest commit, the integrations tests issue, click's codebase and asked for approaches for making it compatible with lower click versions as well. Maybe it's helpful, maybe not: LLM outputProblem: Click 8.1.8 through 8.3.0 have a bug in _pipepager() where multi-argument PAGER strings are The behave tests set PAGER to python3 /path/to/wrappager.py ---boundary---, which triggers this bug. Approaches to make pgcli work with all click versions:
Approach 1 or 2 combined with approach 3 covers both the test suite and real-world usage with minimal |
Click 8.1.8 through 8.3.0 have broken pager invocation for multi-argument PAGER values, which causes behave test failures.
Fixed on pallets/click@7db1f20
AUTHORSfile (or it's already there).