Upstream update available: python3-msgpack 1.1.1 → 1.1.2 #1

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

Upstream update available: python3-msgpack 1.1.11.1.2

Package

  • Package: python3-msgpack
  • RPM name: python3-msgpack
  • Branch: niceos-5.2
  • Current EVR: 1.1.1-1
  • Update class: patch
  • 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/medium, update/patch, upstream-update, upstream/pypi

NiceSOFT AI preliminary analysis

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

Предлагается обновление библиотеки сериализации python3-msgpack с версии 1.1.1 до 1.1.2. Обновление классифицируется как патч (patch), не содержит обнаруженных уязвимостей безопасности и не блокируется политикой дистрибутива.

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

Оценка: low.
Обоснование: Обновление помечено как patch и имеет тег standard, что указывает на исправление ошибок или мелких улучшений без изменения функциональности. Отсутствие флагов безопасности и блокировки политики снижает вероятность критических последствий.

3. Security/CVE

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

4. ABI/API риск

В предоставленных данных отсутствует информация о конкретных изменениях в сигнатурах функций, структуре модулей или бинарном интерфейсе между версиями 1.1.1 и 1.1.2. Для точной оценки требуется ручной анализ diff исходного кода или changelog проекта upstream.

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

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

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

  • Сравнить diff исходного кода между 1.1.1 и 1.1.2 на предмет изменений в публичном API.
  • Проверить наличие новых зависимостей в файле setup.py или pyproject.toml (если применимо).
  • Запустить локальную сборку RPM с новым пакетом.
  • Выполнить тесты %check из спецификации пакета.
  • Убедиться, что файл msgpack/_cmsgpack.c (или аналогичный) не изменился критически, если используется C-расширение.

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

update candidate

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

Обновление классифицировано как безопасное патч-обновление (update_class: patch, risk_tags: standard) без признаков уязвимостей. Стандартная процедура для таких обновлений предполагает создание кандидата на обновление после выполнения базовых проверок сборки и тестов, так как автоматическое применение не рекомендуется для любых обновлений toolchain и библиотек, но ручной барьер для патчей минимален.

Upstream release notes / description

MessagePack serializer

MessagePack for Python

Build Status
Documentation Status

What is this?

MessagePack is an efficient binary serialization format.
It lets you exchange data among multiple languages like JSON.
But it's faster and smaller.
This package provides CPython bindings for reading and writing MessagePack data.

Install

$ pip install msgpack

Pure Python implementation

The extension module in msgpack (msgpack._cmsgpack) does not support PyPy.

But msgpack provides a pure Python implementation (msgpack.fallback) for PyPy.

Windows

If you can't use a binary distribution, you need to install Visual Studio
or the Windows SDK on Windows.
Without the extension, the pure Python implementation on CPython runs slowly.

How to use

One-shot pack & unpack

Use packb for packing and unpackb for unpacking.
msgpack provides dumps and loads as aliases for compatibility with
json and pickle.

pack and dump pack to a file-like object.
unpack and load unpack from a file-like object.

>>> import msgpack
>>> msgpack.packb([1, 2, 3])
'\x93\x01\x02\x03'
>>> msgpack.unpackb(_)
[1, 2, 3]

Read the docstring for options.

Streaming unpacking

Unpacker is a "streaming unpacker". It unpacks multiple objects from one
stream (or from bytes provided through its feed method).

import msgpack
from io import BytesIO

buf = BytesIO()
for i in range(100):
   buf.write(msgpack.packb(i))

buf.seek(0)

unpacker = msgpack.Unpacker(buf)
for unpacked in unpacker:
    print(unpacked)

Packing/unpacking of custom data types

It is also possible to pack/unpack custom data types. Here is an example for
datetime.datetime.

import datetime
import msgpack

useful_dict = {
    "id": 1,
    "created": datetime.datetime.now(),
}

def decode_datetime(obj):
    if '__datetime__' in obj:
        obj = datetime.datetime.strptime(obj["as_str"], "%Y%m%dT%H:%M:%S.%f")
    return obj

def encode_datetime(obj):
    if isinstance(obj, datetime.datetime):
        return {'__datetime__': True, 'as_str': obj.strftime("%Y%m%dT%H:%M:%S.%f")}
    return obj


packed_dict = msgpack.packb(useful_dict, default=encode_datetime)
this_dict_again = msgpack.unpackb(packed_dict, object_hook=decode_datetime)

Unpacker's object_hook callback receives a dict; the
object_pairs_hook callback may instead be used to receive a list of
key-value pairs.

NOTE: msgpack can encode datetime with tzinfo into standard ext type for now.
See datetime option in Packer docstring.

Extended types

It is also possible to pack/unpack custom data types using the ext type.

>>> import msgpack
>>> import array
>>> def default(obj):
...     if isinstance(obj, array.array) and obj.typecode == 'd':
...         return msgpack.ExtType(42, obj.tostring())
...     raise TypeError("Unknown type: %r" % (obj,))
...
>>> def ext_hook(code, data):
...     if code == 42:
...         a = array.array('d')
...         a.fromstring(data)
...         return a
...     return ExtType(code, data)
...
>>> data = array.array('d', [1.2, 3.4])
>>> packed = msgpack.packb(data, default=default)
>>> unpacked = msgpack.unpackb(packed, ext_hook=ext_hook)
>>> data == unpacked
True

Advanced unpacking control

As an alternative to iteration, Unpacker objects provide unpack,
skip, read_array_header, and read_map_header methods. The former two
read an entire message from the stream, respectively deserializing and returning
the result, or ignoring it. The latter two methods return the number of elements
in the upcoming container, so that each element in an array, or key-value pair
in a map, can be unpack

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:56:23Z
<!-- niceos-upstream-monitor:fingerprint=upstream-update:python3-msgpack:1.1.2 --> <!-- niceos-upstream-monitor:package=python3-msgpack --> <!-- niceos-upstream-monitor:current=1.1.1 --> <!-- niceos-upstream-monitor:latest=1.1.2 --> # Upstream update available: `python3-msgpack` `1.1.1` → `1.1.2` ## Package - Package: `python3-msgpack` - RPM name: `python3-msgpack` - Branch: `niceos-5.2` - Current EVR: `1.1.1-1` - Update class: `patch` - Compare method: `python_rpm` - Update policy: `leaf` - Risk tags: `standard` ## Upstream - Upstream type: `pypi` - Upstream project: `-` - Upstream URL: https://files.pythonhosted.org/packages/45/b1/ea4f68038a18c77c9467400d166d74c4ffa536f34761f7983a104357e614/msgpack-1.1.1.tar.gz - Detected version: `1.1.2` - Tag/release: `1.1.2` - Source: `pypi_json` - Published: `2025-10-08T09:15:56.596045Z` - Release URL: https://pypi.org/project/msgpack/ - Source URL: https://files.pythonhosted.org/packages/4d/f2/bfb55a6236ed8725a96b0aa3acbd0ec17588e6a2c3b62a93eb513ed8783f/msgpack-1.1.2.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/medium, update/patch, upstream-update, upstream/pypi` ## NiceSOFT AI preliminary analysis ### 1. Краткий вывод Предлагается обновление библиотеки сериализации `python3-msgpack` с версии 1.1.1 до 1.1.2. Обновление классифицируется как патч (patch), не содержит обнаруженных уязвимостей безопасности и не блокируется политикой дистрибутива. ### 2. Риск для НАЙС.ОС Оценка: **low**. Обоснование: Обновление помечено как `patch` и имеет тег `standard`, что указывает на исправление ошибок или мелких улучшений без изменения функциональности. Отсутствие флагов безопасности и блокировки политики снижает вероятность критических последствий. ### 3. Security/CVE Во входных данных отсутствуют признаки уязвимостей безопасности. Поле `security_keywords_detected_by_script` равно `False`, а поле `policy_blocked` равно `False`. В тексте релизов не указаны ссылки на CVE или предупреждения о безопасности. ### 4. ABI/API риск В предоставленных данных отсутствует информация о конкретных изменениях в сигнатурах функций, структуре модулей или бинарном интерфейсе между версиями 1.1.1 и 1.1.2. Для точной оценки требуется ручной анализ diff исходного кода или changelog проекта upstream. ### 5. Риск для RPM-сборки На основе предоставленных данных невозможно определить риски для сборки RPM (например, изменение зависимостей `BuildRequires`, сбой `%check` или конфликты макросов). Требуется сравнение содержимого спецификаций и логов сборки предыдущих версий. ### 6. Проверки мейнтейнера - [ ] Сравнить `diff` исходного кода между 1.1.1 и 1.1.2 на предмет изменений в публичном API. - [ ] Проверить наличие новых зависимостей в файле `setup.py` или `pyproject.toml` (если применимо). - [ ] Запустить локальную сборку RPM с новым пакетом. - [ ] Выполнить тесты `%check` из спецификации пакета. - [ ] Убедиться, что файл `msgpack/_cmsgpack.c` (или аналогичный) не изменился критически, если используется C-расширение. ### 7. Рекомендация update candidate ### 8. Основание рекомендации Обновление классифицировано как безопасное патч-обновление (`update_class: patch`, `risk_tags: standard`) без признаков уязвимостей. Стандартная процедура для таких обновлений предполагает создание кандидата на обновление после выполнения базовых проверок сборки и тестов, так как автоматическое применение не рекомендуется для любых обновлений toolchain и библиотек, но ручной барьер для патчей минимален. ## Upstream release notes / description MessagePack serializer # MessagePack for Python [![Build Status](https://github.com/msgpack/msgpack-python/actions/workflows/wheel.yml/badge.svg)](https://github.com/msgpack/msgpack-python/actions/workflows/wheel.yml) [![Documentation Status](https://readthedocs.org/projects/msgpack-python/badge/?version=latest)](https://msgpack-python.readthedocs.io/en/latest/?badge=latest) ## What is this? [MessagePack](https://msgpack.org/) is an efficient binary serialization format. It lets you exchange data among multiple languages like JSON. But it's faster and smaller. This package provides CPython bindings for reading and writing MessagePack data. ## Install ``` $ pip install msgpack ``` ### Pure Python implementation The extension module in msgpack (`msgpack._cmsgpack`) does not support PyPy. But msgpack provides a pure Python implementation (`msgpack.fallback`) for PyPy. ### Windows If you can't use a binary distribution, you need to install Visual Studio or the Windows SDK on Windows. Without the extension, the pure Python implementation on CPython runs slowly. ## How to use ### One-shot pack & unpack Use `packb` for packing and `unpackb` for unpacking. msgpack provides `dumps` and `loads` as aliases for compatibility with `json` and `pickle`. `pack` and `dump` pack to a file-like object. `unpack` and `load` unpack from a file-like object. ```pycon >>> import msgpack >>> msgpack.packb([1, 2, 3]) '\x93\x01\x02\x03' >>> msgpack.unpackb(_) [1, 2, 3] ``` Read the docstring for options. ### Streaming unpacking `Unpacker` is a "streaming unpacker". It unpacks multiple objects from one stream (or from bytes provided through its `feed` method). ```py import msgpack from io import BytesIO buf = BytesIO() for i in range(100): buf.write(msgpack.packb(i)) buf.seek(0) unpacker = msgpack.Unpacker(buf) for unpacked in unpacker: print(unpacked) ``` ### Packing/unpacking of custom data types It is also possible to pack/unpack custom data types. Here is an example for `datetime.datetime`. ```py import datetime import msgpack useful_dict = { "id": 1, "created": datetime.datetime.now(), } def decode_datetime(obj): if '__datetime__' in obj: obj = datetime.datetime.strptime(obj["as_str"], "%Y%m%dT%H:%M:%S.%f") return obj def encode_datetime(obj): if isinstance(obj, datetime.datetime): return {'__datetime__': True, 'as_str': obj.strftime("%Y%m%dT%H:%M:%S.%f")} return obj packed_dict = msgpack.packb(useful_dict, default=encode_datetime) this_dict_again = msgpack.unpackb(packed_dict, object_hook=decode_datetime) ``` `Unpacker`'s `object_hook` callback receives a dict; the `object_pairs_hook` callback may instead be used to receive a list of key-value pairs. NOTE: msgpack can encode datetime with tzinfo into standard ext type for now. See `datetime` option in `Packer` docstring. ### Extended types It is also possible to pack/unpack custom data types using the **ext** type. ```pycon >>> import msgpack >>> import array >>> def default(obj): ... if isinstance(obj, array.array) and obj.typecode == 'd': ... return msgpack.ExtType(42, obj.tostring()) ... raise TypeError("Unknown type: %r" % (obj,)) ... >>> def ext_hook(code, data): ... if code == 42: ... a = array.array('d') ... a.fromstring(data) ... return a ... return ExtType(code, data) ... >>> data = array.array('d', [1.2, 3.4]) >>> packed = msgpack.packb(data, default=default) >>> unpacked = msgpack.unpackb(packed, ext_hook=ext_hook) >>> data == unpacked True ``` ### Advanced unpacking control As an alternative to iteration, `Unpacker` objects provide `unpack`, `skip`, `read_array_header`, and `read_map_header` methods. The former two read an entire message from the stream, respectively deserializing and returning the result, or ignoring it. The latter two methods return the number of elements in the upcoming container, so that each element in an array, or key-value pair in a map, can be unpack ## 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:56:23Z`
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-msgpack#1
No description provided.