Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-msgspec for openSUSE:Factory 
checked in at 2023-12-08 22:32:23
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-msgspec (Old)
 and      /work/SRC/openSUSE:Factory/.python-msgspec.new.25432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-msgspec"

Fri Dec  8 22:32:23 2023 rev:2 rq:1131998 version:0.18.4

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-msgspec/python-msgspec.changes    
2023-09-01 14:21:47.693765650 +0200
+++ /work/SRC/openSUSE:Factory/.python-msgspec.new.25432/python-msgspec.changes 
2023-12-08 22:32:55.089908933 +0100
@@ -1,0 +2,9 @@
+Thu Dec  7 23:03:38 UTC 2023 - Dirk Müller <dmuel...@suse.com>
+
+- update to 0.18.4:
+  * Resolve an issue leading to periodic segfaults when importing
+    ``msgspec`` on CPython 3.12
+  * Improve type annotation for ``Struct.__rich_repr__``
+  * Add pre-built wheels for Python 3.12 (:pr:`558`)
+
+-------------------------------------------------------------------

Old:
----
  msgspec-0.18.2.tar.gz

New:
----
  msgspec-0.18.4.tar.gz

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

Other differences:
------------------
++++++ python-msgspec.spec ++++++
--- /var/tmp/diff_new_pack.e9j8DW/_old  2023-12-08 22:32:55.593927479 +0100
+++ /var/tmp/diff_new_pack.e9j8DW/_new  2023-12-08 22:32:55.597927625 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           python-msgspec
-Version:        0.18.2
+Version:        0.18.4
 Release:        0
 Summary:        A fast serialization and validation library
 License:        BSD-3-Clause

++++++ msgspec-0.18.2.tar.gz -> msgspec-0.18.4.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/msgspec-0.18.2/.github/workflows/ci.yml 
new/msgspec-0.18.4/.github/workflows/ci.yml
--- old/msgspec-0.18.2/.github/workflows/ci.yml 2023-08-26 22:58:18.000000000 
+0200
+++ new/msgspec-0.18.4/.github/workflows/ci.yml 2023-10-05 06:24:28.000000000 
+0200
@@ -77,7 +77,7 @@
     env:
       CIBW_TEST_REQUIRES: "pytest msgpack pyyaml tomli tomli_w"
       CIBW_TEST_COMMAND: "pytest {project}/tests"
-      CIBW_BUILD: "cp38-* cp39-* cp310-* cp311-*"
+      CIBW_BUILD: "cp38-* cp39-* cp310-* cp311-* cp312-*"
       CIBW_SKIP: "*-win32 *_i686 *_s390x *_ppc64le"
       CIBW_ARCHS_MACOS: "x86_64 arm64"
       CIBW_ARCHS_LINUX: "x86_64 aarch64"
@@ -98,14 +98,8 @@
         run: |
             echo "CIBW_SKIP=${CIBW_SKIP} *-musllinux_* cp38-*_aarch64 
cp39-*_aarch64 cp311-*_aarch64 cp312-*_aarch64" >> $GITHUB_ENV
 
-      - name: Enable CPython 3.12 prerelease builds for Linux testing
-        if: github.event_name != 'release' && runner.os == 'Linux'
-        run: |
-          echo "CIBW_PRERELEASE_PYTHONS=True" >> $GITHUB_ENV
-          echo "CIBW_BUILD=cp38-* cp39-* cp310-* cp311-* cp312-*" >> 
$GITHUB_ENV
-
       - name: Build & Test Wheels
-        uses: pypa/cibuildwheel@v2.13.1
+        uses: pypa/cibuildwheel@v2.16.1
 
       - name: Upload artifact
         uses: actions/upload-artifact@v2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/msgspec-0.18.2/docs/source/changelog.rst 
new/msgspec-0.18.4/docs/source/changelog.rst
--- old/msgspec-0.18.2/docs/source/changelog.rst        2023-08-26 
22:58:18.000000000 +0200
+++ new/msgspec-0.18.4/docs/source/changelog.rst        2023-10-05 
06:24:28.000000000 +0200
@@ -3,6 +3,18 @@
 
 .. currentmodule:: msgspec
 
+Version 0.18.4 (2023-10-04)
+---------------------------
+
+- Resolve an issue leading to periodic segfaults when importing ``msgspec`` on
+  CPython 3.12 (:pr:`561`)
+
+Version 0.18.3 (2023-10-03)
+---------------------------
+
+- Improve type annotation for ``Struct.__rich_repr__`` (:pr:`557`)
+- Add pre-built wheels for Python 3.12 (:pr:`558`)
+
 Version 0.18.2 (2023-08-26)
 ---------------------------
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/msgspec-0.18.2/docs/source/supported-types.rst 
new/msgspec-0.18.4/docs/source/supported-types.rst
--- old/msgspec-0.18.2/docs/source/supported-types.rst  2023-08-26 
22:58:18.000000000 +0200
+++ new/msgspec-0.18.4/docs/source/supported-types.rst  2023-10-05 
06:24:28.000000000 +0200
@@ -1230,7 +1230,7 @@
         "page": 1,
         "per_page": 5,
         "total": 252,
-        "data": [
+        "items": [
             {"name": "alice", "groups": ["admin"]},
             {"name": "ben"},
             {"name": "carol", "groups": ["engineering"]},
@@ -1245,7 +1245,7 @@
     print(msg)
     #> Paginated(
     #>     page=1, per_page=5, total=252,
-    #>     data=[
+    #>     items=[
     #>         User(name='alice', groups=['admin']),
     #>         User(name='ben', groups=[]),
     #>         User(name='carol', groups=['engineering']),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/msgspec-0.18.2/msgspec/__init__.pyi 
new/msgspec-0.18.4/msgspec/__init__.pyi
--- old/msgspec-0.18.2/msgspec/__init__.pyi     2023-08-26 22:58:18.000000000 
+0200
+++ new/msgspec-0.18.4/msgspec/__init__.pyi     2023-10-05 06:24:28.000000000 
+0200
@@ -68,7 +68,9 @@
         weakref: bool = False,
         dict: bool = False,
     ) -> None: ...
-    def __rich_repr__(self) -> Iterable[Tuple[str, Any]]: ...
+    def __rich_repr__(
+        self,
+    ) -> Iterable[Union[Any, Tuple[Any], Tuple[str, Any], Tuple[str, Any, 
Any]]]: ...
 
 def defstruct(
     name: str,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/msgspec-0.18.2/msgspec/_core.c 
new/msgspec-0.18.4/msgspec/_core.c
--- old/msgspec-0.18.2/msgspec/_core.c  2023-08-26 22:58:18.000000000 +0200
+++ new/msgspec-0.18.4/msgspec/_core.c  2023-10-05 06:24:28.000000000 +0200
@@ -6043,16 +6043,11 @@
     /* Fill in struct offsets */
     if (structmeta_construct_offsets(&info, cls) < 0) goto cleanup;
 
-    /* Cache access to __post_init__ (if defined).
-     * XXX: When StructMeta is defined, the module hasn't finished initializing
-     * yet so `mod` will be NULL here. */
-    if (mod != NULL) {
-        cls->post_init = PyObject_GetAttr((PyObject *)cls, 
mod->str___post_init__);
+    /* Cache access to __post_init__ (if defined). */
+    cls->post_init = PyObject_GetAttr((PyObject *)cls, mod->str___post_init__);
+    if (cls->post_init == NULL) {
         PyErr_Clear();
     }
-    else {
-        cls->post_init = NULL;
-    }
 
     cls->nkwonly = info.nkwonly;
     cls->n_trailing_defaults = info.n_trailing_defaults;
@@ -8033,20 +8028,6 @@
 }
 
 
-static MS_INLINE PyObject *
-DataclassInfo_get_default(DataclassInfo *self, Py_ssize_t i) {
-    PyObject *default_value = PyTuple_GET_ITEM(self->defaults, i);
-    bool is_factory = self->fields[i].type->types & MS_EXTRA_FLAG;
-    if (is_factory) {
-        default_value = CALL_NO_ARGS(default_value);
-        if (default_value == NULL) return NULL;
-        return default_value;
-    }
-    Py_INCREF(default_value);
-    return default_value;
-}
-
-
 static int
 DataclassInfo_post_decode(DataclassInfo *self, PyObject *obj, PathNode *path) {
     Py_ssize_t nfields = Py_SIZE(self);
@@ -21081,17 +21062,6 @@
     if (PyModule_AddObject(m, "UNSET", UNSET) < 0)
         return NULL;
 
-    /* Initialize the Struct Type */
-    st->StructType = PyObject_CallFunction(
-        (PyObject *)&StructMetaType, "s(O){ssss}", "Struct", &StructMixinType,
-        "__module__", "msgspec", "__doc__", Struct__doc__
-    );
-    if (st->StructType == NULL)
-        return NULL;
-    Py_INCREF(st->StructType);
-    if (PyModule_AddObject(m, "Struct", st->StructType) < 0)
-        return NULL;
-
     /* Initialize the exceptions. */
     st->MsgspecError = PyErr_NewExceptionWithDoc(
         "msgspec.MsgspecError",
@@ -21259,5 +21229,15 @@
     CACHED_STRING(str_int, "int");
     CACHED_STRING(str_is_safe, "is_safe");
 
+    /* Initialize the Struct Type */
+    PyState_AddModule(m, &msgspecmodule);
+    st->StructType = PyObject_CallFunction(
+        (PyObject *)&StructMetaType, "s(O){ssss}", "Struct", &StructMixinType,
+        "__module__", "msgspec", "__doc__", Struct__doc__
+    );
+    if (st->StructType == NULL) return NULL;
+    Py_INCREF(st->StructType);
+    if (PyModule_AddObject(m, "Struct", st->StructType) < 0) return NULL;
+
     return m;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/msgspec-0.18.2/msgspec/_version.py 
new/msgspec-0.18.4/msgspec/_version.py
--- old/msgspec-0.18.2/msgspec/_version.py      2023-08-26 22:58:18.000000000 
+0200
+++ new/msgspec-0.18.4/msgspec/_version.py      2023-10-05 06:24:28.000000000 
+0200
@@ -24,9 +24,9 @@
     # setup.py/versioneer.py will grep for the variable names, so they must
     # each be defined on a line of their own. _version.py will just call
     # get_keywords().
-    git_refnames = " (HEAD -> main, tag: 0.18.2)"
-    git_full = "256d84a2f233ee741a2c2e4d67633b13ffcd37a4"
-    git_date = "2023-08-26 15:58:18 -0500"
+    git_refnames = " (tag: 0.18.4)"
+    git_full = "05125a80969bba244f0e65ed540ee5301b94e030"
+    git_date = "2023-10-04 23:24:28 -0500"
     keywords = {"refnames": git_refnames, "full": git_full, "date": git_date}
     return keywords
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/msgspec-0.18.2/setup.py new/msgspec-0.18.4/setup.py
--- old/msgspec-0.18.2/setup.py 2023-08-26 22:58:18.000000000 +0200
+++ new/msgspec-0.18.4/setup.py 2023-10-05 06:24:28.000000000 +0200
@@ -67,6 +67,7 @@
         "Programming Language :: Python :: 3.9",
         "Programming Language :: Python :: 3.10",
         "Programming Language :: Python :: 3.11",
+        "Programming Language :: Python :: 3.12",
     ],
     extras_require=extras_require,
     license="BSD",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/msgspec-0.18.2/tests/basic_typing_examples.py 
new/msgspec-0.18.4/tests/basic_typing_examples.py
--- old/msgspec-0.18.2/tests/basic_typing_examples.py   2023-08-26 
22:58:18.000000000 +0200
+++ new/msgspec-0.18.4/tests/basic_typing_examples.py   2023-10-05 
06:24:28.000000000 +0200
@@ -311,7 +311,10 @@
     a.x = a.x + b.y
     repr(a)
 
-    for name, val in a.__rich_repr__():
+    for item in a.__rich_repr__():
+        assert isinstance(item, tuple)
+        assert len(item) == 2
+        name, val = item
         print(f"{name} = {val}")
 
 

Reply via email to