Upstream update available: python3-attrs 24.2.0 → 26.1.0 #1

Open
opened 2026-04-28 01:43:39 +03:00 by sbelikov · 0 comments
Owner

Upstream update available: python3-attrs 24.2.026.1.0

Package

  • Package: python3-attrs
  • RPM name: python3-attrs
  • Branch: niceos-5.2
  • Current EVR: 24.2.0-1
  • Update class: major
  • Compare method: python_rpm
  • Update policy: leaf
  • Risk tags: standard

Upstream

Signals

  • Security-relevant keywords detected: False
  • Policy blocked: False
  • Policy reason: -
  • Labels: ai-summary, bot, needs-build, needs-triage, priority/high, update/major, upstream-update, upstream/pypi

NiceSOFT AI preliminary analysis

1. Краткий вывод

Предлагается обновление библиотеки python3-attrs с версии 24.2.0 до 26.1.0, что классифицируется как мажорное обновление (major update). В предоставленных данных отсутствуют конкретные списки изменений (changelog), информация о исправленных багах или уязвимостях, а также детали миграции API.

2. Риск для НАЙС.ОС

medium. Обновление является мажорным (версия 24.x -> 26.x), что потенциально влечет за собой изменения в публичном API или ABI. Поскольку пакет помечен как leaf (не является зависимостью других системных компонентов напрямую в контексте блокировки), риск ограничен приложениями, использующими эту библиотеку, но отсутствие детального описания изменений делает невозможной оценку совместимости без ручного анализа.

3. Security/CVE

Во входных данных отсутствуют признаки безопасности. Поле security_keywords_detected_by_script равно False, список CVE не предоставлен, а в тексте релиз-нот отсутствует упоминание исправлений уязвимостей.

4. ABI/API риск

Данных недостаточно для оценки риска. Указано, что это мажорное обновление, и в тексте релиз-нот приведены лишь общие примеры использования и маркетинговая информация. Нет информации о снятии поддержки старых версий API, изменении сигнатур функций или перемещении атрибутов, что критично для библиотек. Требуется ручной анализ diff между версиями 24.2.0 и 26.1.0.

5. Риск для RPM-сборки

Возможен риск неудачи сборки или тестирования (%check), если новые требования к Python или зависимости не отражены в текущем спецификации пакета. Также существует риск, что патчи, применяемые к старой версии, могут перестать работать или конфликтовать с кодом новой версии, если они касаются логики, измененной в мажорном обновлении.

6. Проверки мейнтейнера

  • Сравнить содержимое директорий 24.2.0 и 26.1.0 в репозитории upstream (PyPI/GitHub) для выявления изменений в публичном API.
  • Проверить наличие в релиз-нотах предупреждений о совместимости (breaking changes).
  • Протестировать сборку пакета с новой версией в изолированной среде.
  • Запустить %check секцию spec-файла с установленной новой версией.
  • Проверить все пакеты в дистрибутиве, зависящие от python3-attrs, на предмет потенциальных проблем при обновлении.

7. Рекомендация

blocked manual review

8. Основание рекомендации

Обновление классифицировано как мажорное (major), что несет высокий риск нарушения обратной совместимости (ABI/API breaking changes). Отсутствие детального changelog во входных данных и невозможность автоматической проверки совместимости требуют обязательного ручного анализа мейнтейнером перед принятием решения об обновлении. Автоматическое обновление запрещено политикой для мажорных обновлений библиотек.

Upstream release notes / description

Classes Without Boilerplate

attrs

attrs is the Python package that will bring back the joy of writing classes by relieving you from the drudgery of implementing object protocols (aka dunder methods).
Trusted by NASA for Mars missions since 2020!

Its main goal is to help you to write concise and correct software without slowing down your code.

Sponsors

attrs would not be possible without our amazing sponsors.
Especially those generously supporting us at the The Organization tier and higher:







Please consider joining them to help make attrs’s maintenance more sustainable!

Example

attrs gives you a class decorator and a way to declaratively define the attributes on that class:

>>> from attrs import asdict, define, make_class, Factory

>>> @define
... class SomeClass:
...     a_number: int = 42
...     list_of_numbers: list[int] = Factory(list)
...
...     def hard_math(self, another_number):
...         return self.a_number + sum(self.list_of_numbers) * another_number


>>> sc = SomeClass(1, [1, 2, 3])
>>> sc
SomeClass(a_number=1, list_of_numbers=[1, 2, 3])

>>> sc.hard_math(3)
19
>>> sc == SomeClass(1, [1, 2, 3])
True
>>> sc != SomeClass(2, [3, 2, 1])
True

>>> asdict(sc)
{'a_number': 1, 'list_of_numbers': [1, 2, 3]}

>>> SomeClass()
SomeClass(a_number=42, list_of_numbers=[])

>>> C = make_class("C", ["a", "b"])
>>> C("foo", "bar")
C(a='foo', b='bar')

After declaring your attributes, attrs gives you:

  • a concise and explicit overview of the class's attributes,
  • a nice human-readable __repr__,
  • equality-checking methods,
  • an initializer,
  • and much more,

without writing dull boilerplate code again and again and without runtime performance penalties.


This example uses attrs's modern APIs that have been introduced in version 20.1.0, and the attrs package import name that has been added in version 21.3.0.
The classic APIs (@attr.s, attr.ib, plus their serious-business

NiceOS maintainer checklist

  • Confirm that the detected version is a stable upstream release.
  • Check upstream changelog for security fixes, ABI/API changes and build-system changes.
  • Check ABI/API compatibility and reverse dependencies.
  • Download source into NiceOS lookaside storage.
  • Update Version and related fields in SPECS/*.spec only if policy allows it.
  • Regenerate SOURCES/sources.lock.json, manifests, metadata and SBOM.
  • Build SRPM/RPM in a clean NiceOS buildroot.
  • Run package smoke tests.
  • Link PR/build logs and close this issue after update or triage.

Bot metadata

  • Tool: niceos_upstream_monitor.py 1.4
  • Generated at: 2026-04-27T22:43:39Z
<!-- niceos-upstream-monitor:fingerprint=upstream-update:python3-attrs:26.1.0 --> <!-- niceos-upstream-monitor:package=python3-attrs --> <!-- niceos-upstream-monitor:current=24.2.0 --> <!-- niceos-upstream-monitor:latest=26.1.0 --> # Upstream update available: `python3-attrs` `24.2.0` → `26.1.0` ## Package - Package: `python3-attrs` - RPM name: `python3-attrs` - Branch: `niceos-5.2` - Current EVR: `24.2.0-1` - Update class: `major` - Compare method: `python_rpm` - Update policy: `leaf` - Risk tags: `standard` ## Upstream - Upstream type: `pypi` - Upstream project: `-` - Upstream URL: https://files.pythonhosted.org/packages/fc/0f/aafca9af9315aee06a89ffde799a10a582fe8de76c563ee80bbcdc08b3fb/attrs-24.2.0.tar.gz - Detected version: `26.1.0` - Tag/release: `26.1.0` - Source: `pypi_json` - Published: `2026-03-19T14:22:25.026315Z` - Release URL: https://pypi.org/project/attrs/ - Source URL: https://files.pythonhosted.org/packages/9a/8e/82a0fe20a541c03148528be8cac2408564a6c9a0cc7e9171802bc1d26985/attrs-26.1.0.tar.gz - Pre-release: `False` ## Signals - Security-relevant keywords detected: `False` - Policy blocked: `False` - Policy reason: `-` - Labels: `ai-summary, bot, needs-build, needs-triage, priority/high, update/major, upstream-update, upstream/pypi` ## NiceSOFT AI preliminary analysis ### 1. Краткий вывод Предлагается обновление библиотеки `python3-attrs` с версии 24.2.0 до 26.1.0, что классифицируется как мажорное обновление (major update). В предоставленных данных отсутствуют конкретные списки изменений (changelog), информация о исправленных багах или уязвимостях, а также детали миграции API. ### 2. Риск для НАЙС.ОС **medium**. Обновление является мажорным (версия 24.x -> 26.x), что потенциально влечет за собой изменения в публичном API или ABI. Поскольку пакет помечен как `leaf` (не является зависимостью других системных компонентов напрямую в контексте блокировки), риск ограничен приложениями, использующими эту библиотеку, но отсутствие детального описания изменений делает невозможной оценку совместимости без ручного анализа. ### 3. Security/CVE Во входных данных отсутствуют признаки безопасности. Поле `security_keywords_detected_by_script` равно `False`, список CVE не предоставлен, а в тексте релиз-нот отсутствует упоминание исправлений уязвимостей. ### 4. ABI/API риск Данных недостаточно для оценки риска. Указано, что это мажорное обновление, и в тексте релиз-нот приведены лишь общие примеры использования и маркетинговая информация. Нет информации о снятии поддержки старых версий API, изменении сигнатур функций или перемещении атрибутов, что критично для библиотек. Требуется ручной анализ diff между версиями 24.2.0 и 26.1.0. ### 5. Риск для RPM-сборки Возможен риск неудачи сборки или тестирования (`%check`), если новые требования к Python или зависимости не отражены в текущем спецификации пакета. Также существует риск, что патчи, применяемые к старой версии, могут перестать работать или конфликтовать с кодом новой версии, если они касаются логики, измененной в мажорном обновлении. ### 6. Проверки мейнтейнера - Сравнить содержимое директорий `24.2.0` и `26.1.0` в репозитории upstream (PyPI/GitHub) для выявления изменений в публичном API. - Проверить наличие в релиз-нотах предупреждений о совместимости (breaking changes). - Протестировать сборку пакета с новой версией в изолированной среде. - Запустить `%check` секцию spec-файла с установленной новой версией. - Проверить все пакеты в дистрибутиве, зависящие от `python3-attrs`, на предмет потенциальных проблем при обновлении. ### 7. Рекомендация blocked manual review ### 8. Основание рекомендации Обновление классифицировано как мажорное (major), что несет высокий риск нарушения обратной совместимости (ABI/API breaking changes). Отсутствие детального changelog во входных данных и невозможность автоматической проверки совместимости требуют обязательного ручного анализа мейнтейнером перед принятием решения об обновлении. Автоматическое обновление запрещено политикой для мажорных обновлений библиотек. ## Upstream release notes / description Classes Without Boilerplate <p align="center"> <a href="https://www.attrs.org/"> <img src="https://raw.githubusercontent.com/python-attrs/attrs/main/docs/_static/attrs_logo.svg" width="35%" alt="attrs" /> </a> </p> *attrs* is the Python package that will bring back the **joy** of **writing classes** by relieving you from the drudgery of implementing object protocols (aka [dunder methods](https://www.attrs.org/en/latest/glossary.html#term-dunder-methods)). Trusted by NASA for [Mars missions since 2020](https://github.com/readme/featured/nasa-ingenuity-helicopter)! Its main goal is to help you to write **concise** and **correct** software without slowing down your code. ## Sponsors *attrs* would not be possible without our [amazing sponsors](https://github.com/sponsors/hynek). Especially those generously supporting us at the *The Organization* tier and higher: <!-- sponsor-break-begin --> <p align="center"> <!-- [[[cog import pathlib, tomllib for sponsor in tomllib.loads(pathlib.Path("pyproject.toml").read_text())["tool"]["sponcon"]["sponsors"]: print(f'<a href="{sponsor["url"]}"><img title="{sponsor["title"]}" src="https://www.attrs.org/en/26.1.0/_static/sponsors/{sponsor["img"]}" width="190" /></a>') ]]] --> <a href="https://www.variomedia.de/"><img title="Variomedia AG" src="https://www.attrs.org/en/26.1.0/_static/sponsors/Variomedia.svg" width="190" /></a> <a href="https://tidelift.com/?utm_source=lifter&utm_medium=referral&utm_campaign=hynek"><img title="Tidelift" src="https://www.attrs.org/en/26.1.0/_static/sponsors/Tidelift.svg" width="190" /></a> <a href="https://kraken.tech/"><img title="Kraken Tech" src="https://www.attrs.org/en/26.1.0/_static/sponsors/Kraken.svg" width="190" /></a> <a href="https://privacy-solutions.org/"><img title="Privacy Solutions" src="https://www.attrs.org/en/26.1.0/_static/sponsors/Privacy-Solutions.svg" width="190" /></a> <a href="https://filepreviews.io/"><img title="FilePreviews" src="https://www.attrs.org/en/26.1.0/_static/sponsors/FilePreviews.svg" width="190" /></a> <a href="https://www.testmuai.com/?utm_medium=sponsor&utm_source=structlog"><img title="TestMu AI" src="https://www.attrs.org/en/26.1.0/_static/sponsors/TestMu-AI.svg" width="190" /></a> <a href="https://polar.sh/"><img title="Polar" src="https://www.attrs.org/en/26.1.0/_static/sponsors/Polar.svg" width="190" /></a> <!-- [[[end]]] --> </p> <!-- sponsor-break-end --> <p align="center"> <strong>Please consider <a href="https://github.com/sponsors/hynek">joining them</a> to help make <em>attrs</em>’s maintenance more sustainable!</strong> </p> <!-- teaser-end --> ## Example *attrs* gives you a class decorator and a way to declaratively define the attributes on that class: <!-- code-begin --> ```pycon >>> from attrs import asdict, define, make_class, Factory >>> @define ... class SomeClass: ... a_number: int = 42 ... list_of_numbers: list[int] = Factory(list) ... ... def hard_math(self, another_number): ... return self.a_number + sum(self.list_of_numbers) * another_number >>> sc = SomeClass(1, [1, 2, 3]) >>> sc SomeClass(a_number=1, list_of_numbers=[1, 2, 3]) >>> sc.hard_math(3) 19 >>> sc == SomeClass(1, [1, 2, 3]) True >>> sc != SomeClass(2, [3, 2, 1]) True >>> asdict(sc) {'a_number': 1, 'list_of_numbers': [1, 2, 3]} >>> SomeClass() SomeClass(a_number=42, list_of_numbers=[]) >>> C = make_class("C", ["a", "b"]) >>> C("foo", "bar") C(a='foo', b='bar') ``` After *declaring* your attributes, *attrs* gives you: - a concise and explicit overview of the class's attributes, - a nice human-readable `__repr__`, - equality-checking methods, - an initializer, - and much more, *without* writing dull boilerplate code again and again and *without* runtime performance penalties. --- This example uses *attrs*'s modern APIs that have been introduced in version 20.1.0, and the *attrs* package import name that has been added in version 21.3.0. The classic APIs (`@attr.s`, `attr.ib`, plus their serious-business ## NiceOS maintainer checklist - [ ] Confirm that the detected version is a stable upstream release. - [ ] Check upstream changelog for security fixes, ABI/API changes and build-system changes. - [ ] Check ABI/API compatibility and reverse dependencies. - [ ] Download source into NiceOS lookaside storage. - [ ] Update `Version` and related fields in `SPECS/*.spec` only if policy allows it. - [ ] Regenerate `SOURCES/sources.lock.json`, manifests, metadata and SBOM. - [ ] Build SRPM/RPM in a clean NiceOS buildroot. - [ ] Run package smoke tests. - [ ] Link PR/build logs and close this issue after update or triage. ## Bot metadata - Tool: `niceos_upstream_monitor.py 1.4` - Generated at: `2026-04-27T22:43:39Z`
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
rpms/python3-attrs#1
No description provided.