openSUSE Commits
Threads by month
- ----- 2024 -----
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
August 2024
- 2 participants
- 1399 discussions
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package libass for openSUSE:Factory checked in at 2024-08-15 09:57:24
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libass (Old)
and /work/SRC/openSUSE:Factory/.libass.new.7232 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libass"
Thu Aug 15 09:57:24 2024 rev:49 rq:1193772 version:0.17.3
Changes:
--------
--- /work/SRC/openSUSE:Factory/libass/libass.changes 2023-03-22 22:28:49.905646691 +0100
+++ /work/SRC/openSUSE:Factory/.libass.new.7232/libass.changes 2024-08-15 09:57:28.092819033 +0200
@@ -1,0 +2,56 @@
+Wed Jul 3 09:50:35 UTC 2024 - llyyr <llyyr(a)yukari.in>
+
+- Update to 0.17.3:
+ * Fix 0.17.2 regression in the fontconfig fontprovider leading to
+ undesirable widths being chosen from large typographic families
+ * Fix configure generated with slibtool-provided autoconf macros
+ * Fix make check for shared-only builds
+ * Constify some API parameters in a backwards-compatible manner
+ * Add new ass_malloc and ass_free API functions
+ * Tweak default optimization flags
+ * Speed up parsing of events with very long override blocks
+ * Improve handling of HarfBuzz-related failures
+- reintroduce 'make check' as the issue has been fixed upstream
+
+-------------------------------------------------------------------
+Tue May 28 03:41:41 UTC 2024 - llyyr <llyyr(a)yukari.in>
+
+- Update to 0.17.2:
+ * This release brings optimized assembly routines for aarch64,
+ as well as numerous individual improvements and fixes.
+ * Detailed Changes:
+ - Fix rendering of \h in certain cases
+ - Fix a minor memory leak in the CoreText and DirectWrite font provider
+ - Fix wrong ASS_Image dimensions for huge BorderStyle=4 backgrounds
+ potentially leading to out of bound reads by API users
+ - Improve quality of animated rectangular clips
+ - Improve accuracy of cache limits
+ - Full-Unicode cmaps are now always preferred
+ - Improve font selection compatibility in the DirectWrite font provider
+ - Improved documentation
+ - Updating selective overrides now forces a cache clear to avoid issues
+ with outdated caches
+ - Frame and storage resolutions are now limited to what a single ASS_Image
+ can represent
+ - make check now runs checkasm if assembly is enabled
+ - CoreText can now be used on Mac OS X 10.5
+ - Meson/muon is now offered as a secondary build system bringing back
+ first-party MSVC support
+ - Note however it is not at feature parity with autotools in all cases
+ - aarch64: add optimized assembly routines covering the same set as on x86;
+ they work on both little and big endian systems
+ - x86: add SSSE3 versions of some assembly routines to help CPUs without
+ AVX2
+ - x86: it is now possible to build binaries with optimized assembly an
+ SHSTK support
+ - Improve VSFilter compatibility
+- 'make check' is broken for --disable-static builds because checkasm needs to
+ access symbols that aren't part of the public API, so just disable it.
+
+-------------------------------------------------------------------
+Mon Nov 27 12:52:35 UTC 2023 - llyyr <llyyr.public(a)gmail.com>
+
+- Require libunibreak during build for better linebreaking of
+ unicode text.
+
+-------------------------------------------------------------------
Old:
----
libass-0.17.1.tar.xz
New:
----
libass-0.17.3.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libass.spec ++++++
--- /var/tmp/diff_new_pack.Zx4nUi/_old 2024-08-15 09:57:28.664842972 +0200
+++ /var/tmp/diff_new_pack.Zx4nUi/_new 2024-08-15 09:57:28.668843139 +0200
@@ -1,7 +1,7 @@
#
# spec file for package libass
#
-# Copyright (c) 2023 SUSE LLC
+# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -18,7 +18,7 @@
%define sover 9
Name: libass
-Version: 0.17.1
+Version: 0.17.3
Release: 0
Summary: Library for SSA/ASS-formatted subtitle rendering
License: ISC
@@ -32,6 +32,7 @@
BuildRequires: pkgconfig(freetype2) >= 9.10.3
BuildRequires: pkgconfig(fribidi) >= 0.19.0
BuildRequires: pkgconfig(harfbuzz) >= 1.2.3
+BuildRequires: pkgconfig(libunibreak) >= 1.1
%description
libass is a subtitle renderer for the ASS/SSA
@@ -56,6 +57,7 @@
Requires: pkgconfig(freetype2) >= 9.10.3
Requires: pkgconfig(fribidi) >= 0.19.0
Requires: pkgconfig(harfbuzz) >= 1.2.3
+Requires: pkgconfig(libunibreak) >= 1.1
%description devel
This package is needed if you want to develop / compile against libass.
++++++ libass-0.17.1.tar.xz -> libass-0.17.3.tar.xz ++++++
++++ 17298 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package protobuf-c for openSUSE:Factory checked in at 2024-08-15 09:57:22
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/protobuf-c (Old)
and /work/SRC/openSUSE:Factory/.protobuf-c.new.7232 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "protobuf-c"
Thu Aug 15 09:57:22 2024 rev:29 rq:1193754 version:1.5.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/protobuf-c/protobuf-c.changes 2023-12-28 22:55:12.132713017 +0100
+++ /work/SRC/openSUSE:Factory/.protobuf-c.new.7232/protobuf-c.changes 2024-08-15 09:57:24.468667358 +0200
@@ -1,0 +2,5 @@
+Mon Aug 12 21:14:32 UTC 2024 - Andreas Stieger <andreas.stieger(a)gmx.de>
+
+- BuildRequire a C++ compiler, previously pulled in via protobuf
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ protobuf-c.spec ++++++
--- /var/tmp/diff_new_pack.PFbuCQ/_old 2024-08-15 09:57:24.988689121 +0200
+++ /var/tmp/diff_new_pack.PFbuCQ/_new 2024-08-15 09:57:24.992689288 +0200
@@ -3,6 +3,7 @@
#
# Copyright (c) 2023 SUSE LLC
# Copyright (c) 2011 Pascal Bleser
+# Copyright (c) 2024 Andreas Stieger <Andreas.Stieger(a)gmx.de>
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -28,7 +29,7 @@
Source: https://github.com/protobuf-c/protobuf-c/releases/download/v%version/%name-…
BuildRequires: autoconf
BuildRequires: automake
-BuildRequires: gcc
+BuildRequires: c++_compiler
BuildRequires: glibc-devel
BuildRequires: libtool
BuildRequires: make
@@ -79,8 +80,7 @@
%check
make check
-%post -n libprotobuf-c%sover -p /sbin/ldconfig
-%postun -n libprotobuf-c%sover -p /sbin/ldconfig
+%ldconfig_scriptlets -n libprotobuf-c%sover
%files -n libprotobuf-c%sover
%license LICENSE
@@ -88,6 +88,7 @@
%_libdir/libprotobuf-c.so.%sover.*
%files -n libprotobuf-c-devel
+%license LICENSE
%dir %_includedir/protobuf-c
%dir %_includedir/google
%dir %_includedir/google/protobuf-c
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-starlette for openSUSE:Factory checked in at 2024-08-15 09:57:21
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-starlette (Old)
and /work/SRC/openSUSE:Factory/.python-starlette.new.7232 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-starlette"
Thu Aug 15 09:57:21 2024 rev:25 rq:1193696 version:0.38.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-starlette/python-starlette.changes 2024-04-30 17:26:04.755377224 +0200
+++ /work/SRC/openSUSE:Factory/.python-starlette.new.7232/python-starlette.changes 2024-08-15 09:57:23.376621654 +0200
@@ -1,0 +2,16 @@
+Tue Aug 13 09:41:53 UTC 2024 - Daniel Garcia <daniel.garcia(a)suse.com>
+
+- Update to 0.38.2:
+ * Fix routing.get_name() not to assume all routines have __name__ #2648
+- 0.38.1:
+ * Revert "Add support for ASGI pathsend extension" #2649.
+- 0.38.0:
+ * Allow use of memoryview in StreamingResponse and Response #2576
+ and #2577.
+ * Send 404 instead of 500 when filename requested is too long on
+ StaticFiles #2583.
+ * Fail fast on invalid Jinja2Template instantiation parameters #2568.
+ * Check endpoint handler is async only once #2536.
+ * Add proper synchronization to WebSocketTestSession #2597.
+
+-------------------------------------------------------------------
Old:
----
starlette-0.37.2.tar.gz
New:
----
starlette-0.38.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-starlette.spec ++++++
--- /var/tmp/diff_new_pack.0OI44Y/_old 2024-08-15 09:57:24.180655304 +0200
+++ /var/tmp/diff_new_pack.0OI44Y/_new 2024-08-15 09:57:24.180655304 +0200
@@ -27,7 +27,7 @@
%{?sle15_python_module_pythons}
Name: python-starlette%{psuffix}
-Version: 0.37.2
+Version: 0.38.2
Release: 0
Summary: Lightweight ASGI framework/toolkit
License: BSD-3-Clause
++++++ starlette-0.37.2.tar.gz -> starlette-0.38.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/starlette-0.37.2/README.md new/starlette-0.38.2/README.md
--- old/starlette-0.37.2/README.md 2024-03-05 17:08:44.000000000 +0100
+++ new/starlette-0.38.2/README.md 2024-07-27 19:55:52.000000000 +0200
@@ -45,7 +45,7 @@
$ pip3 install starlette
```
-You'll also want to install an ASGI server, such as [uvicorn](http://www.uvicorn.org/), [daphne](https://github.com/django/daphne/), or [hypercorn](https://pgjones.gitlab.io/hypercorn/).
+You'll also want to install an ASGI server, such as [uvicorn](http://www.uvicorn.org/), [daphne](https://github.com/django/daphne/), or [hypercorn](https://hypercorn.readthedocs.io/en/latest/).
```shell
$ pip3 install uvicorn
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/starlette-0.37.2/docs/index.md new/starlette-0.38.2/docs/index.md
--- old/starlette-0.37.2/docs/index.md 2024-03-05 17:08:44.000000000 +0100
+++ new/starlette-0.38.2/docs/index.md 2024-07-27 19:55:52.000000000 +0200
@@ -46,7 +46,7 @@
$ pip3 install starlette
```
-You'll also want to install an ASGI server, such as [uvicorn](http://www.uvicorn.org/), [daphne](https://github.com/django/daphne/), or [hypercorn](https://pgjones.gitlab.io/hypercorn/).
+You'll also want to install an ASGI server, such as [uvicorn](http://www.uvicorn.org/), [daphne](https://github.com/django/daphne/), or [hypercorn](https://hypercorn.readthedocs.io/en/latest/).
```shell
$ pip3 install uvicorn
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/starlette-0.37.2/docs/middleware.md new/starlette-0.38.2/docs/middleware.md
--- old/starlette-0.37.2/docs/middleware.md 2024-03-05 17:08:44.000000000 +0100
+++ new/starlette-0.38.2/docs/middleware.md 2024-07-27 19:55:52.000000000 +0200
@@ -104,8 +104,9 @@
* `session_cookie` - Defaults to "session".
* `max_age` - Session expiry time in seconds. Defaults to 2 weeks. If set to `None` then the cookie will last as long as the browser session.
* `same_site` - SameSite flag prevents the browser from sending session cookie along with cross-site requests. Defaults to `'lax'`.
+* `path` - The path set for the session cookie. Defaults to `'/'`.
* `https_only` - Indicate that Secure flag should be set (can be used with HTTPS only). Defaults to `False`.
-* `domain` - Domain of the cookie used to share cookie between subdomains or cross-domains. The browser defaults the domain to the same host that set the cookie, excluding subdomains [refrence](https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies#domain_….
+* `domain` - Domain of the cookie used to share cookie between subdomains or cross-domains. The browser defaults the domain to the same host that set the cookie, excluding subdomains ([reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies#domain…)
```python
@@ -167,6 +168,7 @@
* `allowed_hosts` - A list of domain names that should be allowed as hostnames. Wildcard
domains such as `*.example.com` are supported for matching subdomains. To allow any
hostname either use `allowed_hosts=["*"]` or omit the middleware.
+* `www_redirect` - If set to True, requests to non-www versions of the allowed hosts will be redirected to their www counterparts. Defaults to `True`.
If an incoming request does not validate correctly then a 400 response will be sent.
@@ -185,7 +187,7 @@
routes = ...
middleware = [
- Middleware(GZipMiddleware, minimum_size=1000)
+ Middleware(GZipMiddleware, minimum_size=1000, compresslevel=9)
]
app = Starlette(routes=routes, middleware=middleware)
@@ -194,6 +196,7 @@
The following arguments are supported:
* `minimum_size` - Do not GZip responses that are smaller than this minimum size in bytes. Defaults to `500`.
+* `compresslevel` - Used during GZip compression. It is an integer ranging from 1 to 9. Defaults to `9`. Lower value results in faster compression but larger file sizes, while higher value results in slower compression but smaller file sizes.
The middleware won't GZip responses that already have a `Content-Encoding` set, to prevent them from being encoded twice.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/starlette-0.37.2/docs/release-notes.md new/starlette-0.38.2/docs/release-notes.md
--- old/starlette-0.37.2/docs/release-notes.md 2024-03-05 17:08:44.000000000 +0100
+++ new/starlette-0.38.2/docs/release-notes.md 2024-07-27 19:55:52.000000000 +0200
@@ -1,3 +1,38 @@
+## 0.38.2
+
+July 27, 2024
+
+#### Fixed
+
+* Not assume all routines have `__name__` on `routing.get_name()` [#2648](https://github.com/encode/starlette/pull/2648).
+
+## 0.38.1
+
+July 23, 2024
+
+#### Removed
+
+* Revert "Add support for ASGI pathsend extension" [#2649](https://github.com/encode/starlette/pull/2649).
+
+## 0.38.0
+
+July 20, 2024
+
+#### Added
+
+* Allow use of `memoryview` in `StreamingResponse` and `Response` [#2576](https://github.com/encode/starlette/pull/2576)
+ and [#2577](https://github.com/encode/starlette/pull/2577).
+* Send 404 instead of 500 when filename requested is too long on `StaticFiles` [#2583](https://github.com/encode/starlette/pull/2583).
+
+#### Changed
+
+* Fail fast on invalid `Jinja2Template` instantiation parameters [#2568](https://github.com/encode/starlette/pull/2568).
+* Check endpoint handler is async only once [#2536](https://github.com/encode/starlette/pull/2536).
+
+#### Fixed
+
+* Add proper synchronization to `WebSocketTestSession` [#2597](https://github.com/encode/starlette/pull/2597).
+
## 0.37.2
March 5, 2024
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/starlette-0.37.2/docs/requests.md new/starlette-0.38.2/docs/requests.md
--- old/starlette-0.37.2/docs/requests.md 2024-03-05 17:08:44.000000000 +0100
+++ new/starlette-0.38.2/docs/requests.md 2024-07-27 19:55:52.000000000 +0200
@@ -60,8 +60,7 @@
#### Client Address
-The client's remote address is exposed as a named two-tuple `request.client`.
-Either item in the tuple may be `None`.
+The client's remote address is exposed as a named two-tuple `request.client` (or `None`).
The hostname or IP address: `request.client.host`
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/starlette-0.37.2/docs/third-party-packages.md new/starlette-0.38.2/docs/third-party-packages.md
--- old/starlette-0.37.2/docs/third-party-packages.md 2024-03-05 17:08:44.000000000 +0100
+++ new/starlette-0.38.2/docs/third-party-packages.md 2024-07-27 19:55:52.000000000 +0200
@@ -66,6 +66,13 @@
Document your REST API built with Starlette by declaring OpenAPI (Swagger)
schemas in YAML format in your endpoint's docstrings.
+### Starlette Compress
+
+<a href="https://github.com/Zaczero/starlette-compress" target="_blank">GitHub</a>
+
+Starlette-Compress is a fast and simple middleware for compressing responses in Starlette.
+It adds ZStd, Brotli, and GZip compression support with sensible default configuration.
+
### Starlette Context
<a href="https://github.com/tomwojcik/starlette-context" target="_blank">GitHub</a>
@@ -148,6 +155,12 @@
to quickly generate fully customizable admin interface for your models. You can export your data to many formats (*CSV*, *PDF*,
*Excel*, etc), filter your data with complex query including `AND` and `OR` conditions, upload files, ...
+### Vellox
+
+<a href="https://github.com/junah201/vellox" target="_blank">GitHub</a>
+
+Serverless ASGI adapter for GCP Cloud Functions.
+
## Starlette Bridge
<a href="https://github.com/tarsil/starlette-bridge" target="_blank">GitHub</a> |
@@ -168,17 +181,6 @@
High performance, easy to learn, fast to code, ready for production web API framework.
Inspired by **APIStar**'s previous server system with type declarations for route parameters, based on the OpenAPI specification version 3.0.0+ (with JSON Schema), powered by **Pydantic** for the data handling.
-### Esmerald
-
-<a href="https://github.com/dymmond/esmerald" target="_blank">GitHub</a> |
-<a href="https://www.esmerald.dev" target="_blank">Documentation</a>
-
-Highly scalable, performant, easy to learn, easy to code and for every application web framework.
-Inspired by a lot of frameworks out there, Esmerald provides what every application needs, from the
-smallest to complex. Includes, routes, middlewares, permissions, scheduler, interceptors and lot more.
-
-Powered by **Starlette** and **Pydantic** with OpenAPI specification.
-
### Flama
<a href="https://github.com/vortico/flama" target="_blank">GitHub</a> |
@@ -258,3 +260,10 @@
<a href="https://docs.sentry.io/platforms/python/guides/starlette/" target="_blank">Documentation</a>
Sentry is a software error detection tool. It offers actionable insights for resolving performance issues and errors, allowing users to diagnose, fix, and optimize Python debugging. Additionally, it integrates seamlessly with Starlette for Python application development. Sentry's capabilities include error tracking, performance insights, contextual information, and alerts/notifications.
+
+### Shiny
+
+<a href="https://github.com/posit-dev/py-shiny" target="_blank">GitHub</a> |
+<a href="https://shiny.posit.co/py/" target="_blank">Documentation</a>
+
+Leveraging Starlette and asyncio, Shiny allows developers to create effortless Python web applications using the power of reactive programming. Shiny eliminates the hassle of manual state management, automatically determining the best execution path for your app at runtime while simultaneously minimizing re-rendering. This means that Shiny can support everything from the simplest dashboard to full-featured web apps.
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/starlette-0.37.2/pyproject.toml new/starlette-0.38.2/pyproject.toml
--- old/starlette-0.37.2/pyproject.toml 2024-03-05 17:08:44.000000000 +0100
+++ new/starlette-0.38.2/pyproject.toml 2024-07-27 19:55:52.000000000 +0200
@@ -51,6 +51,7 @@
[tool.ruff.lint]
select = ["E", "F", "I", "FA", "UP"]
+ignore = ["UP031"]
[tool.ruff.lint.isort]
combine-as-imports = true
@@ -65,7 +66,7 @@
implicit_optional = true
[tool.pytest.ini_options]
-addopts = "-rxXs --strict-config --strict-markers"
+addopts = "-rXs --strict-config --strict-markers"
xfail_strict = true
filterwarnings = [
# Turn warnings that aren't filtered into exceptions
@@ -78,6 +79,8 @@
"ignore: The `allow_redirects` argument is deprecated. Use `follow_redirects` instead.:DeprecationWarning",
"ignore: 'cgi' is deprecated and slated for removal in Python 3.13:DeprecationWarning",
"ignore: You seem to already have a custom sys.excepthook handler installed. I'll skip installing Trio's custom handler, but this means MultiErrors will not show full tracebacks.:RuntimeWarning",
+ # TODO: This warning appeared when we bumped anyio to 4.4.0.
+ "ignore: Unclosed .MemoryObject(Send|Receive)Stream.:ResourceWarning",
]
[tool.coverage.run]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/starlette-0.37.2/requirements.txt new/starlette-0.38.2/requirements.txt
--- old/starlette-0.37.2/requirements.txt 2024-03-05 17:08:44.000000000 +0100
+++ new/starlette-0.38.2/requirements.txt 2024-07-27 19:55:52.000000000 +0200
@@ -1,23 +1,26 @@
# Optionals
-e .[full]
+# TODO: We need to delete the following line when fixing the test suite for anyio 4.4.0.
+anyio==4.4.0
+
# Testing
-coverage==7.4.3
-importlib-metadata==7.0.1
-mypy==1.8.0
-ruff==0.1.15
-typing_extensions==4.10.0
+coverage==7.5.4
+importlib-metadata==8.0.0
+mypy==1.10.1
+ruff==0.5.0
+typing_extensions==4.12.2
types-contextvars==2.4.7.3
-types-PyYAML==6.0.12.12
+types-PyYAML==6.0.12.20240311
types-dataclasses==0.6.6
-pytest==8.0.2
-trio==0.24.0
+pytest==8.2.2
+trio==0.25.1
# Documentation
-mkdocs==1.5.3
-mkdocs-material==9.5.12
+mkdocs==1.6.0
+mkdocs-material==9.5.27
mkautodoc==0.2.0
# Packaging
-build==1.1.1
-twine==5.0.0
+build==1.2.1
+twine==5.1.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/starlette-0.37.2/scripts/check new/starlette-0.38.2/scripts/check
--- old/starlette-0.37.2/scripts/check 2024-03-05 17:08:44.000000000 +0100
+++ new/starlette-0.38.2/scripts/check 2024-07-27 19:55:52.000000000 +0200
@@ -10,7 +10,5 @@
./scripts/sync-version
${PREFIX}ruff format --check --diff $SOURCE_FILES
-# TODO: Use `[[tool.mypy.overrides]]` on the `pyproject.toml` when the mypy issue is solved:
-# github.com/python/mypy/issues/10045. Check github.com/encode/starlette/pull/2180 for more info.
${PREFIX}mypy $SOURCE_FILES
${PREFIX}ruff check $SOURCE_FILES
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/starlette-0.37.2/scripts/lint new/starlette-0.38.2/scripts/lint
--- old/starlette-0.37.2/scripts/lint 2024-03-05 17:08:44.000000000 +0100
+++ new/starlette-0.38.2/scripts/lint 2024-07-27 19:55:52.000000000 +0200
@@ -9,4 +9,4 @@
set -x
${PREFIX}ruff format $SOURCE_FILES
-${PREFIX}ruff --fix $SOURCE_FILES
+${PREFIX}ruff check --fix $SOURCE_FILES
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/starlette-0.37.2/starlette/__init__.py new/starlette-0.38.2/starlette/__init__.py
--- old/starlette-0.37.2/starlette/__init__.py 2024-03-05 17:08:44.000000000 +0100
+++ new/starlette-0.38.2/starlette/__init__.py 2024-07-27 19:55:52.000000000 +0200
@@ -1 +1 @@
-__version__ = "0.37.2"
+__version__ = "0.38.2"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/starlette-0.37.2/starlette/_utils.py new/starlette-0.38.2/starlette/_utils.py
--- old/starlette-0.37.2/starlette/_utils.py 2024-03-05 17:08:44.000000000 +0100
+++ new/starlette-0.38.2/starlette/_utils.py 2024-07-27 19:55:52.000000000 +0200
@@ -26,13 +26,11 @@
@typing.overload
-def is_async_callable(obj: AwaitableCallable[T]) -> TypeGuard[AwaitableCallable[T]]:
- ...
+def is_async_callable(obj: AwaitableCallable[T]) -> TypeGuard[AwaitableCallable[T]]: ...
@typing.overload
-def is_async_callable(obj: typing.Any) -> TypeGuard[AwaitableCallable[typing.Any]]:
- ...
+def is_async_callable(obj: typing.Any) -> TypeGuard[AwaitableCallable[typing.Any]]: ...
def is_async_callable(obj: typing.Any) -> typing.Any:
@@ -49,13 +47,11 @@
class AwaitableOrContextManager(
typing.Awaitable[T_co], typing.AsyncContextManager[T_co], typing.Protocol[T_co]
-):
- ...
+): ...
class SupportsAsyncClose(typing.Protocol):
- async def close(self) -> None:
- ... # pragma: no cover
+ async def close(self) -> None: ... # pragma: no cover
SupportsAsyncCloseType = typing.TypeVar(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/starlette-0.37.2/starlette/config.py new/starlette-0.38.2/starlette/config.py
--- old/starlette-0.37.2/starlette/config.py 2024-03-05 17:08:44.000000000 +0100
+++ new/starlette-0.38.2/starlette/config.py 2024-07-27 19:55:52.000000000 +0200
@@ -68,16 +68,13 @@
self.file_values = self._read_file(env_file)
@typing.overload
- def __call__(self, key: str, *, default: None) -> str | None:
- ...
+ def __call__(self, key: str, *, default: None) -> str | None: ...
@typing.overload
- def __call__(self, key: str, cast: type[T], default: T = ...) -> T:
- ...
+ def __call__(self, key: str, cast: type[T], default: T = ...) -> T: ...
@typing.overload
- def __call__(self, key: str, cast: type[str] = ..., default: str = ...) -> str:
- ...
+ def __call__(self, key: str, cast: type[str] = ..., default: str = ...) -> str: ...
@typing.overload
def __call__(
@@ -85,12 +82,12 @@
key: str,
cast: typing.Callable[[typing.Any], T] = ...,
default: typing.Any = ...,
- ) -> T:
- ...
+ ) -> T: ...
@typing.overload
- def __call__(self, key: str, cast: type[str] = ..., default: T = ...) -> T | str:
- ...
+ def __call__(
+ self, key: str, cast: type[str] = ..., default: T = ...
+ ) -> T | str: ...
def __call__(
self,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/starlette-0.37.2/starlette/middleware/__init__.py new/starlette-0.38.2/starlette/middleware/__init__.py
--- old/starlette-0.37.2/starlette/middleware/__init__.py 2024-03-05 17:08:44.000000000 +0100
+++ new/starlette-0.38.2/starlette/middleware/__init__.py 2024-07-27 19:55:52.000000000 +0200
@@ -14,11 +14,13 @@
class _MiddlewareClass(Protocol[P]):
- def __init__(self, app: ASGIApp, *args: P.args, **kwargs: P.kwargs) -> None:
- ... # pragma: no cover
+ def __init__(
+ self, app: ASGIApp, *args: P.args, **kwargs: P.kwargs
+ ) -> None: ... # pragma: no cover
- async def __call__(self, scope: Scope, receive: Receive, send: Send) -> None:
- ... # pragma: no cover
+ async def __call__(
+ self, scope: Scope, receive: Receive, send: Send
+ ) -> None: ... # pragma: no cover
class Middleware:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/starlette-0.37.2/starlette/requests.py new/starlette-0.38.2/starlette/requests.py
--- old/starlette-0.37.2/starlette/requests.py 2024-03-05 17:08:44.000000000 +0100
+++ new/starlette-0.38.2/starlette/requests.py 2024-07-27 19:55:52.000000000 +0200
@@ -145,7 +145,7 @@
@property
def client(self) -> Address | None:
- # client is a 2 item tuple of (host, port), None or missing
+ # client is a 2 item tuple of (host, port), None if missing
host_port = self.scope.get("client")
if host_port is not None:
return Address(*host_port)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/starlette-0.37.2/starlette/responses.py new/starlette-0.38.2/starlette/responses.py
--- old/starlette-0.37.2/starlette/responses.py 2024-03-05 17:08:44.000000000 +0100
+++ new/starlette-0.38.2/starlette/responses.py 2024-07-27 19:55:52.000000000 +0200
@@ -41,10 +41,10 @@
self.body = self.render(content)
self.init_headers(headers)
- def render(self, content: typing.Any) -> bytes:
+ def render(self, content: typing.Any) -> bytes | memoryview:
if content is None:
return b""
- if isinstance(content, bytes):
+ if isinstance(content, (bytes, memoryview)):
return content
return content.encode(self.charset) # type: ignore
@@ -94,7 +94,7 @@
value: str = "",
max_age: int | None = None,
expires: datetime | str | int | None = None,
- path: str = "/",
+ path: str | None = "/",
domain: str | None = None,
secure: bool = False,
httponly: bool = False,
@@ -207,7 +207,7 @@
self.headers["location"] = quote(str(url), safe=":/%#?=@[]!$&'()*+,;")
-Content = typing.Union[str, bytes]
+Content = typing.Union[str, bytes, memoryview]
SyncContentStream = typing.Iterable[Content]
AsyncContentStream = typing.AsyncIterable[Content]
ContentStream = typing.Union[AsyncContentStream, SyncContentStream]
@@ -248,7 +248,7 @@
}
)
async for chunk in self.body_iterator:
- if not isinstance(chunk, bytes):
+ if not isinstance(chunk, (bytes, memoryview)):
chunk = chunk.encode(self.charset)
await send({"type": "http.response.body", "body": chunk, "more_body": True})
@@ -299,12 +299,10 @@
if self.filename is not None:
content_disposition_filename = quote(self.filename)
if content_disposition_filename != self.filename:
- content_disposition = "{}; filename*=utf-8''{}".format(
- content_disposition_type, content_disposition_filename
- )
+ content_disposition = f"{content_disposition_type}; filename*=utf-8''{content_disposition_filename}" # noqa: E501
else:
- content_disposition = '{}; filename="{}"'.format(
- content_disposition_type, self.filename
+ content_disposition = (
+ f'{content_disposition_type}; filename="{self.filename}"'
)
self.headers.setdefault("content-disposition", content_disposition)
self.stat_result = stat_result
@@ -341,8 +339,6 @@
)
if scope["method"].upper() == "HEAD":
await send({"type": "http.response.body", "body": b"", "more_body": False})
- elif "extensions" in scope and "http.response.pathsend" in scope["extensions"]:
- await send({"type": "http.response.pathsend", "path": str(self.path)})
else:
async with await anyio.open_file(self.path, mode="rb") as file:
more_body = True
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/starlette-0.37.2/starlette/routing.py new/starlette-0.38.2/starlette/routing.py
--- old/starlette-0.37.2/starlette/routing.py 2024-03-05 17:08:44.000000000 +0100
+++ new/starlette-0.38.2/starlette/routing.py 2024-07-27 19:55:52.000000000 +0200
@@ -63,15 +63,15 @@
Takes a function or coroutine `func(request) -> response`,
and returns an ASGI application.
"""
+ f: typing.Callable[[Request], typing.Awaitable[Response]] = (
+ func if is_async_callable(func) else functools.partial(run_in_threadpool, func) # type:ignore
+ )
async def app(scope: Scope, receive: Receive, send: Send) -> None:
request = Request(scope, receive, send)
async def app(scope: Scope, receive: Receive, send: Send) -> None:
- if is_async_callable(func):
- response = await func(request)
- else:
- response = await run_in_threadpool(func, request)
+ response = await f(request)
await response(scope, receive, send)
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
@@ -99,9 +99,7 @@
def get_name(endpoint: typing.Callable[..., typing.Any]) -> str:
- if inspect.isroutine(endpoint) or inspect.isclass(endpoint):
- return endpoint.__name__
- return endpoint.__class__.__name__
+ return getattr(endpoint, "__name__", endpoint.__class__.__name__)
def replace_params(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/starlette-0.37.2/starlette/staticfiles.py new/starlette-0.38.2/starlette/staticfiles.py
--- old/starlette-0.37.2/starlette/staticfiles.py 2024-03-05 17:08:44.000000000 +0100
+++ new/starlette-0.38.2/starlette/staticfiles.py 2024-07-27 19:55:52.000000000 +0200
@@ -1,5 +1,6 @@
from __future__ import annotations
+import errno
import importlib.util
import os
import stat
@@ -124,8 +125,12 @@
)
except PermissionError:
raise HTTPException(status_code=401)
- except OSError:
- raise
+ except OSError as exc:
+ # Filename is too long, so it can't be a valid static file.
+ if exc.errno == errno.ENAMETOOLONG:
+ raise HTTPException(status_code=404)
+
+ raise exc
if stat_result and stat.S_ISREG(stat_result.st_mode):
# We have a static file to serve.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/starlette-0.37.2/starlette/status.py new/starlette-0.38.2/starlette/status.py
--- old/starlette-0.37.2/starlette/status.py 2024-03-05 17:08:44.000000000 +0100
+++ new/starlette-0.38.2/starlette/status.py 2024-07-27 19:55:52.000000000 +0200
@@ -5,6 +5,7 @@
And RFC 2324 - https://tools.ietf.org/html/rfc2324
"""
+
from __future__ import annotations
import warnings
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/starlette-0.37.2/starlette/templating.py new/starlette-0.38.2/starlette/templating.py
--- old/starlette-0.37.2/starlette/templating.py 2024-03-05 17:08:44.000000000 +0100
+++ new/starlette-0.38.2/starlette/templating.py 2024-07-27 19:55:52.000000000 +0200
@@ -66,15 +66,12 @@
@typing.overload
def __init__(
self,
- directory: str
- | PathLike[typing.AnyStr]
- | typing.Sequence[str | PathLike[typing.AnyStr]],
+ directory: str | PathLike[str] | typing.Sequence[str | PathLike[str]],
*,
context_processors: list[typing.Callable[[Request], dict[str, typing.Any]]]
| None = None,
**env_options: typing.Any,
- ) -> None:
- ...
+ ) -> None: ...
@typing.overload
def __init__(
@@ -83,14 +80,13 @@
env: jinja2.Environment,
context_processors: list[typing.Callable[[Request], dict[str, typing.Any]]]
| None = None,
- ) -> None:
- ...
+ ) -> None: ...
def __init__(
self,
directory: str
- | PathLike[typing.AnyStr]
- | typing.Sequence[str | PathLike[typing.AnyStr]]
+ | PathLike[str]
+ | typing.Sequence[str | PathLike[str]]
| None = None,
*,
context_processors: list[typing.Callable[[Request], dict[str, typing.Any]]]
@@ -104,7 +100,9 @@
DeprecationWarning,
)
assert jinja2 is not None, "jinja2 must be installed to use Jinja2Templates"
- assert directory or env, "either 'directory' or 'env' arguments must be passed"
+ assert bool(directory) ^ bool(
+ env
+ ), "either 'directory' or 'env' arguments must be passed"
self.context_processors = context_processors or []
if directory is not None:
self.env = self._create_env(directory, **env_options)
@@ -115,9 +113,7 @@
def _create_env(
self,
- directory: str
- | PathLike[typing.AnyStr]
- | typing.Sequence[str | PathLike[typing.AnyStr]],
+ directory: str | PathLike[str] | typing.Sequence[str | PathLike[str]],
**env_options: typing.Any,
) -> jinja2.Environment:
loader = jinja2.FileSystemLoader(directory)
@@ -152,8 +148,7 @@
headers: typing.Mapping[str, str] | None = None,
media_type: str | None = None,
background: BackgroundTask | None = None,
- ) -> _TemplateResponse:
- ...
+ ) -> _TemplateResponse: ...
@typing.overload
def TemplateResponse(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/starlette-0.37.2/starlette/testclient.py new/starlette-0.38.2/starlette/testclient.py
--- old/starlette-0.37.2/starlette/testclient.py 2024-03-05 17:08:44.000000000 +0100
+++ new/starlette-0.38.2/starlette/testclient.py 2024-07-27 19:55:52.000000000 +0200
@@ -160,7 +160,8 @@
async def _asgi_receive(self) -> Message:
while self._receive_queue.empty():
- await anyio.sleep(0)
+ self._queue_event = anyio.Event()
+ await self._queue_event.wait()
return self._receive_queue.get()
async def _asgi_send(self, message: Message) -> None:
@@ -189,6 +190,8 @@
def send(self, message: Message) -> None:
self._receive_queue.put(message)
+ if hasattr(self, "_queue_event"):
+ self.portal.start_task_soon(self._queue_event.set)
def send_text(self, data: str) -> None:
self.send({"type": "websocket.receive", "text": data})
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/starlette-0.37.2/tests/conftest.py new/starlette-0.38.2/tests/conftest.py
--- old/starlette-0.37.2/tests/conftest.py 2024-03-05 17:08:44.000000000 +0100
+++ new/starlette-0.38.2/tests/conftest.py 2024-07-27 19:55:52.000000000 +0200
@@ -1,13 +1,12 @@
from __future__ import annotations
import functools
-from typing import Any, Callable, Literal
+from typing import Any, Literal
import pytest
from starlette.testclient import TestClient
-
-TestClientFactory = Callable[..., TestClient]
+from tests.types import TestClientFactory
@pytest.fixture
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/starlette-0.37.2/tests/middleware/test_base.py new/starlette-0.38.2/tests/middleware/test_base.py
--- old/starlette-0.37.2/tests/middleware/test_base.py 2024-03-05 17:08:44.000000000 +0100
+++ new/starlette-0.38.2/tests/middleware/test_base.py 2024-07-27 19:55:52.000000000 +0200
@@ -5,7 +5,6 @@
from typing import (
Any,
AsyncGenerator,
- Callable,
Generator,
)
@@ -23,8 +22,7 @@
from starlette.testclient import TestClient
from starlette.types import ASGIApp, Message, Receive, Scope, Send
from starlette.websockets import WebSocket
-
-TestClientFactory = Callable[[ASGIApp], TestClient]
+from tests.types import TestClientFactory
class CustomMiddleware(BaseHTTPMiddleware):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/starlette-0.37.2/tests/middleware/test_cors.py new/starlette-0.38.2/tests/middleware/test_cors.py
--- old/starlette-0.37.2/tests/middleware/test_cors.py 2024-03-05 17:08:44.000000000 +0100
+++ new/starlette-0.38.2/tests/middleware/test_cors.py 2024-07-27 19:55:52.000000000 +0200
@@ -1,15 +1,10 @@
-from typing import Callable
-
from starlette.applications import Starlette
from starlette.middleware import Middleware
from starlette.middleware.cors import CORSMiddleware
from starlette.requests import Request
from starlette.responses import PlainTextResponse
from starlette.routing import Route
-from starlette.testclient import TestClient
-from starlette.types import ASGIApp
-
-TestClientFactory = Callable[[ASGIApp], TestClient]
+from tests.types import TestClientFactory
def test_cors_allow_all(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/starlette-0.37.2/tests/middleware/test_errors.py new/starlette-0.38.2/tests/middleware/test_errors.py
--- old/starlette-0.37.2/tests/middleware/test_errors.py 2024-03-05 17:08:44.000000000 +0100
+++ new/starlette-0.38.2/tests/middleware/test_errors.py 2024-07-27 19:55:52.000000000 +0200
@@ -1,4 +1,4 @@
-from typing import Any, Callable
+from typing import Any
import pytest
@@ -8,10 +8,8 @@
from starlette.requests import Request
from starlette.responses import JSONResponse, Response
from starlette.routing import Route
-from starlette.testclient import TestClient
from starlette.types import Receive, Scope, Send
-
-TestClientFactory = Callable[..., TestClient]
+from tests.types import TestClientFactory
def test_handler(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/starlette-0.37.2/tests/middleware/test_gzip.py new/starlette-0.38.2/tests/middleware/test_gzip.py
--- old/starlette-0.37.2/tests/middleware/test_gzip.py 2024-03-05 17:08:44.000000000 +0100
+++ new/starlette-0.38.2/tests/middleware/test_gzip.py 2024-07-27 19:55:52.000000000 +0200
@@ -1,15 +1,10 @@
-from typing import Callable
-
from starlette.applications import Starlette
from starlette.middleware import Middleware
from starlette.middleware.gzip import GZipMiddleware
from starlette.requests import Request
from starlette.responses import ContentStream, PlainTextResponse, StreamingResponse
from starlette.routing import Route
-from starlette.testclient import TestClient
-from starlette.types import ASGIApp
-
-TestClientFactory = Callable[[ASGIApp], TestClient]
+from tests.types import TestClientFactory
def test_gzip_responses(test_client_factory: TestClientFactory) -> None:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/starlette-0.37.2/tests/middleware/test_https_redirect.py new/starlette-0.38.2/tests/middleware/test_https_redirect.py
--- old/starlette-0.37.2/tests/middleware/test_https_redirect.py 2024-03-05 17:08:44.000000000 +0100
+++ new/starlette-0.38.2/tests/middleware/test_https_redirect.py 2024-07-27 19:55:52.000000000 +0200
@@ -1,14 +1,10 @@
-from typing import Callable
-
from starlette.applications import Starlette
from starlette.middleware import Middleware
from starlette.middleware.httpsredirect import HTTPSRedirectMiddleware
from starlette.requests import Request
from starlette.responses import PlainTextResponse
from starlette.routing import Route
-from starlette.testclient import TestClient
-
-TestClientFactory = Callable[..., TestClient]
+from tests.types import TestClientFactory
def test_https_redirect_middleware(test_client_factory: TestClientFactory) -> None:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/starlette-0.37.2/tests/middleware/test_session.py new/starlette-0.38.2/tests/middleware/test_session.py
--- old/starlette-0.37.2/tests/middleware/test_session.py 2024-03-05 17:08:44.000000000 +0100
+++ new/starlette-0.38.2/tests/middleware/test_session.py 2024-07-27 19:55:52.000000000 +0200
@@ -1,5 +1,4 @@
import re
-from typing import Callable
from starlette.applications import Starlette
from starlette.middleware import Middleware
@@ -8,8 +7,7 @@
from starlette.responses import JSONResponse
from starlette.routing import Mount, Route
from starlette.testclient import TestClient
-
-TestClientFactory = Callable[..., TestClient]
+from tests.types import TestClientFactory
def view_session(request: Request) -> JSONResponse:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/starlette-0.37.2/tests/middleware/test_trusted_host.py new/starlette-0.38.2/tests/middleware/test_trusted_host.py
--- old/starlette-0.37.2/tests/middleware/test_trusted_host.py 2024-03-05 17:08:44.000000000 +0100
+++ new/starlette-0.38.2/tests/middleware/test_trusted_host.py 2024-07-27 19:55:52.000000000 +0200
@@ -1,14 +1,10 @@
-from typing import Callable
-
from starlette.applications import Starlette
from starlette.middleware import Middleware
from starlette.middleware.trustedhost import TrustedHostMiddleware
from starlette.requests import Request
from starlette.responses import PlainTextResponse
from starlette.routing import Route
-from starlette.testclient import TestClient
-
-TestClientFactory = Callable[..., TestClient]
+from tests.types import TestClientFactory
def test_trusted_host_middleware(test_client_factory: TestClientFactory) -> None:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/starlette-0.37.2/tests/middleware/test_wsgi.py new/starlette-0.38.2/tests/middleware/test_wsgi.py
--- old/starlette-0.37.2/tests/middleware/test_wsgi.py 2024-03-05 17:08:44.000000000 +0100
+++ new/starlette-0.38.2/tests/middleware/test_wsgi.py 2024-07-27 19:55:52.000000000 +0200
@@ -5,10 +5,9 @@
from starlette._utils import collapse_excgroups
from starlette.middleware.wsgi import WSGIMiddleware, build_environ
-from starlette.testclient import TestClient
+from tests.types import TestClientFactory
WSGIResponse = Iterable[bytes]
-TestClientFactory = Callable[..., TestClient]
StartResponse = Callable[..., Any]
Environment = Dict[str, Any]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/starlette-0.37.2/tests/test__utils.py new/starlette-0.38.2/tests/test__utils.py
--- old/starlette-0.37.2/tests/test__utils.py 2024-03-05 17:08:44.000000000 +0100
+++ new/starlette-0.38.2/tests/test__utils.py 2024-07-27 19:55:52.000000000 +0200
@@ -5,22 +5,18 @@
def test_async_func() -> None:
- async def async_func() -> None:
- ... # pragma: no cover
+ async def async_func() -> None: ... # pragma: no cover
- def func() -> None:
- ... # pragma: no cover
+ def func() -> None: ... # pragma: no cover
assert is_async_callable(async_func)
assert not is_async_callable(func)
def test_async_partial() -> None:
- async def async_func(a: Any, b: Any) -> None:
- ... # pragma: no cover
+ async def async_func(a: Any, b: Any) -> None: ... # pragma: no cover
- def func(a: Any, b: Any) -> None:
- ... # pragma: no cover
+ def func(a: Any, b: Any) -> None: ... # pragma: no cover
partial = functools.partial(async_func, 1)
assert is_async_callable(partial)
@@ -31,12 +27,10 @@
def test_async_method() -> None:
class Async:
- async def method(self) -> None:
- ... # pragma: no cover
+ async def method(self) -> None: ... # pragma: no cover
class Sync:
- def method(self) -> None:
- ... # pragma: no cover
+ def method(self) -> None: ... # pragma: no cover
assert is_async_callable(Async().method)
assert not is_async_callable(Sync().method)
@@ -44,12 +38,10 @@
def test_async_object_call() -> None:
class Async:
- async def __call__(self) -> None:
- ... # pragma: no cover
+ async def __call__(self) -> None: ... # pragma: no cover
class Sync:
- def __call__(self) -> None:
- ... # pragma: no cover
+ def __call__(self) -> None: ... # pragma: no cover
assert is_async_callable(Async())
assert not is_async_callable(Sync())
@@ -61,16 +53,14 @@
self,
a: Any,
b: Any,
- ) -> None:
- ... # pragma: no cover
+ ) -> None: ... # pragma: no cover
class Sync:
def __call__(
self,
a: Any,
b: Any,
- ) -> None:
- ... # pragma: no cover
+ ) -> None: ... # pragma: no cover
partial = functools.partial(Async(), 1)
assert is_async_callable(partial)
@@ -83,8 +73,7 @@
async def async_func(
a: Any,
b: Any,
- ) -> None:
- ... # pragma: no cover
+ ) -> None: ... # pragma: no cover
partial = functools.partial(async_func, b=2)
nested_partial = functools.partial(partial, a=1)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/starlette-0.37.2/tests/test_applications.py new/starlette-0.38.2/tests/test_applications.py
--- old/starlette-0.37.2/tests/test_applications.py 2024-03-05 17:08:44.000000000 +0100
+++ new/starlette-0.38.2/tests/test_applications.py 2024-07-27 19:55:52.000000000 +0200
@@ -1,7 +1,7 @@
import os
from contextlib import asynccontextmanager
from pathlib import Path
-from typing import AsyncGenerator, AsyncIterator, Callable, Generator
+from typing import AsyncGenerator, AsyncIterator, Generator
import anyio
import pytest
@@ -20,8 +20,7 @@
from starlette.testclient import TestClient
from starlette.types import ASGIApp, Receive, Scope, Send
from starlette.websockets import WebSocket
-
-TestClientFactory = Callable[..., TestClient]
+from tests.types import TestClientFactory
async def error_500(request: Request, exc: HTTPException) -> JSONResponse:
@@ -463,8 +462,7 @@
async def middleware(
request: Request, call_next: RequestResponseEndpoint
- ) -> None:
- ... # pragma: no cover
+ ) -> None: ... # pragma: no cover
app.middleware("http")(middleware)
assert len(record) == 1
@@ -494,8 +492,7 @@
)
) as record:
- async def startup() -> None:
- ... # pragma: no cover
+ async def startup() -> None: ... # pragma: no cover
app.on_event("startup")(startup)
assert len(record) == 1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/starlette-0.37.2/tests/test_authentication.py new/starlette-0.38.2/tests/test_authentication.py
--- old/starlette-0.37.2/tests/test_authentication.py 2024-03-05 17:08:44.000000000 +0100
+++ new/starlette-0.38.2/tests/test_authentication.py 2024-07-27 19:55:52.000000000 +0200
@@ -21,10 +21,9 @@
from starlette.requests import HTTPConnection, Request
from starlette.responses import JSONResponse, Response
from starlette.routing import Route, WebSocketRoute
-from starlette.testclient import TestClient
from starlette.websockets import WebSocket, WebSocketDisconnect
+from tests.types import TestClientFactory
-TestClientFactory = Callable[..., TestClient]
AsyncEndpoint = Callable[..., Awaitable[Response]]
SyncEndpoint = Callable[..., Response]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/starlette-0.37.2/tests/test_background.py new/starlette-0.38.2/tests/test_background.py
--- old/starlette-0.37.2/tests/test_background.py 2024-03-05 17:08:44.000000000 +0100
+++ new/starlette-0.38.2/tests/test_background.py 2024-07-27 19:55:52.000000000 +0200
@@ -1,13 +1,9 @@
-from typing import Callable
-
import pytest
from starlette.background import BackgroundTask, BackgroundTasks
from starlette.responses import Response
-from starlette.testclient import TestClient
from starlette.types import Receive, Scope, Send
-
-TestClientFactory = Callable[..., TestClient]
+from tests.types import TestClientFactory
def test_async_task(test_client_factory: TestClientFactory) -> None:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/starlette-0.37.2/tests/test_concurrency.py new/starlette-0.38.2/tests/test_concurrency.py
--- old/starlette-0.37.2/tests/test_concurrency.py 2024-03-05 17:08:44.000000000 +0100
+++ new/starlette-0.38.2/tests/test_concurrency.py 2024-07-27 19:55:52.000000000 +0200
@@ -1,5 +1,5 @@
from contextvars import ContextVar
-from typing import Callable, Iterator
+from typing import Iterator
import anyio
import pytest
@@ -9,9 +9,7 @@
from starlette.requests import Request
from starlette.responses import Response
from starlette.routing import Route
-from starlette.testclient import TestClient
-
-TestClientFactory = Callable[..., TestClient]
+from tests.types import TestClientFactory
@pytest.mark.anyio
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/starlette-0.37.2/tests/test_convertors.py new/starlette-0.38.2/tests/test_convertors.py
--- old/starlette-0.37.2/tests/test_convertors.py 2024-03-05 17:08:44.000000000 +0100
+++ new/starlette-0.38.2/tests/test_convertors.py 2024-07-27 19:55:52.000000000 +0200
@@ -1,5 +1,5 @@
from datetime import datetime
-from typing import Callable, Iterator
+from typing import Iterator
import pytest
@@ -8,9 +8,7 @@
from starlette.requests import Request
from starlette.responses import JSONResponse
from starlette.routing import Route, Router
-from starlette.testclient import TestClient
-
-TestClientFactory = Callable[..., TestClient]
+from tests.types import TestClientFactory
@pytest.fixture(scope="module", autouse=True)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/starlette-0.37.2/tests/test_datastructures.py new/starlette-0.38.2/tests/test_datastructures.py
--- old/starlette-0.37.2/tests/test_datastructures.py 2024-03-05 17:08:44.000000000 +0100
+++ new/starlette-0.38.2/tests/test_datastructures.py 2024-07-27 19:55:52.000000000 +0200
@@ -58,6 +58,9 @@
url = URL("http://u:p@host:80")
assert url.replace(port=88) == URL("http://u:p@host:88")
+ url = URL("http://host:80")
+ assert url.replace(username="u") == URL("http://u@host:80")
+
def test_url_query_params() -> None:
u = URL("https://example.org/path/?page=3")
@@ -70,6 +73,10 @@
assert str(u) == "https://example.org/path/?order=name"
u = u.remove_query_params("order")
assert str(u) == "https://example.org/path/"
+ u = u.include_query_params(page=4, search="testing")
+ assert str(u) == "https://example.org/path/?page=4&search=testing"
+ u = u.remove_query_params(["page", "search"])
+ assert str(u) == "https://example.org/path/"
def test_hidden_password() -> None:
@@ -138,6 +145,21 @@
assert u == "https://example.org/path/to/somewhere?abc=123"
assert repr(u) == "URL('https://example.org/path/to/somewhere?abc=123')"
+ u = URL(
+ scope={
+ "scheme": "http",
+ "path": "/some/path",
+ "query_string": b"query=string",
+ "headers": [
+ (b"content-type", b"text/html"),
+ (b"host", b"example.com:8000"),
+ (b"accept", b"text/html"),
+ ],
+ }
+ )
+ assert u == "http://example.com:8000/some/path?query=string"
+ assert repr(u) == "URL('http://example.com:8000/some/path?query=string')"
+
def test_headers() -> None:
h = Headers(raw=[(b"a", b"123"), (b"a", b"456"), (b"b", b"789")])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/starlette-0.37.2/tests/test_endpoints.py new/starlette-0.38.2/tests/test_endpoints.py
--- old/starlette-0.37.2/tests/test_endpoints.py 2024-03-05 17:08:44.000000000 +0100
+++ new/starlette-0.38.2/tests/test_endpoints.py 2024-07-27 19:55:52.000000000 +0200
@@ -1,4 +1,4 @@
-from typing import Callable, Iterator
+from typing import Iterator
import pytest
@@ -8,8 +8,7 @@
from starlette.routing import Route, Router
from starlette.testclient import TestClient
from starlette.websockets import WebSocket
-
-TestClientFactory = Callable[..., TestClient]
+from tests.types import TestClientFactory
class Homepage(HTTPEndpoint):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/starlette-0.37.2/tests/test_exceptions.py new/starlette-0.38.2/tests/test_exceptions.py
--- old/starlette-0.37.2/tests/test_exceptions.py 2024-03-05 17:08:44.000000000 +0100
+++ new/starlette-0.38.2/tests/test_exceptions.py 2024-07-27 19:55:52.000000000 +0200
@@ -1,5 +1,5 @@
import warnings
-from typing import Callable, Generator
+from typing import Generator
import pytest
@@ -10,8 +10,7 @@
from starlette.routing import Route, Router, WebSocketRoute
from starlette.testclient import TestClient
from starlette.types import Receive, Scope, Send
-
-TestClientFactory = Callable[..., TestClient]
+from tests.types import TestClientFactory
def raise_runtime_error(request: Request) -> None:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/starlette-0.37.2/tests/test_formparsers.py new/starlette-0.38.2/tests/test_formparsers.py
--- old/starlette-0.37.2/tests/test_formparsers.py 2024-03-05 17:08:44.000000000 +0100
+++ new/starlette-0.38.2/tests/test_formparsers.py 2024-07-27 19:55:52.000000000 +0200
@@ -13,10 +13,8 @@
from starlette.requests import Request
from starlette.responses import JSONResponse
from starlette.routing import Mount
-from starlette.testclient import TestClient
from starlette.types import ASGIApp, Receive, Scope, Send
-
-TestClientFactory = typing.Callable[..., TestClient]
+from tests.types import TestClientFactory
class ForceMultipartDict(typing.Dict[typing.Any, typing.Any]):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/starlette-0.37.2/tests/test_requests.py new/starlette-0.38.2/tests/test_requests.py
--- old/starlette-0.37.2/tests/test_requests.py 2024-03-05 17:08:44.000000000 +0100
+++ new/starlette-0.38.2/tests/test_requests.py 2024-07-27 19:55:52.000000000 +0200
@@ -1,7 +1,7 @@
from __future__ import annotations
import sys
-from typing import Any, Callable, Iterator
+from typing import Any, Iterator
import anyio
import pytest
@@ -9,10 +9,8 @@
from starlette.datastructures import Address, State
from starlette.requests import ClientDisconnect, Request
from starlette.responses import JSONResponse, PlainTextResponse, Response
-from starlette.testclient import TestClient
from starlette.types import Message, Receive, Scope, Send
-
-TestClientFactory = Callable[..., TestClient]
+from tests.types import TestClientFactory
def test_request_url(test_client_factory: TestClientFactory) -> None:
@@ -269,8 +267,8 @@
def test_request_is_disconnected(test_client_factory: TestClientFactory) -> None:
"""
- If a client disconnect occurs while reading request body
- then ClientDisconnect should be raised.
+ If a client disconnect occurs after reading request body
+ then request will be set disconnected properly.
"""
disconnected_after_response = None
@@ -278,15 +276,15 @@
nonlocal disconnected_after_response
request = Request(scope, receive)
- await request.body()
+ body = await request.body()
disconnected = await request.is_disconnected()
- response = JSONResponse({"disconnected": disconnected})
+ response = JSONResponse({"body": body.decode(), "disconnected": disconnected})
await response(scope, receive, send)
disconnected_after_response = await request.is_disconnected()
client = test_client_factory(app)
- response = client.get("/")
- assert response.json() == {"disconnected": False}
+ response = client.post("/", content="foo")
+ assert response.json() == {"body": "foo", "disconnected": False}
assert disconnected_after_response
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/starlette-0.37.2/tests/test_responses.py new/starlette-0.38.2/tests/test_responses.py
--- old/starlette-0.37.2/tests/test_responses.py 2024-03-05 17:08:44.000000000 +0100
+++ new/starlette-0.38.2/tests/test_responses.py 2024-07-27 19:55:52.000000000 +0200
@@ -5,7 +5,7 @@
import time
from http.cookies import SimpleCookie
from pathlib import Path
-from typing import AsyncIterator, Callable, Iterator
+from typing import AsyncIterator, Iterator
import anyio
import pytest
@@ -23,8 +23,7 @@
)
from starlette.testclient import TestClient
from starlette.types import Message, Receive, Scope, Send
-
-TestClientFactory = Callable[..., TestClient]
+from tests.types import TestClientFactory
def test_text_response(test_client_factory: TestClientFactory) -> None:
@@ -350,38 +349,6 @@
FileResponse(path=tmpdir, filename="example.png", method="GET")
-(a)pytest.mark.anyio
-async def test_file_response_with_pathsend(tmpdir: Path) -> None:
- path = os.path.join(tmpdir, "xyz")
- content = b"<file content>" * 1000
- with open(path, "wb") as file:
- file.write(content)
-
- app = FileResponse(path=path, filename="example.png")
-
- async def receive() -> Message: # type: ignore[empty-body]
- ... # pragma: no cover
-
- async def send(message: Message) -> None:
- if message["type"] == "http.response.start":
- assert message["status"] == status.HTTP_200_OK
- headers = Headers(raw=message["headers"])
- assert headers["content-type"] == "image/png"
- assert "content-length" in headers
- assert "content-disposition" in headers
- assert "last-modified" in headers
- assert "etag" in headers
- elif message["type"] == "http.response.pathsend":
- assert message["path"] == str(path)
-
- # Since the TestClient doesn't support `pathsend`, we need to test this directly.
- await app(
- {"type": "http", "method": "get", "extensions": {"http.response.pathsend": {}}},
- receive,
- send,
- )
-
-
def test_set_cookie(
test_client_factory: TestClientFactory, monkeypatch: pytest.MonkeyPatch
) -> None:
@@ -541,6 +508,20 @@
assert response.headers["content-length"] == "10"
+def test_response_memoryview(test_client_factory: TestClientFactory) -> None:
+ app = Response(content=memoryview(b"\xc0"))
+ client: TestClient = test_client_factory(app)
+ response = client.get("/")
+ assert response.content == b"\xc0"
+
+
+def test_streaming_response_memoryview(test_client_factory: TestClientFactory) -> None:
+ app = StreamingResponse(content=iter([memoryview(b"\xc0"), memoryview(b"\xf5")]))
+ client: TestClient = test_client_factory(app)
+ response = client.get("/")
+ assert response.content == b"\xc0\xf5"
+
+
@pytest.mark.anyio
async def test_streaming_response_stops_if_receiving_http_disconnect() -> None:
streamed = 0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/starlette-0.37.2/tests/test_routing.py new/starlette-0.38.2/tests/test_routing.py
--- old/starlette-0.37.2/tests/test_routing.py 2024-03-05 17:08:44.000000000 +0100
+++ new/starlette-0.38.2/tests/test_routing.py 2024-07-27 19:55:52.000000000 +0200
@@ -17,8 +17,7 @@
from starlette.testclient import TestClient
from starlette.types import ASGIApp, Message, Receive, Scope, Send
from starlette.websockets import WebSocket, WebSocketDisconnect
-
-TestClientFactory = typing.Callable[..., TestClient]
+from tests.types import TestClientFactory
def homepage(request: Request) -> Response:
@@ -909,19 +908,15 @@
class Endpoint:
- async def my_method(self, request: Request) -> None:
- ... # pragma: no cover
+ async def my_method(self, request: Request) -> None: ... # pragma: no cover
@classmethod
- async def my_classmethod(cls, request: Request) -> None:
- ... # pragma: no cover
+ async def my_classmethod(cls, request: Request) -> None: ... # pragma: no cover
@staticmethod
- async def my_staticmethod(request: Request) -> None:
- ... # pragma: no cover
+ async def my_staticmethod(request: Request) -> None: ... # pragma: no cover
- def __call__(self, request: Request) -> None:
- ... # pragma: no cover
+ def __call__(self, request: Request) -> None: ... # pragma: no cover
@pytest.mark.parametrize(
@@ -1254,8 +1249,7 @@
with pytest.deprecated_call():
- async def startup() -> None:
- ... # pragma: nocover
+ async def startup() -> None: ... # pragma: nocover
router.on_event("startup")(startup)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/starlette-0.37.2/tests/test_schemas.py new/starlette-0.38.2/tests/test_schemas.py
--- old/starlette-0.37.2/tests/test_schemas.py 2024-03-05 17:08:44.000000000 +0100
+++ new/starlette-0.38.2/tests/test_schemas.py 2024-07-27 19:55:52.000000000 +0200
@@ -1,20 +1,16 @@
-from typing import Callable
-
from starlette.applications import Starlette
from starlette.endpoints import HTTPEndpoint
from starlette.requests import Request
from starlette.responses import Response
from starlette.routing import Host, Mount, Route, Router, WebSocketRoute
from starlette.schemas import SchemaGenerator
-from starlette.testclient import TestClient
from starlette.websockets import WebSocket
+from tests.types import TestClientFactory
schemas = SchemaGenerator(
{"openapi": "3.0.0", "info": {"title": "Example API", "version": "1.0"}}
)
-TestClientFactory = Callable[..., TestClient]
-
def ws(session: WebSocket) -> None:
"""ws"""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/starlette-0.37.2/tests/test_staticfiles.py new/starlette-0.38.2/tests/test_staticfiles.py
--- old/starlette-0.37.2/tests/test_staticfiles.py 2024-03-05 17:08:44.000000000 +0100
+++ new/starlette-0.38.2/tests/test_staticfiles.py 2024-07-27 19:55:52.000000000 +0200
@@ -16,9 +16,7 @@
from starlette.responses import Response
from starlette.routing import Mount
from starlette.staticfiles import StaticFiles
-from starlette.testclient import TestClient
-
-TestClientFactory = typing.Callable[..., TestClient]
+from tests.types import TestClientFactory
def test_staticfiles(tmpdir: Path, test_client_factory: TestClientFactory) -> None:
@@ -468,6 +466,19 @@
assert response.status_code == 404
assert response.text == "Not Found"
+
+def test_staticfiles_filename_too_long(
+ tmpdir: Path, test_client_factory: TestClientFactory
+) -> None:
+ routes = [Mount("/", app=StaticFiles(directory=tmpdir), name="static")]
+ app = Starlette(routes=routes)
+ client = test_client_factory(app)
+
+ path_max_size = os.pathconf("/", "PC_PATH_MAX")
+ response = client.get(f"/{'a' * path_max_size}.txt")
+ assert response.status_code == 404
+ assert response.text == "Not Found"
+
def test_staticfiles_unhandled_os_error_returns_500(
tmpdir: Path,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/starlette-0.37.2/tests/test_templates.py new/starlette-0.38.2/tests/test_templates.py
--- old/starlette-0.37.2/tests/test_templates.py 2024-03-05 17:08:44.000000000 +0100
+++ new/starlette-0.38.2/tests/test_templates.py 2024-07-27 19:55:52.000000000 +0200
@@ -1,7 +1,6 @@
from __future__ import annotations
import os
-import typing
from pathlib import Path
from unittest import mock
@@ -16,9 +15,7 @@
from starlette.responses import Response
from starlette.routing import Route
from starlette.templating import Jinja2Templates
-from starlette.testclient import TestClient
-
-TestClientFactory = typing.Callable[..., TestClient]
+from tests.types import TestClientFactory
def test_templates(tmpdir: Path, test_client_factory: TestClientFactory) -> None:
@@ -143,6 +140,13 @@
Jinja2Templates() # type: ignore[call-overload]
+def test_templates_require_directory_or_enviroment_not_both() -> None:
+ with pytest.raises(
+ AssertionError, match="either 'directory' or 'env' arguments must be passed"
+ ):
+ Jinja2Templates(directory="dir", env=jinja2.Environment())
+
+
def test_templates_with_directory(tmpdir: Path) -> None:
path = os.path.join(tmpdir, "index.html")
with open(path, "w") as file:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/starlette-0.37.2/tests/test_testclient.py new/starlette-0.38.2/tests/test_testclient.py
--- old/starlette-0.37.2/tests/test_testclient.py 2024-03-05 17:08:44.000000000 +0100
+++ new/starlette-0.38.2/tests/test_testclient.py 2024-07-27 19:55:52.000000000 +0200
@@ -4,7 +4,7 @@
import sys
from asyncio import Task, current_task as asyncio_current_task
from contextlib import asynccontextmanager
-from typing import Any, AsyncGenerator, Callable
+from typing import Any, AsyncGenerator
import anyio
import anyio.lowlevel
@@ -20,8 +20,7 @@
from starlette.testclient import ASGIInstance, TestClient
from starlette.types import ASGIApp, Receive, Scope, Send
from starlette.websockets import WebSocket, WebSocketDisconnect
-
-TestClientFactory = Callable[..., TestClient]
+from tests.types import TestClientFactory
def mock_service_endpoint(request: Request) -> JSONResponse:
@@ -212,7 +211,7 @@
return inner
- client = test_client_factory(app)
+ client = test_client_factory(app) # type: ignore
response = client.get("/")
assert response.text == "Hello, world!"
@@ -252,7 +251,7 @@
return asgi
- client = test_client_factory(app)
+ client = test_client_factory(app) # type: ignore
with client.websocket_connect("/") as websocket:
data = websocket.receive_json()
assert data == {"message": "test"}
@@ -268,7 +267,7 @@
return asgi
- client = test_client_factory(app)
+ client = test_client_factory(app) # type: ignore
with client.websocket_connect("/") as websocket:
...
assert websocket.should_close.is_set()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/starlette-0.37.2/tests/test_websockets.py new/starlette-0.38.2/tests/test_websockets.py
--- old/starlette-0.37.2/tests/test_websockets.py 2024-03-05 17:08:44.000000000 +0100
+++ new/starlette-0.38.2/tests/test_websockets.py 2024-07-27 19:55:52.000000000 +0200
@@ -1,5 +1,5 @@
import sys
-from typing import Any, Callable, MutableMapping
+from typing import Any, MutableMapping
import anyio
import pytest
@@ -7,11 +7,10 @@
from starlette import status
from starlette.responses import Response
-from starlette.testclient import TestClient, WebSocketDenialResponse
+from starlette.testclient import WebSocketDenialResponse
from starlette.types import Message, Receive, Scope, Send
from starlette.websockets import WebSocket, WebSocketDisconnect, WebSocketState
-
-TestClientFactory = Callable[..., TestClient]
+from tests.types import TestClientFactory
def test_websocket_url(test_client_factory: TestClientFactory) -> None:
@@ -492,8 +491,7 @@
async def mock_receive() -> Message: # type: ignore
... # pragma: no cover
- async def mock_send(message: Message) -> None:
- ... # pragma: no cover
+ async def mock_send(message: Message) -> None: ... # pragma: no cover
websocket = WebSocket(
{"type": "websocket", "path": "/abc/", "headers": []},
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/starlette-0.37.2/tests/types.py new/starlette-0.38.2/tests/types.py
--- old/starlette-0.37.2/tests/types.py 1970-01-01 01:00:00.000000000 +0100
+++ new/starlette-0.38.2/tests/types.py 2024-07-27 19:55:52.000000000 +0200
@@ -0,0 +1,26 @@
+from __future__ import annotations
+
+from typing import TYPE_CHECKING, Protocol
+
+import httpx
+
+from starlette.testclient import TestClient
+from starlette.types import ASGIApp
+
+if TYPE_CHECKING:
+
+ class TestClientFactory(Protocol): # pragma: no cover
+ def __call__(
+ self,
+ app: ASGIApp,
+ base_url: str = "http://testserver",
+ raise_server_exceptions: bool = True,
+ root_path: str = "",
+ cookies: httpx._types.CookieTypes | None = None,
+ headers: dict[str, str] | None = None,
+ follow_redirects: bool = True,
+ ) -> TestClient: ...
+else: # pragma: no cover
+
+ class TestClientFactory:
+ __test__ = False
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package protobuf for openSUSE:Factory checked in at 2024-08-15 09:57:20
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/protobuf (Old)
and /work/SRC/openSUSE:Factory/.protobuf.new.7232 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "protobuf"
Thu Aug 15 09:57:20 2024 rev:82 rq:1193345 version:unknown
Changes:
--------
--- /work/SRC/openSUSE:Factory/protobuf/protobuf.changes 2024-08-07 06:10:16.349991929 +0200
+++ /work/SRC/openSUSE:Factory/.protobuf.new.7232/protobuf.changes 2024-08-15 09:57:22.684592692 +0200
@@ -1,0 +2,8 @@
+Sun Aug 11 09:49:53 UTC 2024 - Andreas Stieger <andreas.stieger(a)gmx.de>
+
+- tweak and correct how minimum version of abseil is specified
+ (20230125 to 20230125.3)
+- Remove explicit requirements of the protobuf-devel package, as
+ the they are autogenerated when needed
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ protobuf.spec ++++++
--- /var/tmp/diff_new_pack.kI1n0F/_old 2024-08-15 09:57:23.232615628 +0200
+++ /var/tmp/diff_new_pack.kI1n0F/_new 2024-08-15 09:57:23.236615795 +0200
@@ -19,6 +19,8 @@
%define tarname protobuf
%define extra_java_flags -source 8 -target 8
+# see cmake/abseil-cpp.cmake and src/google/protobuf/port_def.inc
+%define abseil_min_version 20230125.3
# requires gmock, which is not yet in the distribution
%bcond_with check
%bcond_without java
@@ -39,12 +41,46 @@
BuildRequires: %{python_module devel >= 3.7}
BuildRequires: %{python_module python-dateutil}
BuildRequires: %{python_module setuptools}
-BuildRequires: abseil-cpp-devel >= 20230125
+BuildRequires: c++_compiler
BuildRequires: cmake
BuildRequires: fdupes
-BuildRequires: gcc-c++
BuildRequires: pkgconfig
BuildRequires: python-rpm-macros
+# see cmake/abseil-cpp.cmake
+BuildRequires: pkgconfig(absl_absl_check) >= %{abseil_min_version}
+BuildRequires: pkgconfig(absl_absl_log) >= %{abseil_min_version}
+BuildRequires: pkgconfig(absl_algorithm) >= %{abseil_min_version}
+BuildRequires: pkgconfig(absl_base) >= %{abseil_min_version}
+BuildRequires: pkgconfig(absl_bind_front) >= %{abseil_min_version}
+BuildRequires: pkgconfig(absl_bits) >= %{abseil_min_version}
+BuildRequires: pkgconfig(absl_btree) >= %{abseil_min_version}
+BuildRequires: pkgconfig(absl_cleanup) >= %{abseil_min_version}
+BuildRequires: pkgconfig(absl_cord) >= %{abseil_min_version}
+BuildRequires: pkgconfig(absl_core_headers) >= %{abseil_min_version}
+BuildRequires: pkgconfig(absl_debugging) >= %{abseil_min_version}
+BuildRequires: pkgconfig(absl_die_if_null) >= %{abseil_min_version}
+BuildRequires: pkgconfig(absl_dynamic_annotations) >= %{abseil_min_version}
+BuildRequires: pkgconfig(absl_flags) >= %{abseil_min_version}
+BuildRequires: pkgconfig(absl_flat_hash_map) >= %{abseil_min_version}
+BuildRequires: pkgconfig(absl_flat_hash_set) >= %{abseil_min_version}
+BuildRequires: pkgconfig(absl_function_ref) >= %{abseil_min_version}
+BuildRequires: pkgconfig(absl_hash) >= %{abseil_min_version}
+BuildRequires: pkgconfig(absl_layout) >= %{abseil_min_version}
+BuildRequires: pkgconfig(absl_log_initialize) >= %{abseil_min_version}
+BuildRequires: pkgconfig(absl_log_severity) >= %{abseil_min_version}
+BuildRequires: pkgconfig(absl_memory) >= %{abseil_min_version}
+BuildRequires: pkgconfig(absl_node_hash_map) >= %{abseil_min_version}
+BuildRequires: pkgconfig(absl_node_hash_set) >= %{abseil_min_version}
+BuildRequires: pkgconfig(absl_optional) >= %{abseil_min_version}
+BuildRequires: pkgconfig(absl_span) >= %{abseil_min_version}
+BuildRequires: pkgconfig(absl_status) >= %{abseil_min_version}
+BuildRequires: pkgconfig(absl_statusor) >= %{abseil_min_version}
+BuildRequires: pkgconfig(absl_strings) >= %{abseil_min_version}
+BuildRequires: pkgconfig(absl_synchronization) >= %{abseil_min_version}
+BuildRequires: pkgconfig(absl_time) >= %{abseil_min_version}
+BuildRequires: pkgconfig(absl_type_traits) >= %{abseil_min_version}
+BuildRequires: pkgconfig(absl_utility) >= %{abseil_min_version}
+BuildRequires: pkgconfig(absl_variant) >= %{abseil_min_version}
BuildRequires: pkgconfig(zlib)
%if %{with check}
BuildRequires: libgmock-devel >= 1.7.0
@@ -99,11 +135,8 @@
%package devel
Summary: Header files, libraries and development documentation for %{name}
Group: Development/Libraries/C and C++
-Requires: abseil-cpp-devel >= 20230125
-Requires: gcc-c++
Requires: libprotobuf%{sover} = %{VERSION}
Requires: libprotobuf-lite%{sover}
-Requires: pkgconfig(zlib)
Conflicts: protobuf2-devel
Conflicts: protobuf21-devel
Provides: libprotobuf-devel = %{VERSION}
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package go for openSUSE:Factory checked in at 2024-08-15 09:57:19
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/go (Old)
and /work/SRC/openSUSE:Factory/.go.new.7232 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "go"
Thu Aug 15 09:57:19 2024 rev:107 rq:1145428 version:1.22
Changes:
--------
--- /work/SRC/openSUSE:Factory/go/go.changes 2023-08-10 15:33:31.152021103 +0200
+++ /work/SRC/openSUSE:Factory/.go.new.7232/go.changes 2024-08-15 09:57:21.900559880 +0200
@@ -1,0 +2,6 @@
+Mon Jan 8 19:21:12 UTC 2024 - Jeff Kowalczyk <jkowalczyk(a)suse.com>
+
+- Update to current stable go1.22
+ Refs boo#1218424 go1.22 release tracking
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ go.spec ++++++
--- /var/tmp/diff_new_pack.S7WsVk/_old 2024-08-15 09:57:22.488584489 +0200
+++ /var/tmp/diff_new_pack.S7WsVk/_new 2024-08-15 09:57:22.492584657 +0200
@@ -26,7 +26,7 @@
%endif
Name: go
-Version: 1.21
+Version: 1.22
# Version must always be a valid golang(API) version
%define api_version %{version}
Release: 0
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package 000product for openSUSE:Factory checked in at 2024-08-14 19:16:17
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/000product (Old)
and /work/SRC/openSUSE:Factory/.000product.new.7232 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "000product"
Wed Aug 14 19:16:17 2024 rev:4108 rq: version:unknown
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ MicroOS-dvd5-dvd-x86_64.kiwi ++++++
--- /var/tmp/diff_new_pack.s06PfP/_old 2024-08-14 19:16:21.957789844 +0200
+++ /var/tmp/diff_new_pack.s06PfP/_new 2024-08-14 19:16:21.965790177 +0200
@@ -1,4 +1,4 @@
-<image name="OBS__MicroOS___20240813" schemaversion="4.1">
+<image name="OBS__MicroOS___20240814" schemaversion="4.1">
<description type="system">
<author>The SUSE Team</author>
<contact>build(a)opensuse.org</contact>
@@ -35,11 +35,11 @@
<productvar name="SEPARATE_MEDIA">true</productvar>
<productvar name="SHA1OPT">-x -2</productvar>
<productvar name="VENDOR">openSUSE</productvar>
- <productvar name="VERSION">20240813</productvar>
+ <productvar name="VERSION">20240814</productvar>
<productinfo name="CONTENTSTYLE">11</productinfo>
- <productinfo name="DISTRO">cpe:/o:opensuse:microos:20240813,openSUSE MicroOS</productinfo>
+ <productinfo name="DISTRO">cpe:/o:opensuse:microos:20240814,openSUSE MicroOS</productinfo>
<productinfo name="LINGUAS">en_US </productinfo>
- <productinfo name="REPOID">obsproduct://build.opensuse.org/openSUSE:Factory/MicroOS/20240813/x86_64</productinfo>
+ <productinfo name="REPOID">obsproduct://build.opensuse.org/openSUSE:Factory/MicroOS/20240814/x86_64</productinfo>
<productinfo name="VENDOR">openSUSE</productinfo>
<productoption name="INI_DIR">/usr/share/kiwi/modules/plugins/tumbleweed</productoption>
<productoption name="PLUGIN_DIR">/usr/share/kiwi/modules/plugins/tumbleweed</productoption>
@@ -1416,7 +1416,7 @@
<repopackage name="libva2"/>
<repopackage name="libvdpau1"/>
<repopackage name="libverto1"/>
- <repopackage name="libvidstab1_1"/>
+ <repopackage name="libvidstab1_2"/>
<repopackage name="libvisual-0_4-0"/>
<repopackage name="libvlc5"/>
<repopackage name="libvlccore9"/>
++++++ openSUSE-Addon-NonOss-ftp-ftp-x86_64.kiwi ++++++
--- /var/tmp/diff_new_pack.s06PfP/_old 2024-08-14 19:16:22.001791677 +0200
+++ /var/tmp/diff_new_pack.s06PfP/_new 2024-08-14 19:16:22.005791844 +0200
@@ -1,4 +1,4 @@
-<image name="OBS__openSUSE-Addon-NonOss___20240813" schemaversion="4.1">
+<image name="OBS__openSUSE-Addon-NonOss___20240814" schemaversion="4.1">
<description type="system">
<author>The SUSE Team</author>
<contact>build(a)opensuse.org</contact>
@@ -35,11 +35,11 @@
<productvar name="SEPARATE_MEDIA">true</productvar>
<productvar name="SHA1OPT">-x -2</productvar>
<productvar name="VENDOR">openSUSE</productvar>
- <productvar name="VERSION">20240813</productvar>
+ <productvar name="VERSION">20240814</productvar>
<productinfo name="CONTENTSTYLE">11</productinfo>
- <productinfo name="DISTRO">cpe:/o:opensuse:opensuse-addon-nonoss:20240813,openSUSE NonOSS Addon</productinfo>
+ <productinfo name="DISTRO">cpe:/o:opensuse:opensuse-addon-nonoss:20240814,openSUSE NonOSS Addon</productinfo>
<productinfo name="LINGUAS">af ar be_BY bg br ca cy el et ga gl gu_IN he hi_IN hr ka km ko lt mk nn pa_IN rw sk sl sr_CS ss st tg th tr uk ve vi xh zu </productinfo>
- <productinfo name="REPOID">obsproduct://build.opensuse.org/openSUSE:Factory/openSUSE-Addon-NonOss/2024…</productinfo>
+ <productinfo name="REPOID">obsproduct://build.opensuse.org/openSUSE:Factory/openSUSE-Addon-NonOss/2024…</productinfo>
<productinfo name="VENDOR">openSUSE</productinfo>
<productoption name="INI_DIR">/usr/share/kiwi/modules/plugins/tumbleweed</productoption>
<productoption name="PLUGIN_DIR">/usr/share/kiwi/modules/plugins/tumbleweed</productoption>
++++++ openSUSE-cd-mini-x86_64.kiwi ++++++
--- /var/tmp/diff_new_pack.s06PfP/_old 2024-08-14 19:16:22.033793011 +0200
+++ /var/tmp/diff_new_pack.s06PfP/_new 2024-08-14 19:16:22.037793178 +0200
@@ -1,4 +1,4 @@
-<image name="OBS__openSUSE___20240813" schemaversion="4.1">
+<image name="OBS__openSUSE___20240814" schemaversion="4.1">
<description type="system">
<author>The SUSE Team</author>
<contact>build(a)opensuse.org</contact>
@@ -35,11 +35,11 @@
<productvar name="SEPARATE_MEDIA">true</productvar>
<productvar name="SHA1OPT">-x -2</productvar>
<productvar name="VENDOR">openSUSE</productvar>
- <productvar name="VERSION">20240813</productvar>
+ <productvar name="VERSION">20240814</productvar>
<productinfo name="CONTENTSTYLE">11</productinfo>
- <productinfo name="DISTRO">cpe:/o:opensuse:opensuse:20240813,openSUSE Tumbleweed</productinfo>
+ <productinfo name="DISTRO">cpe:/o:opensuse:opensuse:20240814,openSUSE Tumbleweed</productinfo>
<productinfo name="LINGUAS">cs da de el en en_GB en_US es fr hu it ja pl pt pt_BR ru zh zh_CN zh_TW </productinfo>
- <productinfo name="REPOID">obsproduct://build.opensuse.org/openSUSE:Factory/openSUSE/20240813/x86_64</productinfo>
+ <productinfo name="REPOID">obsproduct://build.opensuse.org/openSUSE:Factory/openSUSE/20240814/x86_64</productinfo>
<productinfo name="VENDOR">openSUSE</productinfo>
<productoption name="INI_DIR">/usr/share/kiwi/modules/plugins/tumbleweed</productoption>
<productoption name="PLUGIN_DIR">/usr/share/kiwi/modules/plugins/tumbleweed</productoption>
++++++ openSUSE-dvd5-dvd-x86_64.kiwi ++++++
--- /var/tmp/diff_new_pack.s06PfP/_old 2024-08-14 19:16:22.061794178 +0200
+++ /var/tmp/diff_new_pack.s06PfP/_new 2024-08-14 19:16:22.069794512 +0200
@@ -1,4 +1,4 @@
-<image name="OBS__openSUSE___20240813" schemaversion="4.1">
+<image name="OBS__openSUSE___20240814" schemaversion="4.1">
<description type="system">
<author>The SUSE Team</author>
<contact>build(a)opensuse.org</contact>
@@ -35,11 +35,11 @@
<productvar name="SEPARATE_MEDIA">true</productvar>
<productvar name="SHA1OPT">-x -2</productvar>
<productvar name="VENDOR">openSUSE</productvar>
- <productvar name="VERSION">20240813</productvar>
+ <productvar name="VERSION">20240814</productvar>
<productinfo name="CONTENTSTYLE">11</productinfo>
- <productinfo name="DISTRO">cpe:/o:opensuse:opensuse:20240813,openSUSE Tumbleweed</productinfo>
+ <productinfo name="DISTRO">cpe:/o:opensuse:opensuse:20240814,openSUSE Tumbleweed</productinfo>
<productinfo name="LINGUAS">cs da de el en en_GB en_US es fr hu it ja pl pt pt_BR ru zh zh_CN zh_TW </productinfo>
- <productinfo name="REPOID">obsproduct://build.opensuse.org/openSUSE:Factory/openSUSE/20240813/x86_64</productinfo>
+ <productinfo name="REPOID">obsproduct://build.opensuse.org/openSUSE:Factory/openSUSE/20240814/x86_64</productinfo>
<productinfo name="VENDOR">openSUSE</productinfo>
<productoption name="INI_DIR">/usr/share/kiwi/modules/plugins/tumbleweed</productoption>
<productoption name="PLUGIN_DIR">/usr/share/kiwi/modules/plugins/tumbleweed</productoption>
@@ -2869,7 +2869,7 @@
<repopackage name="libvdpau1"/>
<repopackage name="libverto1"/>
<repopackage name="libverto1-32bit"/>
- <repopackage name="libvidstab1_1"/>
+ <repopackage name="libvidstab1_2"/>
<repopackage name="libvirglrenderer1"/>
<repopackage name="libvirt-client"/>
<repopackage name="libvirt-daemon-common"/>
++++++ openSUSE-ftp-ftp-x86_64.kiwi ++++++
--- /var/tmp/diff_new_pack.s06PfP/_old 2024-08-14 19:16:22.097795678 +0200
+++ /var/tmp/diff_new_pack.s06PfP/_new 2024-08-14 19:16:22.101795845 +0200
@@ -1,4 +1,4 @@
-<image name="OBS__openSUSE___20240813" schemaversion="4.1">
+<image name="OBS__openSUSE___20240814" schemaversion="4.1">
<description type="system">
<author>The SUSE Team</author>
<contact>build(a)opensuse.org</contact>
@@ -23,7 +23,7 @@
<productvar name="DISTNAME">openSUSE</productvar>
<productvar name="FLAVOR">ftp</productvar>
<productvar name="MAKE_LISTINGS">true</productvar>
- <productvar name="MEDIUM_NAME">openSUSE-20240813-x86_64</productvar>
+ <productvar name="MEDIUM_NAME">openSUSE-20240814-x86_64</productvar>
<productvar name="MULTIPLE_MEDIA">true</productvar>
<productvar name="PRODUCT_DIR">/</productvar>
<productvar name="PRODUCT_NAME">$DISTNAME-$FLAVOR</productvar>
@@ -35,11 +35,11 @@
<productvar name="SEPARATE_MEDIA">true</productvar>
<productvar name="SHA1OPT">-x -2</productvar>
<productvar name="VENDOR">openSUSE</productvar>
- <productvar name="VERSION">20240813</productvar>
+ <productvar name="VERSION">20240814</productvar>
<productinfo name="CONTENTSTYLE">11</productinfo>
- <productinfo name="DISTRO">cpe:/o:opensuse:opensuse:20240813,openSUSE Tumbleweed</productinfo>
+ <productinfo name="DISTRO">cpe:/o:opensuse:opensuse:20240814,openSUSE Tumbleweed</productinfo>
<productinfo name="LINGUAS">cs da de el en en_GB en_US es fr hu it ja pl pt pt_BR ru zh zh_CN zh_TW </productinfo>
- <productinfo name="REPOID">obsproduct://build.opensuse.org/openSUSE:Factory/openSUSE/20240813/x86_64</productinfo>
+ <productinfo name="REPOID">obsproduct://build.opensuse.org/openSUSE:Factory/openSUSE/20240814/x86_64</productinfo>
<productinfo name="VENDOR">openSUSE</productinfo>
<productoption name="DEBUGMEDIUM">2</productoption>
<productoption name="INI_DIR">/usr/share/kiwi/modules/plugins/tumbleweed</productoption>
++++++ Aeon.product ++++++
--- /var/tmp/diff_new_pack.s06PfP/_old 2024-08-14 19:16:22.149797846 +0200
+++ /var/tmp/diff_new_pack.s06PfP/_new 2024-08-14 19:16:22.153798013 +0200
@@ -6,7 +6,7 @@
<name>Aeon</name>
<releasepkgname>Aeon-release</releasepkgname>
<endoflife/>
- <version>20240813</version>
+ <version>20240814</version>
<!-- release is no longer optional -->
<release>0</release>
<productline>Aeon</productline>
++++++ Kalpa.product ++++++
--- /var/tmp/diff_new_pack.s06PfP/_old 2024-08-14 19:16:22.173798846 +0200
+++ /var/tmp/diff_new_pack.s06PfP/_new 2024-08-14 19:16:22.177799013 +0200
@@ -6,7 +6,7 @@
<name>Kalpa</name>
<releasepkgname>Kalpa-release</releasepkgname>
<endoflife/>
- <version>20240813</version>
+ <version>20240814</version>
<!-- release is no longer optional -->
<release>0</release>
<productline>Kalpa</productline>
++++++ MicroOS.product ++++++
--- /var/tmp/diff_new_pack.s06PfP/_old 2024-08-14 19:16:22.197799846 +0200
+++ /var/tmp/diff_new_pack.s06PfP/_new 2024-08-14 19:16:22.201800013 +0200
@@ -6,7 +6,7 @@
<name>MicroOS</name>
<releasepkgname>MicroOS-release</releasepkgname>
<endoflife/>
- <version>20240813</version>
+ <version>20240814</version>
<!-- release is no longer optional -->
<release>0</release>
<productline>MicroOS</productline>
++++++ dvd.group ++++++
--- /var/tmp/diff_new_pack.s06PfP/_old 2024-08-14 19:16:22.301804181 +0200
+++ /var/tmp/diff_new_pack.s06PfP/_new 2024-08-14 19:16:22.309804515 +0200
@@ -2896,7 +2896,7 @@
<package name="libvdpau1" supportstatus="unsupported"/> <!-- reason: dvd:openSUSE-release -->
<package name="libverto1" supportstatus="unsupported"/> <!-- reason: dvd:openSUSE-release -->
<package name="libverto1-32bit" supportstatus="unsupported"/> <!-- reason: dvd:patterns-media-rest_dvd -->
- <package name="libvidstab1_1" supportstatus="unsupported"/> <!-- reason: dvd:patterns-gnome-gnome -->
+ <package name="libvidstab1_2" supportstatus="unsupported"/> <!-- reason: dvd:patterns-gnome-gnome -->
<package name="libvirglrenderer1" supportstatus="unsupported"/> <!-- reason: dvd:patterns-server-kvm_server -->
<package name="libvirt-client" supportstatus="unsupported"/> <!-- reason: dvd:patterns-server-kvm_server -->
<package name="libvirt-daemon-common" supportstatus="unsupported"/> <!-- reason: dvd:patterns-server-kvm_server -->
++++++ openSUSE-Addon-NonOss.product ++++++
--- /var/tmp/diff_new_pack.s06PfP/_old 2024-08-14 19:16:22.333805515 +0200
+++ /var/tmp/diff_new_pack.s06PfP/_new 2024-08-14 19:16:22.337805682 +0200
@@ -4,7 +4,7 @@
<product>
<vendor>openSUSE</vendor>
<name>openSUSE-Addon-NonOss</name>
- <version>20240813</version>
+ <version>20240814</version>
<release>0</release>
<summary>openSUSE NonOSS Addon</summary>
<shortsummary>non oss addon</shortsummary>
++++++ openSUSE.product ++++++
--- /var/tmp/diff_new_pack.s06PfP/_old 2024-08-14 19:16:22.361806682 +0200
+++ /var/tmp/diff_new_pack.s06PfP/_new 2024-08-14 19:16:22.365806848 +0200
@@ -4,7 +4,7 @@
<product>
<vendor>openSUSE</vendor>
<name>openSUSE</name>
- <version>20240813</version>
+ <version>20240814</version>
<release>0</release>
<productline>openSUSE</productline>
++++++ opensuse_kalpa.group ++++++
--- /var/tmp/diff_new_pack.s06PfP/_old 2024-08-14 19:16:22.409808682 +0200
+++ /var/tmp/diff_new_pack.s06PfP/_new 2024-08-14 19:16:22.413808849 +0200
@@ -1103,7 +1103,7 @@
<package name="libva2" supportstatus="unsupported"/> <!-- reason: opensuse_kalpa:patterns-kalpa-base -->
<package name="libvdpau1" supportstatus="unsupported"/> <!-- reason: opensuse_kalpa:patterns-kalpa-base -->
<package name="libverto1" supportstatus="unsupported"/> <!-- reason: opensuse_kalpa:patterns-kalpa-base -->
- <package name="libvidstab1_1" supportstatus="unsupported"/> <!-- reason: opensuse_kalpa:patterns-kalpa-base -->
+ <package name="libvidstab1_2" supportstatus="unsupported"/> <!-- reason: opensuse_kalpa:patterns-kalpa-base -->
<package name="libvisual-0_4-0" supportstatus="unsupported"/> <!-- reason: opensuse_kalpa:patterns-kalpa-base -->
<package name="libvlc5" supportstatus="unsupported"/> <!-- reason: opensuse_kalpa:patterns-kalpa-base -->
<package name="libvlccore9" supportstatus="unsupported"/> <!-- reason: opensuse_kalpa:patterns-kalpa-base -->
++++++ opensuse_microos.group ++++++
--- /var/tmp/diff_new_pack.s06PfP/_old 2024-08-14 19:16:22.453810516 +0200
+++ /var/tmp/diff_new_pack.s06PfP/_new 2024-08-14 19:16:22.461810850 +0200
@@ -1412,7 +1412,7 @@
<package name="libva2" supportstatus="unsupported"/> <!-- reason: opensuse_microos_desktop:patterns-microos-desktop-kde -->
<package name="libvdpau1" supportstatus="unsupported"/> <!-- reason: opensuse_microos_desktop:patterns-microos-desktop-kde -->
<package name="libverto1" supportstatus="unsupported"/> <!-- reason: opensuse_microos:patterns-microos-base -->
- <package name="libvidstab1_1" supportstatus="unsupported"/> <!-- reason: opensuse_microos_desktop:patterns-microos-desktop-kde -->
+ <package name="libvidstab1_2" supportstatus="unsupported"/> <!-- reason: opensuse_microos_desktop:patterns-microos-desktop-kde -->
<package name="libvisual-0_4-0" supportstatus="unsupported"/> <!-- reason: opensuse_microos_desktop:patterns-microos-desktop-kde -->
<package name="libvlc5" supportstatus="unsupported"/> <!-- reason: opensuse_microos_desktop:patterns-microos-desktop-kde -->
<package name="libvlccore9" supportstatus="unsupported"/> <!-- reason: opensuse_microos_desktop:patterns-microos-desktop-kde -->
++++++ unsorted.yml ++++++
--- /var/tmp/diff_new_pack.s06PfP/_old 2024-08-14 19:16:22.517813184 +0200
+++ /var/tmp/diff_new_pack.s06PfP/_new 2024-08-14 19:16:22.525813517 +0200
@@ -7972,6 +7972,10 @@
- granite-demo
- granite-devel
- granite-lang
+ - granite6-common
+ - granite6-demo
+ - granite6-devel
+ - granite6-lang
- grant
- grant-bash-completion
- grant-fish-completion
@@ -9917,9 +9921,11 @@
- kemoticons-devel
- kernel-debug
- kernel-debug-devel
+ - kernel-debug-livepatch-devel
- kernel-debug-vdso
- kernel-default-base-rebuild
- kernel-default-devel
+ - kernel-default-livepatch-devel
- kernel-default-vdso
- kernel-devel
- kernel-devel-longterm
@@ -9931,6 +9937,7 @@
- kernel-install-tools
- kernel-kvmsmall
- kernel-kvmsmall-devel
+ - kernel-kvmsmall-livepatch-devel
- kernel-kvmsmall-vdso
- kernel-longterm
- kernel-longterm-devel
@@ -9945,6 +9952,7 @@
- kernel-syms-longterm
- kernel-vanilla
- kernel-vanilla-devel
+ - kernel-vanilla-livepatch-devel
- kernel-vanilla-vdso
- kernelshark
- kernelshark-devel
@@ -13489,6 +13497,7 @@
- libgpod-devel
- libgpod-doc
- libgrail6
+ - libgranite-7-7
- libgranite6
- libgraphblas9
- libgraphene-1_0-0-32bit
@@ -16739,7 +16748,7 @@
- libvhdi-tools
- libvhdi1
- libvidstab-devel
- - libvidstab1_1-32bit
+ - libvidstab1_2-32bit
- libvigraimpex11
- libvips-devel
- libvips42
@@ -47268,6 +47277,7 @@
- typelib-1_0-GooCanvas-2_0
- typelib-1_0-GooCanvas-3_0
- typelib-1_0-Granite-1_0
+ - typelib-1_0-Granite-7_0
- typelib-1_0-GrlNet-0_3
- typelib-1_0-GrlPls-0_3
- typelib-1_0-Gsf-1
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package gromox for openSUSE:Factory checked in at 2024-08-14 14:16:37
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gromox (Old)
and /work/SRC/openSUSE:Factory/.gromox.new.7232 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gromox"
Wed Aug 14 14:16:37 2024 rev:33 rq:1193858 version:2.31
Changes:
--------
--- /work/SRC/openSUSE:Factory/gromox/gromox.changes 2024-06-29 15:18:31.142608763 +0200
+++ /work/SRC/openSUSE:Factory/.gromox.new.7232/gromox.changes 2024-08-14 14:17:17.146646128 +0200
@@ -1,0 +2,16 @@
+Wed Aug 14 07:50:17 UTC 2024 - Jan Engelhardt <jengelh(a)inai.de>
+
+- Update to release 2.31
+ * freebusy: get_freebusy erroneously underreported occurrences
+ for yearly occurrences
+ * freebusy: the get_freebusy routine erroneously landed in an
+ infinite loop if a yearly-recurring February 29 appointment
+ was originally created in a year not divisible by 12.
+ * oxcmail: take /etc/mime.types under consideration when adding
+ extensions to attachments
+ * oxcmail: priorities for MIME parts have been rectified for
+ multipart/alternative and non-alternative containers; the
+ conversion routine is no longer making picks across multiple
+ container siblings.
+
+-------------------------------------------------------------------
Old:
----
gromox-2.30.tar.asc
gromox-2.30.tar.zst
New:
----
_scmsync.obsinfo
build.specials.obscpio
gromox-2.31.tar.asc
gromox-2.31.tar.zst
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gromox.spec ++++++
--- /var/tmp/diff_new_pack.jsY5P4/_old 2024-08-14 14:17:18.014682414 +0200
+++ /var/tmp/diff_new_pack.jsY5P4/_new 2024-08-14 14:17:18.018682582 +0200
@@ -19,7 +19,7 @@
%define _libexecdir %_prefix/libexec
Name: gromox
-Version: 2.30
+Version: 2.31
Release: 0
Summary: Groupware server backend with RPC, IMAP,POP3, PHP-MAPI support
License: AGPL-3.0-or-later AND GPL-2.0-only AND GPL-3.0-or-later
++++++ _scmsync.obsinfo ++++++
mtime: 1723627772
commit: cd650e4cb5f85fa185a810dacdb4939924a1a7f31a2a0a0be7175dd1739edbb3
url: https://src.opensuse.org/jengelh/gromox
revision: master
++++++ debian.changelog ++++++
--- /var/tmp/diff_new_pack.jsY5P4/_old 2024-08-14 14:17:18.070684756 +0200
+++ /var/tmp/diff_new_pack.jsY5P4/_new 2024-08-14 14:17:18.074684923 +0200
@@ -1,6 +1,6 @@
-gromox (2.30-0) unstable; urgency=low
+gromox (2.31-0) unstable; urgency=low
* Update.
- -- Gromox <null(a)gromox.com> Thu, 02 May 2024 00:00:00 +0000
+ -- Gromox <null(a)gromox.com> Wed, 14 Aug 2024 09:49:00 +0200
++++++ debian.gromox.postinst ++++++
--- /var/tmp/diff_new_pack.jsY5P4/_old 2024-08-14 14:17:18.102686093 +0200
+++ /var/tmp/diff_new_pack.jsY5P4/_new 2024-08-14 14:17:18.110686428 +0200
@@ -17,39 +17,38 @@
xpostinst()
{
-set_perms grommunio gromoxcf 0755 /etc/gromox || :
-for i in /var/lib/gromox \
- /var/lib/gromox/domain \
- /var/lib/gromox/user \
- /var/lib/gromox/queue \
- /var/lib/gromox/queue/cache \
- /var/lib/gromox/queue/mess \
- /var/lib/gromox/queue/save \
- /var/lib/gromox/queue/timer; do
- set_perms gromox gromox 0770 "$i" || :
-done
-set_perms gromox gromox 0750 /var/log/gromox || :
+ set_perms grommunio gromoxcf 0755 /etc/gromox || :
+ for i in /var/lib/gromox \
+ /var/lib/gromox/domain \
+ /var/lib/gromox/user \
+ /var/lib/gromox/queue \
+ /var/lib/gromox/queue/cache \
+ /var/lib/gromox/queue/mess \
+ /var/lib/gromox/queue/save \
+ /var/lib/gromox/queue/timer; do
+ set_perms gromox gromox 0770 "$i" || :
+ done
+ set_perms gromox gromox 0750 /var/log/gromox || :
-# %post
-if test -x /usr/bin/systemd-tmpfiles; then
- systemd-tmpfiles --create tmpfiles-gromox.conf || :
-else
- echo "There is no systemd-tmpfiles present in the system. /run/gromox may not have been created."
-fi
-if test -x /usr/bin/systemctl; then
- systemctl daemon-reload || :
- systemctl try-restart gromox-delivery.service \
- gromox-delivery-queue.service gromox-event.service \
- gromox-http.service gromox-imap.service gromox-midb.service \
- gromox-pop3.service gromox-timer.service gromox-zcore.service \
- grommunio-chat.service \
- php7.4-fpm.service php8.0-fpm.service php8.1-fpm.service \
- php8.2-fpm.service php8.3-fpm.service \
- saslauthd.service 2>/dev/null || :
-fi
+ # %post
+ if test -x /usr/bin/systemd-tmpfiles; then
+ systemd-tmpfiles --create tmpfiles-gromox.conf || :
+ else
+ echo "There is no systemd-tmpfiles present in the system. /run/gromox may not have been created."
+ fi
+ if test -x /usr/bin/systemctl; then
+ systemctl daemon-reload || :
+ systemctl try-restart gromox-delivery.service \
+ gromox-delivery-queue.service gromox-event.service \
+ gromox-http.service gromox-imap.service gromox-midb.service \
+ gromox-pop3.service gromox-timer.service gromox-zcore.service \
+ grommunio-chat.service \
+ php7.4-fpm.service php8.0-fpm.service php8.1-fpm.service \
+ php8.2-fpm.service php8.3-fpm.service \
+ saslauthd.service 2>/dev/null || :
+ fi
}
-
case "$1" in
configure|reconfigure)
xpostinst
++++++ gromox-2.30.tar.zst -> gromox-2.31.tar.zst ++++++
++++ 19017 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package cvise for openSUSE:Factory checked in at 2024-08-14 14:16:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/cvise (Old)
and /work/SRC/openSUSE:Factory/.cvise.new.7232 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "cvise"
Wed Aug 14 14:16:30 2024 rev:80 rq:1193848 version:2.10.0+git.20240814.7d0ebf0
Changes:
--------
--- /work/SRC/openSUSE:Factory/cvise/cvise.changes 2024-06-27 16:05:22.907194831 +0200
+++ /work/SRC/openSUSE:Factory/.cvise.new.7232/cvise.changes 2024-08-14 14:17:10.438365700 +0200
@@ -1,0 +2,11 @@
+Wed Aug 14 08:26:17 UTC 2024 - martin.liska(a)hey.com
+
+- Update to version 2.10.0+git.20240814.7d0ebf0:
+ * Catch timeout from Pebble for Python 3.10 and older (#148)
+ * Revert "Run on Ubuntu 24.04"
+ * Run on Ubuntu 24.04
+ * Revert "Try to remove touch command"
+ * Try to remove touch command
+ * Use llvm 20 as a nightly target
+
+-------------------------------------------------------------------
Old:
----
cvise-2.10.0+git.20240603.16a34b2.tar.xz
New:
----
cvise-2.10.0+git.20240814.7d0ebf0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ cvise.spec ++++++
--- /var/tmp/diff_new_pack.GnrNne/_old 2024-08-14 14:17:11.054391452 +0200
+++ /var/tmp/diff_new_pack.GnrNne/_new 2024-08-14 14:17:11.058391620 +0200
@@ -17,7 +17,7 @@
Name: cvise
-Version: 2.10.0+git.20240603.16a34b2
+Version: 2.10.0+git.20240814.7d0ebf0
Release: 0
Summary: Super-parallel Python port of the C-Reduce
License: BSD-3-Clause
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.GnrNne/_old 2024-08-14 14:17:11.118394127 +0200
+++ /var/tmp/diff_new_pack.GnrNne/_new 2024-08-14 14:17:11.122394295 +0200
@@ -1,6 +1,6 @@
<servicedata>
<service name="tar_scm">
<param name="url">https://github.com/marxin/cvise</param>
- <param name="changesrevision">16a34b273966e32843b3f193590198e2a769b1b0</param></service></servicedata>
+ <param name="changesrevision">7d0ebf0df1d827f6e2646c5bf2c11707952af418</param></service></servicedata>
(No newline at EOF)
++++++ cvise-2.10.0+git.20240603.16a34b2.tar.xz -> cvise-2.10.0+git.20240814.7d0ebf0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cvise-2.10.0+git.20240603.16a34b2/.github/workflows/build-llvm-nightly.yml new/cvise-2.10.0+git.20240814.7d0ebf0/.github/workflows/build-llvm-nightly.yml
--- old/cvise-2.10.0+git.20240603.16a34b2/.github/workflows/build-llvm-nightly.yml 2024-06-03 12:35:00.000000000 +0200
+++ new/cvise-2.10.0+git.20240814.7d0ebf0/.github/workflows/build-llvm-nightly.yml 2024-08-14 10:25:15.000000000 +0200
@@ -27,10 +27,10 @@
- run: nproc
- run: wget https://apt.llvm.org/llvm.sh
- run: chmod +x llvm.sh
- - run: ./llvm.sh 19
- - run: apt-get install -y bolt-19 clang-19 libclang-common-19-dev libclang-19-dev mlir-19-tools llvm-19-tools libclang-common-19-dev libclang-19-dev libclang1-19 clang-format-19 python3-clang-19 clangd-19 clang-tidy-19 libomp-19-dev
+ - run: ./llvm.sh 20
+ - run: apt-get install -y bolt-20 clang-20 libclang-common-20-dev libclang-20-dev mlir-20-tools llvm-20-tools libclang-common-20-dev libclang-20-dev libclang1-20 clang-format-20 python3-clang-20 clangd-20 clang-tidy-20 libomp-20-dev
# TODO: remove in the future
- - run: touch /usr/lib/llvm-19/lib/libLibcTableGenUtil.a
+ - run: touch /usr/lib/llvm-20/lib/libLibcTableGenUtil.a
- uses: actions/checkout@v4
- run: mkdir objdir
- run: cmake ..
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cvise-2.10.0+git.20240603.16a34b2/Dockerfile new/cvise-2.10.0+git.20240814.7d0ebf0/Dockerfile
--- old/cvise-2.10.0+git.20240603.16a34b2/Dockerfile 2024-06-03 12:35:00.000000000 +0200
+++ new/cvise-2.10.0+git.20240814.7d0ebf0/Dockerfile 2024-08-14 10:25:15.000000000 +0200
@@ -3,8 +3,8 @@
RUN apt-get -qq install -y gcc g++ wget lsb-release wget software-properties-common gnupg git cmake flex python3-pebble python3-psutil python3-chardet python3-pytest vim unifdef
RUN wget https://apt.llvm.org/llvm.sh
RUN chmod +x llvm.sh
-RUN ./llvm.sh 19
-RUN apt-get install -y bolt-19 clang-19 libclang-common-19-dev libclang-19-dev mlir-19-tools llvm-19-tools libclang-common-19-dev libclang-19-dev libclang1-19 clang-format-19 python3-clang-19 clangd-19 clang-tidy-19 libomp-19-dev
-RUN touch /usr/lib/llvm-19/lib/libLibcTableGenUtil.a
+RUN ./llvm.sh 20
+RUN apt-get install -y bolt-20 clang-20 libclang-common-20-dev libclang-20-dev mlir-20-tools llvm-20-tools libclang-common-20-dev libclang-20-dev libclang1-20 clang-format-20 python3-clang-20 clangd-20 clang-tidy-20 libomp-20-dev
+RUN touch /usr/lib/llvm-20/lib/libLibcTableGenUtil.a
RUN mkdir -p /tmp/cvise/build-docker
WORKDIR /tmp/cvise/build-docker
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cvise-2.10.0+git.20240603.16a34b2/cvise/utils/testing.py new/cvise-2.10.0+git.20240814.7d0ebf0/cvise/utils/testing.py
--- old/cvise-2.10.0+git.20240603.16a34b2/cvise/utils/testing.py 2024-06-03 12:35:00.000000000 +0200
+++ new/cvise-2.10.0+git.20240814.7d0ebf0/cvise/utils/testing.py 2024-08-14 10:25:15.000000000 +0200
@@ -12,6 +12,7 @@
import sys
import tempfile
import traceback
+import concurrent.futures
from cvise.cvise import CVise
from cvise.passes.abstract import PassResult, ProcessEventNotifier, ProcessEventType
@@ -390,7 +391,8 @@
if future.done():
if future.exception():
- if type(future.exception()) is TimeoutError:
+ # starting with Python 3.11: concurrent.futures.TimeoutError == TimeoutError
+ if type(future.exception()) in (TimeoutError, concurrent.futures.TimeoutError):
self.timeout_count += 1
logging.warning('Test timed out.')
self.save_extra_dir(self.temporary_folders[future])
@@ -444,7 +446,8 @@
test_env = future.result()
if test_env.success:
return test_env
- except TimeoutError:
+ # starting with Python 3.11: concurrent.futures.TimeoutError == TimeoutError
+ except (TimeoutError, concurrent.futures.TimeoutError):
pass
return None
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package nst for openSUSE:Factory checked in at 2024-08-14 14:16:23
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/nst (Old)
and /work/SRC/openSUSE:Factory/.nst.new.7232 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "nst"
Wed Aug 14 14:16:23 2024 rev:4 rq:1193853 version:1.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/nst/nst.changes 2024-07-09 20:06:02.353177214 +0200
+++ /work/SRC/openSUSE:Factory/.nst.new.7232/nst.changes 2024-08-14 14:17:03.670082764 +0200
@@ -1,0 +2,15 @@
+Wed Aug 14 08:57:58 UTC 2024 - Matthias Gerstner <matthias.gerstner(a)suse.com>
+
+- switch to using the now available upstream source tarball instead of a Git
+ tarball created via the OSC service.
+- Update to upstream version 1.1:
+ - when using a blinking cursor style, then the blinking was always turned off
+ once X11 input occurs. This was confusing when continously inputting
+ characters. In this release this no longer happens.
+ - performance improvement in the URL snap selection algorithm, which wrongly
+ copied the entire screen content in its algorithm.
+ - when doing a snap selection that spans multiple lines (e.g. extending a
+ long http:// URL), then excess newlines occured, when pasting the selection.
+ This no longer happens.
+
+-------------------------------------------------------------------
Old:
----
_service
_servicedata
nst-1.0+git56dd2cb.tar.xz
New:
----
nst-v1.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ nst.spec ++++++
--- /var/tmp/diff_new_pack.5cTu6B/_old 2024-08-14 14:17:04.294108850 +0200
+++ /var/tmp/diff_new_pack.5cTu6B/_new 2024-08-14 14:17:04.298109018 +0200
@@ -16,16 +16,16 @@
#
-%define commit 56dd2cb
+%define version 1.1
Name: nst
-Version: 1.0
+Version: %{version}
Release: 0
Summary: C++ port of suckless.org st (simple-terminal) emulator
License: MIT
Group: System/X11/Terminals
URL: https://github.com/gerstner-hub/nst
-Source0: nst-1.0+git%{commit}.tar.xz
+Source0: nst-v1.1.tar.xz
Source1: nst_config.cxx
Source2: nst_config.hxx
Patch0: usr_etc_lookup.patch
@@ -48,7 +48,7 @@
external tools for searching.
%prep
-%setup -q -n nst-1.0+git%{commit}
+%setup -q -n %{name}-v%{version}
%autopatch -p1
# copy compile time configuration from package sources into source tree
cp %{SOURCE1} src
++++++ nst_config.hxx ++++++
--- /var/tmp/diff_new_pack.5cTu6B/_old 2024-08-14 14:17:04.346111024 +0200
+++ /var/tmp/diff_new_pack.5cTu6B/_new 2024-08-14 14:17:04.350111192 +0200
@@ -42,7 +42,7 @@
const std::vector<std::string> EXTERNAL_PIPE_CMDLINE{"gvim", "--not-a-term", "-"};
/*
- * What program is executeed by nst depends on these precedence rules:
+ * What program is executed by nst depends on these precedence rules:
* 1: program passed with -e
* 2: scroll and/or utmp
* 3: SHELL environment variable
@@ -116,9 +116,9 @@
/*
* Time from new content/keypress/etc until drawing.
*
- * Within this range, nst draws when content stops arriving (idle). mostly
+ * Within this range, nst draws when content stops arriving (idle). Mostly
* it's near MINLATENCY, but it waits longer for slow updates to avoid partial
- * draw. low MINLATENCY Will tear/flicker more, as it can "detect" idle too
+ * draw. Low MINLATENCY Will tear/flicker more, as it can "detect" idle too
* early.
*/
constexpr std::chrono::milliseconds MIN_LATENCY{8};
@@ -202,9 +202,14 @@
/// Input modifier mask which forces mouse select/shortcuts in WinMode::MOUSE.
/**
- * Force mouse select/shortcuts while mask is active (when MODE_MOUSE is set).
- * Note that if you want to use ShiftMask with selmasks, set this to an other
- * modifier, set to InputModifier::NONE to not use it.
+ * Force mouse select/shortcuts while mask is active (when WinMode::MOUSE is
+ * set). Some terminal applications may interpret mouse events and prevent you
+ * from performing select operations on nst level. For still being able to
+ * perform nst operations, this modifier can be pressed to bypass the
+ * application.
+ *
+ * Note that if this modifier will have priority over the same modifiers used
+ * in SEL_MASKS. The latter will become unusable, if the modifiers conflict.
**/
constexpr xpp::InputMask FORCE_MOUSE_MOD{xpp::InputModifier::SHIFT};
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package retry for openSUSE:Factory checked in at 2024-08-14 14:16:22
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/retry (Old)
and /work/SRC/openSUSE:Factory/.retry.new.7232 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "retry"
Wed Aug 14 14:16:22 2024 rev:8 rq:1193852 version:1723625520.fd868ce
Changes:
--------
--- /work/SRC/openSUSE:Factory/retry/retry.changes 2024-04-05 20:28:01.767030826 +0200
+++ /work/SRC/openSUSE:Factory/.retry.new.7232/retry.changes 2024-08-14 14:17:02.758044638 +0200
@@ -1,0 +2,6 @@
+Wed Aug 14 08:53:47 UTC 2024 - okurz(a)suse.com
+
+- Update to version 1723625520.fd868ce:
+ * Add an option for infinite retries
+
+-------------------------------------------------------------------
Old:
----
retry-1712304225.2d4e170.obscpio
New:
----
retry-1723625520.fd868ce.obscpio
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ retry.spec ++++++
--- /var/tmp/diff_new_pack.Zp7KBg/_old 2024-08-14 14:17:03.422072397 +0200
+++ /var/tmp/diff_new_pack.Zp7KBg/_new 2024-08-14 14:17:03.422072397 +0200
@@ -17,7 +17,7 @@
Name: retry
-Version: 1712304225.2d4e170
+Version: 1723625520.fd868ce
Release: 0
Summary: A simple tool for retrying command executions in plain POSIX sh
License: MIT
++++++ retry-1712304225.2d4e170.obscpio -> retry-1723625520.fd868ce.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/retry-1712304225.2d4e170/retry new/retry-1723625520.fd868ce/retry
--- old/retry-1712304225.2d4e170/retry 2024-04-05 10:03:45.000000000 +0200
+++ new/retry-1723625520.fd868ce/retry 2024-08-14 10:52:00.000000000 +0200
@@ -5,7 +5,8 @@
options:
-h,--help Show this help
-r,--retries=RETRIES How many retries to do on command failure after
- the initial try. Defaults to 3.
+ the initial try. Set -1 for infinite retries.
+ Defaults to 3.
-s,--sleep=SLEEP How many seconds to sleep between retries.
Defaults to 3 seconds.
-e,--exponential[=FACTOR] Enable simple exponential back-off algorithm.
@@ -38,13 +39,18 @@
sleep="${sleep:-3}"
ret=0
+retries_msg=""
while true; do
ret=0
"$@" && exit
ret=$?
- [ "$retries" -gt 0 ] || break
- echo "Retrying up to $retries more times after sleeping ${sleep}s …" >&2
- retries=$((retries-1))
+ if [ "$retries" = 0 ]; then
+ break
+ elif [ "$retries" != -1 ]; then
+ retries_msg="up to $retries more times "
+ retries=$((retries-1))
+ fi
+ echo "Retrying ${retries_msg}after sleeping ${sleep}s …" >&2
sleep "$sleep"
[ -n "$exponential" ] && sleep=$((sleep*exponential))
done
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/retry-1712304225.2d4e170/test/01-retry.t new/retry-1723625520.fd868ce/test/01-retry.t
--- old/retry-1712304225.2d4e170/test/01-retry.t 2024-04-05 10:03:45.000000000 +0200
+++ new/retry-1723625520.fd868ce/test/01-retry.t 2024-08-14 10:52:00.000000000 +0200
@@ -13,7 +13,7 @@
source bash+ :std
use Test::More
-plan tests 15
+plan tests 18
PATH=$dir/..:$PATH
@@ -42,4 +42,8 @@
is $rc 0 'passing command without retry returns no error'
trap "rm -f 'run_count.txt'" EXIT
set +e; out=$(retry -r 2 -s 0 $dir/success_on_third.sh 2>&1); rc=$?; set -e
+like "$out" 'Retrying up to 2 more' 'number of retries printed'
is $rc 0 'pass on last run is success'
+set +e; out=$(retry -r-1 -s 0 $dir/success_on_third.sh 2>&1); rc=$?; set -e
+like "$out" 'Retrying after sleeping' 'infinite retries without number of retries'
+is $rc 0 'pass on last run with infinite retries is success'
++++++ retry.obsinfo ++++++
--- /var/tmp/diff_new_pack.Zp7KBg/_old 2024-08-14 14:17:03.554077915 +0200
+++ /var/tmp/diff_new_pack.Zp7KBg/_new 2024-08-14 14:17:03.558078082 +0200
@@ -1,5 +1,5 @@
name: retry
-version: 1712304225.2d4e170
-mtime: 1712304225
-commit: 2d4e17034aba7d2ad0aa9975757ee2df2ad5bdfe
+version: 1723625520.fd868ce
+mtime: 1723625520
+commit: fd868cee95061c8473fae6139e5b6e004f0692a8
1
0