Skip to content

Way to a PyQt6-stubs release #3

Closed
@bluebird75

Description

@bluebird75

Hi @TilmanK

I am not sure where to start with. We both have advanced a repository for PyQt6-stubs release. And we would both like to see a high quality stubs for PyQt6

On my side, the strategy and the guiding principle were :

  • PyQt5-stubs contains a lot of user contributed stub fixes, and I want to keep them
  • I also want user to continue to easily submit new stub fixes, giving inspirations for more automation
  • tests for stubs are a good idea. The more there are, the better. Ideally, every new user fix should come with a test.
  • PyQt6 releases will not change too much between two releases, so manual merging effort should be limited
  • automation is here to help where possible

With all these principles, I cloned PyQt5-stubs, checkout the PyQt5 upstream branch, committed the PyQt6 released stubs and merged the result into a PyQt6-stubs repository. After a long manual merge process, I have now reached a stable state. I have imported and fixed as well : the CI, the user contributed tests for stubs, running mypy on the stubs and even running stubtest. I also ran some of your automation scripts, the signal fixer and some of the automatic type: ignore annotater.

The end result is on my repo, pretty usable in my opinion. On the next PyQt6 release, I will have to perform a manual merge again, which I expect to be relatively painless.

On your side, you have gone a different road to reach a similar goal. If I understand correctly, there are zero manual modifications of the stubs, everything is automated so that you can go from one PyQt6 release to PyQt6-stubs release.

So now, the 1000$ question : can we work together on the same repo ?

Would you be OK to join my repo just by adding more automation scripts where it make sense, and still have a bit of manual merge ?

Would I be OK to join your repo ? Maybe. My main concerns are that I want the user to be able to report and fix incorect stubs. With the full automation approach, that means creating a python file to patch the stubs for each reported improvement. I find the approach rather tedious. Apart from that, CI and tests are easy to add, but you don't really need my help for this.

For the future of parsing the Qt documentation to generate solid input data, to create more automation, I'll be happy to work together with you on this,

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions