Skip to content

1.10.0

Latest

Choose a tag to compare

@anderslindho anderslindho released this 11 Aug 13:51
· 8 commits to master since this release
e749f9e

RecCaster has moved to its own repository at ChannelFinder/reccaster. This repository now holds RecCeiver only, and client/ is a stub pointing at the new location. Version numbering for the recceiver package continues unbroken; 1.10.0 is a minor release because it adds a console script and raises the install floor to Python 3.7, not because of the split. The code still runs on 3.6 from a checkout, where recceiver-clean is unavailable because console scripts are created by the install.

Features

  • feat(server): add recceiver-clean CLI tool for manual channel sweeps by @anderslindho in #168

Reverted

  • revert(server): restore global DeferredLock for CF commits by @anderslindho in #168 — per-IOC locks let up to maxActive commits land in parallel, which raced the cleanOnStart sweep between its query for active channels and its bulk write of Inactive over them

Bug fixes

  • fix(server): prevent NActive double-decrement after successful upload by @anderslindho in #168 — after N uploads NActive drifted to -N and maxActive throttling stopped working entirely
  • fix(server): initialize _ping_timer to prevent AttributeError on throttled close by @anderslindho in #168 — hit only when maxActive throttling is in effect and a waiting connection drops before promotion
  • fix(server): clamp NActive to zero in status log and metrics by @anderslindho in #168
  • fix(server): evict IOC from memory when CF push exhausts retries by @anderslindho in #168 — in-memory state previously claimed the IOC was committed when CF had never been written, and the divergence persisted until that IOC reconnected
  • fix(server): orphan channel when last known IOC is absent in _handle_channel_is_old by @anderslindho in #168 — a KeyError silently dropped the channel from the write batch
  • fix(server): include metrics extra in Docker image by @anderslindho in #167 — metricsPort could not work in the published image, contrary to the 1.9.6 notes
  • fix(server): use getint() for findSizeLimit to prevent TypeError by @roycpro in #172 — the value reached the CF client as a string and every commit failed with 'str' object cannot be interpreted as an integer
  • fix(server): restore Python 3.6 compatibility by @tynanford in #178 — builtin generic annotations and str.removeprefix() are 3.9 or later, so the package installed on 3.6 to 3.8 and then failed on import

Repository changes

  • RecCaster moved to ChannelFinder/reccaster; client/ CI, docs, and submodule removed by @jacomago in #169
  • Debian packaging removed by @anderslindho in #176 — it could no longer build; sites packaging from debian/ will need their own
  • READMEs and recceiver_full.conf brought in line with the reccaster split by @anderslindho in #176
  • All unit tests collected in CI, and the development compose.yml healthcheck corrected by @anderslindho in #176
  • fix(tests): correct the IOC dbd path by @anderslindho in #179
  • requires-python raised to >=3.7 and the 3.6 classifier dropped by @tynanford in #178 — setuptools on 3.6 cannot install from pyproject.toml; the overlapping requests and twisted markers below 3.7 go with it
  • CI installs the package and imports it from outside the checkout, so the declared floor is tested by @tynanford in #178

Config changes

  • No keys added, removed, or given new defaults.
  • Corrected: findSizeLimit is now parsed as an integer. It was read as a string, so any site that set it saw every CF commit fail (#172).
  • Corrected: pushAlwaysRetry — the 1.9.6 notes stated that enabling it holds only the per-IOC lock, leaving other IOCs unaffected. Following the revert above, enabling it holds the global commit lock and blocks all IOC commits until CF recovers. The default is unchanged at False.
  • recceiver-clean is the manual counterpart to cleanOnStart, for sites that run with cleanOnStart = False. It marks every Active channel for a given recceiver_id Inactive, and --dry-run reports the count without writing.

New Contributors

Full Changelog: 1.9.6...1.10.0