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]