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