Some questions about next versions of SIP

Phil Thompson phil at riverbankcomputing.com
Mon Sep 14 22:23:39 BST 2020


On 14/09/2020 19:09, Dmitry Shachnev wrote:
> Hi Phil!
> 
> I noticed that you are preparing a new major version of SIP in hg — v6.
> 
> So I want to ask some questions that are relevant for me as a 
> downstream
> packager (Debian/Ubuntu).
> 
> - Will PyQt5 be switched to SIP v6 too? Or it is only for PyQt6?

PyQt5 will be fine with SIP v6. The main point of SIP v6 is to remove 
support for all deprecated features (including unsupported versions of 
Python). PyQt5 no longer uses those deprecated features.

> - When (approximately) you are planning to release SIP v6? Will it 
> happen
>   in a few weeks, months or years? Or not before Qt 6.0 is released?

The first snapshots will be in a week or two. v6.0.0 will be released 
when PyQt6 is released, which will be when Qt6 is released.

> - Will SIP v5 (and maybe also v4) be supported after v6 is released?
>   For example, now you are still making 4.19.x releases, but for how 
> long
>   will you do that?

There will be no more SIP v4 or v5 releases after v6 is released. SIP v4 
has been deprecated for more than a year. *Nobody* should still be using 
it.

> - Is it possible to mix different SIP versions in the same project?
>   For example, some upstreams (like Calibre) can be built only with SIP 
> v4,
>   but is it fine to use these projects together with PyQt5 that is 
> built
>   with newer sip?

Yes, assuming the exact version of SIP v4 is relatively recent. SIP v4 
only supports one (major/minor) version of the ABI. SIP v5 supports all 
versions of the ABI with the project specifying which version it wants 
to use.

> - Is there any migration guide how to switch to sipbuild for projects 
> that
>   are calling sip or sip5 executable from their custom build system? 
> For
>   example, Krita and QGIS are such projects, they are calling sip/sip5 
> from
>   their CMake-based build system.
> 
>   Ideally it would be nice to have a guide that would also cover other
>   aspects of updating to a newer SIP, such as API changes.

The main difference between SIP v4 and v5 is the *addition* of a build 
system, so it's not possible to write a guide to converting from 
something I know nothing about.

There may be improvements that can be made to help projects move to SIP 
v5, but it is up to those projects to identify them.

> - Will SIP v5 and SIP v6 be co-installable? Or both will use the same 
> Python
>   module name (sipbuild) and the same set of binaries (sip-build & 
> friends)?
>   I am asking this because I will have to continue shipping older 
> versions
>   of SIP for packages that are using sip5 legacy tool.

No, but one approach a project might take is to implement something 
similar to the sip5 legacy tool that uses the documented sipbuild API. 
I'd be happy to refine that API to make that easier - but I'm not 
providing a sip6 legacy tool.

> Sorry for many questions, but it's important for me to plan my work on 
> distro
> packages for SIP and PyQt.

No problem, ask as many questions as you want.

Phil


More information about the PyQt mailing list