Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-extra-platforms for 
openSUSE:Factory checked in at 2026-04-28 11:58:11
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-extra-platforms (Old)
 and      /work/SRC/openSUSE:Factory/.python-extra-platforms.new.11940 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-extra-platforms"

Tue Apr 28 11:58:11 2026 rev:22 rq:1349595 version:12.0.1

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/python-extra-platforms/python-extra-platforms.changes
    2026-04-26 21:15:02.782569859 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-extra-platforms.new.11940/python-extra-platforms.changes
 2026-04-28 12:02:09.119918304 +0200
@@ -1,0 +2,11 @@
+Mon Apr 27 06:35:25 UTC 2026 - Johannes Kastl 
<[email protected]>
+
+- update to 12.0.1:
+  * Defer logging and warnings imports out of the cold-load path: the
+    stdlib logging import pulls in traceback (and _colorize on Python
+    3.14+), which dominates import time on slow architectures like
+    i586. Closes {issue}494
+  * Loosen the test_import_time threshold from 500 ms to 1000 ms as a
+    safety margin for slower architectures.
+
+-------------------------------------------------------------------

Old:
----
  extra_platforms-12.0.0.tar.gz

New:
----
  extra_platforms-12.0.1.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-extra-platforms.spec ++++++
--- /var/tmp/diff_new_pack.X7pD0z/_old  2026-04-28 12:02:09.619939018 +0200
+++ /var/tmp/diff_new_pack.X7pD0z/_new  2026-04-28 12:02:09.619939018 +0200
@@ -23,7 +23,7 @@
 %bcond_with libalternatives
 %endif
 Name:           python-extra-platforms
-Version:        12.0.0
+Version:        12.0.1
 Release:        0
 Summary:        Detect platforms and group them by family
 License:        Apache-2.0

++++++ extra_platforms-12.0.0.tar.gz -> extra_platforms-12.0.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/extra-platforms-12.0.0/changelog.md 
new/extra-platforms-12.0.1/changelog.md
--- old/extra-platforms-12.0.0/changelog.md     2026-04-24 14:47:13.000000000 
+0200
+++ new/extra-platforms-12.0.1/changelog.md     2026-04-26 22:02:16.000000000 
+0200
@@ -1,5 +1,10 @@
 # Changelog
 
+## [`12.0.1` 
(2026-04-26)](https://github.com/kdeldycke/extra-platforms/compare/v12.0.0...v12.0.1)
+
+- Defer `logging` and `warnings` imports out of the cold-load path: the stdlib 
`logging` import pulls in `traceback` (and `_colorize` on Python 3.14+), which 
dominates import time on slow architectures like i586. Closes {issue}`494`
+- Loosen the `test_import_time` threshold from 500 ms to 1000 ms as a safety 
margin for slower architectures.
+
 ## [`12.0.0` 
(2026-04-24)](https://github.com/kdeldycke/extra-platforms/compare/v11.1.0...v12.0.0)
 
 - Add `SH` (Bourne Shell) trait and `is_sh()` detection function.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/extra-platforms-12.0.0/citation.cff 
new/extra-platforms-12.0.1/citation.cff
--- old/extra-platforms-12.0.0/citation.cff     2026-04-24 14:47:13.000000000 
+0200
+++ new/extra-platforms-12.0.1/citation.cff     2026-04-26 22:02:16.000000000 
+0200
@@ -1,4 +1,4 @@
-cff-version: 12.0.0
+cff-version: 12.0.1
 title: "Extra Platforms"
 message: "If you use this software, please cite it as below."
 type: software
@@ -8,6 +8,6 @@
     email: [email protected]
     orcid: "https://orcid.org/0000-0001-9748-9014";
 doi: 10.5281/zenodo.13341712
-version: 12.0.0
-date-released: 2026-04-24
+version: 12.0.1
+date-released: 2026-04-26
 url: "https://github.com/kdeldycke/extra-platforms";
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/extra-platforms-12.0.0/docs/cli.md 
new/extra-platforms-12.0.1/docs/cli.md
--- old/extra-platforms-12.0.0/docs/cli.md      2026-04-24 14:47:13.000000000 
+0200
+++ new/extra-platforms-12.0.1/docs/cli.md      2026-04-26 22:02:16.000000000 
+0200
@@ -1,5 +1,8 @@
 # {octicon}`terminal` CLI
 
+```{py:currentmodule} extra_platforms
+```
+
 The `extra-platforms` command-line tool detects and reports the architecture, 
platform, shell, terminal, CI system, and agent of the current environment.
 
 ## Invocation
@@ -112,17 +115,17 @@
 
 Each trait section contains:
 
-| Field       | Description                                                    
             |
-| ----------- | 
--------------------------------------------------------------------------- |
-| `id`        | Unique trait identifier                                        
             |
-| `name`      | Human-readable name                                            
             |
-| `icon`      | Single-glyph icon                                              
             |
-| `url`       | Reference URL                                                  
             |
-| `current`   | Whether this trait matches the current environment             
             |
-| `aliases`   | Alternative IDs for this trait                                 
             |
-| `symbol`    | Uppercase symbol for Python imports (`from extra_platforms 
import AARCH64`) |
-| `detection` | Detection function name (`from extra_platforms import 
is_aarch64`)          |
-| `groups`    | Groups this trait belongs to                                   
             |
+| Field                                       | Description                    
                                             |
+| ------------------------------------------- | 
--------------------------------------------------------------------------- |
+| {attr}`id <Trait.id>`                       | Unique trait identifier        
                                             |
+| {attr}`name <Trait.name>`                   | Human-readable name            
                                             |
+| {attr}`icon <Trait.icon>`                   | Single-glyph icon              
                                             |
+| {attr}`url <Trait.url>`                     | Reference URL                  
                                             |
+| {attr}`current <Trait.current>`             | Whether this trait matches the 
current environment                          |
+| {attr}`aliases <Trait.aliases>`             | Alternative IDs for this trait 
                                             |
+| {attr}`symbol <Trait.symbol_id>`            | Uppercase symbol for Python 
imports (`from extra_platforms import AARCH64`) |
+| {attr}`detection <Trait.detection_func_id>` | Detection function name (`from 
extra_platforms import is_aarch64`)          |
+| {attr}`groups <Trait.groups>`               | Groups this trait belongs to   
                                             |
 
 Trait-specific fields (like `machine`, `version`, `codename`) are included 
when available.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/extra-platforms-12.0.0/docs/trait.md 
new/extra-platforms-12.0.1/docs/trait.md
--- old/extra-platforms-12.0.0/docs/trait.md    2026-04-24 14:47:13.000000000 
+0200
+++ new/extra-platforms-12.0.1/docs/trait.md    2026-04-26 22:02:16.000000000 
+0200
@@ -282,6 +282,7 @@
 ```{eval-rst}
 .. autoclass:: extra_platforms.Trait
    :members:
+   :inherited-members:
    :private-members:
    :undoc-members:
    :show-inheritance:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/extra-platforms-12.0.0/extra_platforms/__init__.py 
new/extra-platforms-12.0.1/extra_platforms/__init__.py
--- old/extra-platforms-12.0.0/extra_platforms/__init__.py      2026-04-24 
14:47:13.000000000 +0200
+++ new/extra-platforms-12.0.1/extra_platforms/__init__.py      2026-04-26 
22:02:16.000000000 +0200
@@ -399,7 +399,7 @@
 """
 
 
-__version__ = "12.0.0"
+__version__ = "12.0.1"
 
 
 def _initialize_group_detection_functions() -> list[str]:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/extra-platforms-12.0.0/extra_platforms/detection.py 
new/extra-platforms-12.0.1/extra_platforms/detection.py
--- old/extra-platforms-12.0.0/extra_platforms/detection.py     2026-04-24 
14:47:13.000000000 +0200
+++ new/extra-platforms-12.0.1/extra_platforms/detection.py     2026-04-26 
22:02:16.000000000 +0200
@@ -73,9 +73,6 @@
 
 from __future__ import annotations
 
-import logging
-
-_logger = logging.getLogger(__name__)
 import os
 import platform
 import sys
@@ -153,10 +150,16 @@
     msg = f"Unrecognized {trait_name}: 
{_unrecognized_message(report=expected)}"
     if strict:
         raise SystemError(msg)
+    # Defer logging import to keep cold module load fast: stdlib logging pulls
+    # in traceback (and in 3.14+, _colorize), which dominates import time on
+    # slow architectures like i586. See issue #494.
+    import logging
+
+    logger = logging.getLogger(__name__)
     if expected:
-        _logger.warning(msg)
+        logger.warning(msg)
     else:
-        _logger.info(msg)
+        logger.info(msg)
 
 
 # =============================================================================
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/extra-platforms-12.0.0/extra_platforms/trait.py 
new/extra-platforms-12.0.1/extra_platforms/trait.py
--- old/extra-platforms-12.0.0/extra_platforms/trait.py 2026-04-24 
14:47:13.000000000 +0200
+++ new/extra-platforms-12.0.1/extra_platforms/trait.py 2026-04-26 
22:02:16.000000000 +0200
@@ -24,7 +24,6 @@
 from __future__ import annotations
 
 import platform
-import warnings
 from abc import ABC, abstractmethod
 from dataclasses import dataclass, field
 from functools import cached_property, lru_cache
@@ -525,6 +524,8 @@
 
     for trait in ALL_TRAITS:
         if id_ in trait.aliases:
+            import warnings
+
             warnings.warn(
                 f"'{id_}' is an alias for '{trait.id}'. "
                 f"Use the canonical ID '{trait.id}' instead.",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/extra-platforms-12.0.0/pyproject.toml 
new/extra-platforms-12.0.1/pyproject.toml
--- old/extra-platforms-12.0.0/pyproject.toml   2026-04-24 14:47:13.000000000 
+0200
+++ new/extra-platforms-12.0.1/pyproject.toml   2026-04-26 22:02:16.000000000 
+0200
@@ -5,7 +5,7 @@
 [project]
 # Docs: https://packaging.python.org/en/latest/guides/writing-pyproject-toml/
 name = "extra-platforms"
-version = "12.0.0"
+version = "12.0.1"
 description = "🔎 Detect architectures, platforms, shells, terminals, CI 
systems and agents, grouped by family"
 readme = "readme.md"
 keywords = [
@@ -261,7 +261,7 @@
 [project.urls]
 "Changelog" = 
"https://github.com/kdeldycke/extra-platforms/blob/main/changelog.md";
 "Documentation" = "https://kdeldycke.github.io/extra-platforms";
-"Download" = 
"https://github.com/kdeldycke/extra-platforms/releases/tag/v12.0.0";
+"Download" = 
"https://github.com/kdeldycke/extra-platforms/releases/tag/v12.0.1";
 "Funding" = "https://github.com/sponsors/kdeldycke";
 "Homepage" = "https://github.com/kdeldycke/extra-platforms";
 "Issues" = "https://github.com/kdeldycke/extra-platforms/issues";
@@ -394,7 +394,7 @@
 report.precision = 2
 
 [tool.bumpversion]
-current_version = "12.0.0"
+current_version = "12.0.1"
 allow_dirty = true
 ignore_missing_files = true
 # Parse versions with an optional .devN suffix (PEP 440).
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/extra-platforms-12.0.0/tests/test_root.py 
new/extra-platforms-12.0.1/tests/test_root.py
--- old/extra-platforms-12.0.0/tests/test_root.py       2026-04-24 
14:47:13.000000000 +0200
+++ new/extra-platforms-12.0.1/tests/test_root.py       2026-04-26 
22:02:16.000000000 +0200
@@ -671,12 +671,12 @@
     Spawns a fresh subprocess to measure cold import time, avoiding
     ``sys.modules`` cache effects from pytest's own imports.
 
-    The 500 ms threshold is deliberately loose to absorb CI runner variability
-    on shared VMs and slower architectures (e.g., i586 where cold import takes
-    ~340 ms). This will not catch small drifts, but reliably prevents
-    reintroducing expensive import-time operations (e.g., the ~120 ms
-    regression from redundant AST parsing that was fixed by caching in
-    ``_docstrings.py``).
+    The 1000 ms threshold is deliberately loose to absorb CI runner variability
+    on shared VMs and slower architectures (like i586, where cold import
+    measured ~340 ms in 11.x and ~613 ms in 12.0.0). This will not catch small
+    drifts, but reliably prevents reintroducing expensive import-time
+    operations (like the ~120 ms regression from redundant AST parsing that
+    was fixed by caching in ``_docstrings.py``).
     """
     result = subprocess.run(
         [
@@ -690,7 +690,7 @@
         check=True,
     )
     elapsed_ms = float(result.stdout.strip()) * 1000
-    assert elapsed_ms < 500, f"Import took {elapsed_ms:.1f} ms, expected < 500 
ms"
+    assert elapsed_ms < 1000, f"Import took {elapsed_ms:.1f} ms, expected < 
1000 ms"
 
 
 def test_invalidate_caches_clears_trait_current_property():
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/extra-platforms-12.0.0/uv.lock 
new/extra-platforms-12.0.1/uv.lock
--- old/extra-platforms-12.0.0/uv.lock  2026-04-24 14:47:13.000000000 +0200
+++ new/extra-platforms-12.0.1/uv.lock  2026-04-26 22:02:16.000000000 +0200
@@ -7,11 +7,11 @@
 ]
 
 [options]
-exclude-newer = "2026-04-17T12:00:32.701611193Z"
+exclude-newer = "2026-04-17T12:28:39.528880223Z"
 exclude-newer-span = "P1W"
 
 [options.exclude-newer-package]
-repomatic = { timestamp = "2026-04-24T12:00:32.701617846Z", span = "PT0S" }
+repomatic = { timestamp = "2026-04-24T12:28:39.52888903Z", span = "PT0S" }
 
 [[package]]
 name = "accessible-pygments"
@@ -607,7 +607,7 @@
 
 [[package]]
 name = "extra-platforms"
-version = "12.0.0.dev0"
+version = "12.0.1.dev0"
 source = { editable = "." }
 
 [package.optional-dependencies]

Reply via email to