[neon/forks/sip6/Neon/release] /: New upstream version 6.14.0

Dmitry Shachnev null at kde.org
Wed Dec 3 06:39:48 GMT 2025


Git commit f7b528f4d76de3d9ffb1416c045f081978c751c4 by Dmitry Shachnev.
Committed on 23/10/2025 at 18:28.
Pushed by carlosdem into branch 'Neon/release'.

New upstream version 6.14.0

M  +3    -3    .git_archival.txt
M  +7    -0    docs/command_line_tools.rst
M  +1    -1    docs/conf.py
M  +14   -0    docs/releases.md
M  +20   -0    examples/package/core/README
M  +20   -0    examples/package/extras/README
M  +8    -7    sipbuild/buildable.py
M  +8    -1    sipbuild/builder.py
M  +4    -0    sipbuild/generator/resolver/resolver.py
M  +2    -2    sipbuild/project.py

https://invent.kde.org/neon/forks/sip6/-/commit/f7b528f4d76de3d9ffb1416c045f081978c751c4

diff --git a/.git_archival.txt b/.git_archival.txt
index 972908a..686ea38 100644
--- a/.git_archival.txt
+++ b/.git_archival.txt
@@ -1,3 +1,3 @@
-node: bc5fb1968bf3b6177fda61308f0a4ed2e58472c2
-node-date: 2025-10-10T16:26:04+01:00
-describe-name: 6.13.1
+node: 0e24a7f10b5aa588dbe2656d1450f9a919931393
+node-date: 2025-10-23T16:48:04+01:00
+describe-name: 6.14.0
diff --git a/docs/command_line_tools.rst b/docs/command_line_tools.rst
index fff56c0..1876dbb 100644
--- a/docs/command_line_tools.rst
+++ b/docs/command_line_tools.rst
@@ -473,6 +473,13 @@ The full set of command line options is:
 
     Display the SIP version number.
 
+.. option:: --abi-version M[.N]
+
+    The version number of the ABI of the :mod:`sip` module to target is
+    ``M.N``.  By default the latest major version is used.  If the minor
+    version is not specified then the latest minor version of the major version
+    is used.
+
 .. option:: --deprecations-are-errors
 
     The use of any deprecated feature is handled as an error rather than a
diff --git a/docs/conf.py b/docs/conf.py
index 90d7345..f96dca2 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -13,7 +13,7 @@ project = 'sip'
 copyright = '{0} Phil Thompson <phil at riverbankcomputing.com>'.format(
         date.today().year)
 author = 'Phil Thompson'
-version = 'v6.13.1'
+version = 'v6.14.0'
 
 
 # -- General configuration ---------------------------------------------------
diff --git a/docs/releases.md b/docs/releases.md
index 40f3729..a6e5164 100644
--- a/docs/releases.md
+++ b/docs/releases.md
@@ -1,5 +1,19 @@
 # Release Notes
 
+## v6.14.0
+
+### Specification of target ABI version
+
+`sip-sdist` now has a `--abi-version` command line option to be used if a value
+is not specified in `pyproject.toml`.
+
+### Bug fixes
+
+- Bugs in the handling of the default target ABI have been fixed.
+- Fixed a regression in v6.13.1 in the handling of composite modules.  Resolves
+  [#95](https://github.com/Python-SIP/sip/issues/95)
+
+
 ## v6.13.1
 
 ### Bug fixes
diff --git a/examples/package/core/README b/examples/package/core/README
index 76ee03b..da4687c 100644
--- a/examples/package/core/README
+++ b/examples/package/core/README
@@ -1,2 +1,22 @@
 This is the 'root' project of the examples package (i.e. it does not import any
 other module in the package (other than the examples.sip module).
+
+To create and install the extension module, run:
+
+    sip-install
+or
+    pip install .
+
+To create and install an sdist, run::
+
+    sip-sdist
+    pip install examples_core-0.1.tar.gz
+
+To create and install a wheel, run::
+
+    sip-wheel
+    pip install examples_core-0.1-*.whl
+
+To uninstall the extension module, run:
+
+    pip uninstall examples_core
diff --git a/examples/package/extras/README b/examples/package/extras/README
index 5edeec6..24a8965 100644
--- a/examples/package/extras/README
+++ b/examples/package/extras/README
@@ -1,3 +1,23 @@
 This is a separate project to the 'examples-core' project (possibly with a
 different maintainer) that extends the 'extras' bindings to the 'example'
 package.
+
+To create and install the extension module, run:
+
+    sip-install
+or
+    pip install .
+
+To create and install an sdist, run::
+
+    sip-sdist
+    pip install examples_extras-0.1.tar.gz
+
+To create and install a wheel, run::
+
+    sip-wheel
+    pip install examples_extras-0.1-*.whl
+
+To uninstall the extension module, run:
+
+    pip uninstall examples_extras
diff --git a/sipbuild/buildable.py b/sipbuild/buildable.py
index dd8e324..f32a3dc 100644
--- a/sipbuild/buildable.py
+++ b/sipbuild/buildable.py
@@ -183,14 +183,15 @@ class BuildableBindings(BuildableModule):
 
         with open(config_path, 'w') as cf:
             sip_version_str = SIP_VERSION_STR if self.project.version_info else ''
+            abi_major, abi_minor = self.project.target_abi
             tags = ', '.join(['"{}"'.format(t) for t in bindings.tags])
             disabled = ', '.join(
                     ['"{}"'.format(f) for f in bindings.disabled_features])
 
-            cf.write("# Automatically generated configuration for {0}.\n".format(self.fq_name))
-            cf.write('''
-sip-version = "{}"
-sip-abi-version = "{}"
-module-tags = [{}]
-module-disabled-features = [{}]
-'''.format(sip_version_str, self.project.abi_version, tags, disabled))
+            cf.write(f"# Automatically generated configuration for {self.fq_name}.\n")
+            cf.write(f'''
+sip-version = "{sip_version_str}"
+sip-abi-version = "{abi_major}.{abi_minor}"
+module-tags = [{tags}]
+module-disabled-features = [{disabled}]
+''')
diff --git a/sipbuild/builder.py b/sipbuild/builder.py
index 4f6ad30..c39970a 100644
--- a/sipbuild/builder.py
+++ b/sipbuild/builder.py
@@ -14,7 +14,7 @@ from .abstract_builder import AbstractBuilder
 from .distinfo import write_metadata
 from .exceptions import UserException
 from .installable import Installable
-from .module import copy_sip_h, copy_sip_pyi
+from .module import copy_sip_h, copy_sip_pyi, get_latest_version
 from .py_versions import OLDEST_SUPPORTED_MINOR
 
 
@@ -83,6 +83,13 @@ class Builder(AbstractBuilder):
 
                 shutil.copy2(s_fn_path, d_fn_path)
 
+        # If we don't know the target ABI at this point then default to the
+        # latest version.
+        if project.target_abi is None:
+            major_version = get_latest_version()
+            minor_version = get_latest_version(major_version)
+            project.target_abi = (major_version, minor_version)
+
         # Create the PKG-INFO file.  This is assumed to be identical to the
         # .dist-info/METADATA file.
         write_metadata(project.metadata, project.get_requires_dists(),
diff --git a/sipbuild/generator/resolver/resolver.py b/sipbuild/generator/resolver/resolver.py
index 9dbc2e9..492b2e3 100644
--- a/sipbuild/generator/resolver/resolver.py
+++ b/sipbuild/generator/resolver/resolver.py
@@ -38,6 +38,10 @@ def resolve(spec, modules):
         # Set the base name of the module.  This is done for efficiency.
         mod.py_name = mod.fq_py_name.name.split('.')[-1]
 
+    # There is nothing else that needs doing for composite modules.
+    if spec.is_composite:
+        return
+
     # Set the default meta-type for the main module if it doesn't have one
     # explicitly set.
     if spec.module.default_metatype is None:
diff --git a/sipbuild/project.py b/sipbuild/project.py
index ed8ff43..caedef0 100644
--- a/sipbuild/project.py
+++ b/sipbuild/project.py
@@ -108,8 +108,8 @@ class Project(AbstractProject, Configurable):
                 help="enable verbose progress messages"),
         Option('name', help="the name used in sdist and wheel file names",
                 metavar="NAME", tools=['sdist', 'wheel']),
-        Option('abi_version', help="The ABI to generate code for",
-                metavar="M[.N]"),
+        Option('abi_version', help="the ABI to generate code for",
+                metavar="M[.N]", tools=['build', 'install', 'sdist', 'wheel']),
         Option('build_dir', help="the build directory", metavar="DIR"),
         Option('build_tag', help="the build tag to be used in the wheel name",
                 metavar="TAG", tools=['wheel']),



More information about the Neon-commits mailing list