Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-rebulk for openSUSE:Factory checked in at 2026-07-13 14:27:53 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-rebulk (Old) and /work/SRC/openSUSE:Factory/.python-rebulk.new.1991 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-rebulk" Mon Jul 13 14:27:53 2026 rev:20 rq:1365236 version:6.0.1 Changes: -------- --- /work/SRC/openSUSE:Factory/python-rebulk/python-rebulk.changes 2026-07-01 16:36:31.580827874 +0200 +++ /work/SRC/openSUSE:Factory/.python-rebulk.new.1991/python-rebulk.changes 2026-07-13 14:28:35.048477996 +0200 @@ -1,0 +2,7 @@ +Thu Jul 9 18:47:09 UTC 2026 - Luigi Baldoni <[email protected]> + +- Update to version 6.0.1 + Performance Improvements: + * Cache getfullargspec on the hot matching path + +------------------------------------------------------------------- Old: ---- rebulk-6.0.0.tar.gz New: ---- rebulk-6.0.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-rebulk.spec ++++++ --- /var/tmp/diff_new_pack.gckPyz/_old 2026-07-13 14:28:38.620600120 +0200 +++ /var/tmp/diff_new_pack.gckPyz/_new 2026-07-13 14:28:38.624600257 +0200 @@ -17,7 +17,7 @@ Name: python-rebulk -Version: 6.0.0 +Version: 6.0.1 Release: 0 Summary: Library for defining bulk search patterns to perform advanced string matching License: MIT ++++++ rebulk-6.0.0.tar.gz -> rebulk-6.0.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rebulk-6.0.0/.github/workflows/ci.yml new/rebulk-6.0.1/.github/workflows/ci.yml --- old/rebulk-6.0.0/.github/workflows/ci.yml 2026-06-29 15:05:32.000000000 +0200 +++ new/rebulk-6.0.1/.github/workflows/ci.yml 2026-07-03 08:59:26.000000000 +0200 @@ -136,7 +136,10 @@ range="origin/${{ github.base_ref }}..HEAD" else before="${{ github.event.before }}" - if [ -z "$before" ] || [ "$before" = "0000000000000000000000000000000000000000" ]; then + # No usable "before": a new branch (empty/zero sha) or a force-push + # whose "before" commit is now orphaned and unreachable here. + if [ -z "$before" ] || [ "$before" = "0000000000000000000000000000000000000000" ] \ + || ! git cat-file -e "$before^{commit}" 2>/dev/null; then range="HEAD~1..HEAD" else range="$before..${{ github.sha }}" @@ -151,6 +154,8 @@ runs-on: ubuntu-latest + environment: pypi + permissions: contents: write # semantic-release pushes the version commit + tag and creates the GitHub release id-token: write # PyPI trusted publishing (OIDC), no long-lived token needed diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rebulk-6.0.0/pyproject.toml new/rebulk-6.0.1/pyproject.toml --- old/rebulk-6.0.0/pyproject.toml 2026-06-29 15:05:32.000000000 +0200 +++ new/rebulk-6.0.1/pyproject.toml 2026-07-03 08:59:26.000000000 +0200 @@ -1,6 +1,6 @@ [project] name = "rebulk" -version = "6.0.0" +version = "6.0.1" description = "Rebulk - Define simple search patterns in bulk to perform advanced matching on any string." readme = "README.md" requires-python = ">=3.10" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rebulk-6.0.0/rebulk/__version__.py new/rebulk-6.0.1/rebulk/__version__.py --- old/rebulk-6.0.0/rebulk/__version__.py 2026-06-29 15:05:32.000000000 +0200 +++ new/rebulk-6.0.1/rebulk/__version__.py 2026-07-03 08:59:26.000000000 +0200 @@ -3,4 +3,4 @@ Version module """ -__version__ = "6.0.0" +__version__ = "6.0.1" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rebulk-6.0.0/rebulk/loose.py new/rebulk-6.0.1/rebulk/loose.py --- old/rebulk-6.0.0/rebulk/loose.py 2026-06-29 15:05:32.000000000 +0200 +++ new/rebulk-6.0.1/rebulk/loose.py 2026-07-03 08:59:26.000000000 +0200 @@ -5,7 +5,9 @@ from __future__ import annotations -from inspect import getfullargspec, isclass +from functools import lru_cache +from inspect import getfullargspec as _getfullargspec +from inspect import isclass from typing import TYPE_CHECKING, Any, cast from .utils import is_iterable @@ -13,6 +15,12 @@ if TYPE_CHECKING: from inspect import FullArgSpec +# Validators/formatters/conflict-solvers are stable singletons for a Rebulk instance's lifetime, +# so their signature introspection is redundant across the many matching-path calls. The set of +# distinct callables is small and bounded, and getfullargspec is a pure function of its callable, +# so an unbounded identity cache is safe. +getfullargspec = lru_cache(maxsize=None)(_getfullargspec) + def _constructor(class_: Any) -> Any: """ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rebulk-6.0.0/uv.lock new/rebulk-6.0.1/uv.lock --- old/rebulk-6.0.0/uv.lock 2026-06-29 15:05:32.000000000 +0200 +++ new/rebulk-6.0.1/uv.lock 2026-07-03 08:59:26.000000000 +0200 @@ -1116,7 +1116,7 @@ [[package]] name = "rebulk" -version = "6.0.0" +version = "6.0.1" source = { editable = "." } [package.optional-dependencies]
