Upgrade to release 1.11.0:
New Features:
- feat(certifi): optionally use certifi certificates
- feat(nodeenv): accept npm-style semver ranges in --node
- feat(nodeenv): add --prefer-system to use system node when
available
- feat(nodeenv): add --isolate-npm to keep npm config inside the
environment
- feat(nodeenv): install local packages from a requirements file
- feat(nodeenv): write the posix activate on Windows for git-bash
Fixed bugs:
- fix: repair Windows CI (ZipFile.extractall filter, test_smoke
layout)
- fix(nodeenv): replace leftover debug print with logger.debug
- fix(nodeenv): stop -p from reinstalling node that is already
there
- fix(nodeenv): let -p target a virtualenv nodeenv isn't installed
in
- fix(nodeenv): report the url and proxy instead of a traceback
- fix(nodeenv): keep the python virtualenv's scripts under -p on
Windows
- fix(nodeenv): report a missing node archive instead of a
traceback
- fix(nodeenv): detect musl regardless of the host triplet vendor
- fix(nodeenv): read npm's parseable listing in freeze
- fix: allow zsh to source bin/activate
- fix(nodeenv): link nodejs.exe without mklink
Improvements:
- FEAT: Check if activate is called as script.
- address deprecation warning in tarfile.TarFile.extract all in
Python …
- chore(ci): run the activation scripts in sh, dash, bash, zsh and
fish
- chore(ci): give the integration smoke tests a home and stop
running them 20 times
- feat(nodeenv): clean "src" directory by default
Documentation:
- docs(readme): document file:// mirrors as a local download source
- docs(changes): backfill the changelog from 1.3.2 to 1.10.0
Other Changes:
- chore(release): bump nodeenv version to 1.11.0
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Upgrade to release 1.2.3:
- Fix memory leaks in the C extension when map key validation or
container hooks fail. See GHSA-j586-36cw-2gc2.
- wheels: also build for pyodide using emscripten.
- Support packing Python 3.15 frozentdict (PEP 814)
- Reject negative array and map header sizes
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Upgrade to release 3.16.0:
- Add support for SSD1363
- Remove deprecation notice in framebuffer mixin
- Make page_address_offset configurable for SH1106 displays
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Upgrade to release 1.36:
- Honor optimization=False when generating patches
- Preserve the original file when in-place CLI replacement fails
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Upgrade to release 1.6.0:
- Fix caching of functions whose source cannot be retrieved, such
as functions defined in a notebook cell. Their identity fell back
to str(hash(func.__code__)), which is salted by PYTHONHASHSEED
and so differed between processes. A worker reading the
func_code.py written by another one concluded that the function
had changed and wiped the whole cache directory for it, discarding
results computed by its peers. func_code.py is also no longer
rewritten in place, so a reader can no longer catch it
half-written and draw the same conclusion.
- Drop python 3.9 support. The oldest supported Python version is
now Python 3.10.
- Fix eval_expr (used to evaluate the pre_dispatch argument of
Parallel) to raise a ValueError as documented instead of leaking
a ZeroDivisionError for expressions that divide or take a modulo
by zero.
- MemorizedResult now forwards mmap_mode to its store backend, so a
cached array reconstructed from a location is memory-mapped as
requested instead of being loaded fully into memory.
- Unvendor cloudpickle to more quickly benefit from maintenance
releases of cloudpickle
- Fix Memory.cache for functions with a keyword-only argument that
has a default declared before a keyword-only argument without a
default.
- Fix behavior of filter_args on some precise cases.
- Fix a concurrency error that could happen with unordered
generator.
- Fix: dump() now accepts any input os.PathLike object to be
consistent with load.
- The documentation now uses pydata sphinx theme. Furthermore,
optional dependencies test and docs have been added to
pyproject.toml.
Extend RDEPENDS with the missing runtime dependencies:
python3-cloudpickle.
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Upgrade to release 0.20.1:
- Avoid loading an executable path from project.json
- Avoid changing the global recursion limit
- Support for async pytest fixtures
- Work better with PEP 695 type parameter syntax
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Upgrade to release 9.17.1:
- Have builin-lazy magics have a lower priority than registered on
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Upgrade to release 0.36.1:
- Defer generating source representations until they are needed,
improving performance when comparing matching snapshots with
updates disabled.
- Speed up snapshot conversion for literal constants, especially in
large lists and dictionaries.
- Built-in literal values are always managed; attempting to
register their types as unmanaged raises TypeError.
- Scope unmanaged type registrations to the current snapshot
context, inheriting registrations from the parent context.
- Speed up snapshot comparisons by avoiding unnecessary deep copies
of immutable built-in values.
- Speed up snapshot conversion by reading AST constant values
directly instead of compiling and evaluating them.
- Respect show-updates in the short report, hiding snapshot
representation change messages when it is disabled.
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Upgrade to release 2.38.1:
- Correct v2 format argument type hints
- Drop Python 3.10, fix PyAV gc stall, temporarily pin pillow on
pypy
- Bump multidict from 6.7.1 to 6.9.1
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Upgrade to release 3.4.0:
Backwards-incompatible. The django stats app writes to its own sqlite
database by default (huey-stats.db in settings.BASE_DIR), instead of
DATABASES['default']. To keep recording in your main Django database,
specify the database explicitly:
HUEY_STATS['database'] takes a db-url or a peewee Database, or use
HUEY_STATS['filename'] to set the sqlite path. See the Django docs
section for building a peewee database from your existing DATABASES
entry.
The admin *Events* log is now rendered from the stats database through
peewee, rather than being a ModelAdmin via ORM. It is now linked from
the dashboard's *Recent events* heading.
Consumer:
- Add --shutdown-timeout option to bound graceful shutdown time.
- Add --graceful-signal option to allow making SIGTERM the graceful
shutdown signal (e.g. -g TERM).
User-facing APIs:
- Add ttl to lock_task() and put_if_empty() so locks expire on
their own. Supported by memory and redis storages, others raise
NotImplementedError. RedisHuey requires server hash-field TTL
support (redis 7.4+ or valkey 9+), RedisExpireHuey works on any
version.
- Add timeout parameter to aget_result().
Small stuff:
- Ensure one raising signal receiver does not prevent the remaining
receivers from running.
- Fix crontab ranges with a step (0-30/5) and wrap-around ranges
(22-2, day_of_week='1-7'). Raise ValueError when a field matches
no values.
- Pass failed chord members to the callback as huey.Error and
skipped (revoked, expired, cancelled) members as huey.SKIPPED
instead of a raw exception or None.
- Delete chord partial results explicitly on completion, so they no
longer linger until expiry on RedisExpireStorage.
- Write the error of a failed pipeline stage to every skipped
downstream stage, so their Result handles raise instead of
blocking.
- Accept an explicit id in TaskWrapper.s(), matching schedule().
Storage:
- Skip messages that fail to deserialize in Huey.pending() and
Huey.scheduled(), logging the error, as read_schedule() already
does.
- Add clean_name option to RedisHuey (default to True). Specify
False to stop stripping non-alphanumeric characters from the
storage namespace. The default will change in a future release.
- Reduce Redis round-trips for peek_data, pop_data and delete_data,
and make RedisExpireStorage.incr() set the TTL atomically w/ the
increment.
- Skip the exclusive lock in SqliteStorage.dequeue() when the queue
is empty, so idle consumers no longer block producers and the
scheduler.
- Batch the SqliteStorage.read_schedule() delete to avoid sqlite's
parameter limit when many tasks come due at once. Same fix in
SqlHuey.
- Order SqliteStorage.read_schedule() and SqlHuey.read_schedule()
by (timestamp, id), matching PostgresStorage.
- Add queue to the sqlite task index (task_queue_priority_id) so
queues sharing a file no longer scan each other's rows. The old
task_priority_id index is dropped when the schema is initialized.
I'll get rid of the temporary in-band drop in a few releases.
- Add peek_many() to the storage API. Revocation checks now fetch
the task and task-class keys in one round trip.
- Return str keys from result_items() on every storage backend.
Redis and File storage previously returned bytes.
Stats:
- Better handling for timeout, locked, rate-limited and retrying in
stats recorder.
- Log dropped events in the stats recorder instead of failing
silently.
- Fix stats recorder max_events pruning to count rows per queue.
With multiple queues sharing a stats db, each queue retained only
a fraction of the configured cap.
- Add inflight_hours option to stats recorder, replacing the
hardcoded 6 hour in-flight cutoff.
- Require the change_hueydashboard permission for the django admin
dashboard's revoke, restore and flush controls. Previously any
staff user who could view the dashboard could also flush the
queue.
- Add huey[stats] extra which installs ol' peewee.
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Upgrade to release 2.15.1:
Highlights:
- Flat CPU usage for long-lived clients on Linux:
On Linux, the default SSL context is now configured once instead of
on every handshake. With OpenSSL older than 3.4, each handshake
added a duplicate certificate lookup path, so CPU usage per request
grew over the lifetime of a reused client. Certificate verification
is unchanged, and Windows and macOS still use truststore.
httpx2:
Fixed:
- Configure the default SSL context once on Linux, instead of on
every handshake. With OpenSSL older than 3.4, CPU usage grew over
the lifetime of a reused client (#1253).
httpcore2:
Fixed:
- Configure the default SSL context once on Linux, instead of on
every handshake. With OpenSSL older than 3.4, CPU usage grew over
the lifetime of a reused client (#1253).
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Upgrade to release 0.9.0:
- Upgrade llhttp to 9.4.3
- Build CPython 3.15 wheels
- Add RISC-V 64-bit wheels
- Add Windows ARM64 support in CI
- Build PPC64LE wheels
- Modernize test and release workflows
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Upgrade to release 1.84.0:
- Fix -Werror=unused-result error triggered by Cythonized code.
- Release Python 3.15 wheels publicly.
- Fixed reference cycles.
- fix: remove ghost key in grpc.aio.Metadata.delitem when last
value is deleted.
- Fix the StatusCode Enums to be int.
- Fixed the parenthesis placement.
- Removed UsageError exception from registered method.
- Added registered methods support in AsyncIO stack.
- AIO Part 4 - Typehints fixes and add Pyright for aio/_channel.py.
- grpc-status: Relax protobuf dependency lower bound to allow 6.x.
- Observability plugin fixes
Fixes:
WARNING: python3-grpcio-reflection-1.84.0-r0 do_check_backend:
QA Issue: inherits setuptools3 but has pyproject.toml specifying
backend setuptools.build_meta, use the correct class [pep517-backend]
License-Update: Use LICENSE file
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Upgrade to release 1.84.0:
- Fix -Werror=unused-result error triggered by Cythonized code.
- Release Python 3.15 wheels publicly.
- Fixed reference cycles.
- fix: remove ghost key in grpc.aio.Metadata.delitem when last
value is deleted.
- Fix the StatusCode Enums to be int.
- Fixed the parenthesis placement.
- Removed UsageError exception from registered method.
- Added registered methods support in AsyncIO stack.
- AIO Part 4 - Typehints fixes and add Pyright for aio/_channel.py.
- grpc-status: Relax protobuf dependency lower bound to allow 6.x.
- Observability plugin fixes.
Fixes:
WARNING: python3-grpcio-channelz-1.84.0-r0 do_check_backend:
QA Issue: inherits setuptools3 but has pyproject.toml specifying
backend setuptools.build_meta, use the correct class [pep517-backend]
License-Update: Use LICENSE file
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Upgrade to release 4.5.8:
Bugs corrected:
- Stdout: CSV data blocks use the first list item's fields instead
of each item's own #3746
- Stdout: raw selector with a dotted item key
(network.eth0.100.bytes_recv) raises UnboundLocalError #3748
- Folders: a second configured FolderList appends its entries to
the first instance #3750
- JSON export: --stop-after leaves an empty file, the last sample
is lost on shutdown #3752
- DuckDB export turns the string 'False' into TRUE #3754
- InfluxDB export truncates dotted list item identifiers (VLAN
interfaces lose their tags) #3756
- IP plugin: a non-object public IP response raises AttributeError
in the main thread #3758
- CSV export: rows are shifted under another device's column when
the field order changes #3760
- Export: exporters mutate the live plugin statistics when merging
limits #3766
- Elasticsearch export: a mapping type per plugin is rejected by ES
6/7/8+, only the first plugin is stored #3780
- Exports: an optional key missing from the config overwrote the
module default with None #3781
- MQTT export: crash at startup when port or callback_api_version
is omitted #3777
- Uptime: export the SNMP uptime instead of the local one #3779
- Cloud: do not report a platform whose metadata API returns
nothing (OpenStack reported on Amazon EC2) #3778
- IRQ: divide the interrupt count by the refresh time (Rate/s was
multiplied by the refresh time) #3771
- Programs: KeyError when a process stat is listed in [processlist]
disable_stats #3776
- Containers: WebUI throws on a restarting container whose cpu/mem
stats are empty #3768
- WebUI: the browser caches glances.js heuristically, revalidate
the static files #3763
- Processes: io_old keeps one entry per pid ever seen (slow memory
leak on hosts spawning short-lived processes)
- Smart: a missing smartctl (pySMART >= 1.4) crashes the server at
startup
Enhancements:
- WebUI: make the container table sortable by status #3763
- Processlist: only build curses rows for the processes that fit on
screen (performance) #3762
Continuous integration and documentation:
- Mark regression test assertions for Bandit
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Upgrade to release 26.9.0:
- Fix gevent.event.AsyncResult re-raising an exception with a
traceback that kept growing by the frames of every previous get()
call, instead of starting fresh from the traceback captured when
set_exception() was called.
- Make gevent's file objects properly report the full mode string.
Previously a ‘b’ or ‘t’ suffix could be missing.
- ThreadPool workers no longer call the profile and trace setters
when no hooks are configured. This matches threading.Thread and
avoids unnecessary PEP 578 audit events and thread coordination.
- An exception while preparing a ThreadPool worker to run a task,
such as an audit hook rejecting sys.setprofile(), no longer
leaves the caller blocked or leaks a pool slot. The exception is
raised in the greenlet waiting on apply() or spawn(), and the
failed worker is replaced if other tasks are waiting.
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Upgrade to release 1.26.3:
- Fixed: Version.bump() ignored the increment when a stage had no
revision.
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Upgrade to release 3.18.3:
- Restore order_by_precedence from 3.18.1 to fix broken return
value
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Upgrade to release 45.1.0:
- When parsing DBC, make sure there are no unused VAL_ and
SIG_VALTYPE_ entries
- sym: write a leading 0 for multiplexer ids that start with A-F
- message: index signals by multiplexer when creating codecs
- message: copy message bits with list() in the overlap check
- plot: read candump -l lines annotated by cantools decode
- DBC: don't fail the load when VFrameFormat has no default
- try to fix the pypy test
- database: do not refresh messages twice when loading a database
- plot: accept decoded choice names from cantools decode
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Upgrade to release 7.2.4:
- Restore autospec calls to @cachedmethod decorated methods.
- Improve branch coverage of unit tests.
- Minor type stub improvements.
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Add SYSTEMD_SERVICE variable to register wireplumber.service with
systemd to enable automatic service startup and management.
Signed-off-by: Paresh Bhagat <p-bhagat@ti.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
When the migration from autotools to cmake happened, the libnl
PACKAGECONFIG was kept, but -DENABLE_NETLINK=ON was in EXTRA_OECMAKE
unconditionally.
Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
avahi is included in PACKAGECONFIG if zeroconf is in DISTRO_FEATURES.
The update to 0.3.63 enabled it unconditionally a second time.
Fixes: c4d52888a0 ("pipewire: update 0.3.62 -> 0.3.63")
Signed-off-by: Einar Jon Gunnarsson <tolvupostur@gmail.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
yelp is ported to GTK 4 and libadwaita and builds with meson only now.
Drop the autotools build class, autotools-brokensep, gtk-doc and the
configure workaround. DEPENDS move from gtk+3, libhandy and webkitgtk3 to
gtk4, libadwaita and webkitgtk (WebKitGTK 6.0); appstream-glib is no
longer used. The lzma and bzip2 support become PACKAGECONFIG options.
AI-Generated: Uses Claude Code (Claude Opus 5.5)
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
yelp-xsl builds with meson only now; drop the autotools build class. It
needs libxml2 and xsltproc, and msgfmt also for the native build, which
the gettext class gives only gettext-minimal-native.
AI-Generated: Uses Claude Code (Claude Opus 5.5)
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
gnome-commander 2 is ported to GTK 4 and its main program to Rust, built
by cargo from meson; the plugins and libgcmd stay C. The license is now
GPL-3.0-or-later, with the documentation under GFDL-1.3-or-later and
some files under CC0-1.0, as listed in LICENSES/.
Add a patch that passes the target triple from a cross file property to
cargo and keeps the RUSTFLAGS of the build, which the cargo environment
replaced (Upstream-Status: Pending). cargo_common is inherited first so
that meson's do_configure is the one used. libgcmd.so is unversioned and
needed at run time, so it stays in the main package; the GIR is built
unconditionally, and the redundant rpath to libdir is removed. samba
support is gone upstream.
AI-Generated: Uses Claude Code (Claude Opus 5.5)
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
gnome-user-share is written in Rust now, built by cargo from meson. Fetch
from git (the 48.x releases are on the gnome-48 branch) with the crates
from gnome-user-share-crates.inc, and set up cargo the way papers and
loupe do. Add a patch that passes the target triple from a cross file
property to cargo and picks the binary from the per-target directory
(Upstream-Status: Pending). Drop the libc feature test macro patch, the
C code is gone.
AI-Generated: Uses Claude Code (Claude Opus 5.5)
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
gnome-tweaks is ported to GTK 4 and libadwaita. Update DEPENDS and
RDEPENDS and package the new D-Bus service file. The python path patch is
dropped: meson installs the python module into the configured
site-packages directory itself.
AI-Generated: Uses Claude Code (Claude Opus 5.5)
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
gthumb 4 is ported to GTK 4, libadwaita and Vala. Update DEPENDS (gtk4,
libadwaita, libportal, gstreamer, lcms and libpng are required now; bison,
json-glib and gsettings-desktop-schemas are gone) and the PACKAGECONFIG
options to the new meson options. The help moved out of the tarball, so
gnome-help and itstool are dropped. GTK 4 needs opengl.
AI-Generated: Uses Claude Code (Claude Opus 5.5)
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
gspell builds with meson only now; drop the autotools build class and map
the introspection and gtk-doc options, without the demo app and tests.
The license is LGPL-2.1-or-later as stated in LICENSES/, the text is
unchanged.
AI-Generated: Uses Claude Code (Claude Opus 5.5)
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Drop ibus.patch, a backport that is part of the release.
AI-Generated: Uses Claude Code (Claude Opus 5.5)
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
ghex now installs a D-Bus activation file for org.gnome.GHex; package
it.
AI-Generated: Uses Claude Code (Claude Opus 5.5)
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Built for x86-64 with the existing patch and options.
AI-Generated: Uses Claude Code (Claude Opus 5.5)
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
The 51.x releases are tagged on the gnome-51 branch, main has moved on
to the next series; fetch from the stable branch.
AI-Generated: Uses Claude Code (Claude Opus 5.5)
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
The 2.2.x releases are tagged on the 2.2 branch, main has moved on to
the next series; fetch from the stable branch. The crates are
regenerated.
AI-Generated: Uses Claude Code (Claude Opus 5.5)
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>