Skip to content

Update infocyph/runwire requirement from 2.1 to 2.1.2 - #32

Open
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/composer/infocyph/runwire-2.1.2
Open

dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/composer/infocyph/runwire-2.1.2

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Oct 24, 2026

Copy link
Copy Markdown

Updates the requirements on infocyph/runwire to permit the latest version.

Release notes

Sourced from infocyph/runwire's releases.

2.1.2

Overview

Runwire now constructs Swoole applications in their actual workers, so process-bound resources and runtime context belong to the correct worker. The patch also simplifies internal control flow without changing the documented public contracts.

New Features

  • Worker-local Swoole applications: Runtime::serveApplication() and Runtime::serve() construct applications after the host forks. Each worker and replacement receives its own context and metrics, and requests use that worker’s exact context. (Ref: 909b435)

Improvements

  • Internal maintainability: Simplifies control flow across networking, HTTP, runtime, and supervisor components while preserving existing behavior and public/protected contracts. (Ref: 2301169)

Notes

  • Swoole application factories now run once per worker, including replacements. Put host-wide setup before serving; create process-bound resources inside the factory. The additive SwooleDriver::runFactory() path provides worker-local construction, while run($application) remains available and leaves process-safety to its caller. (Ref: 909b435)

Full Changelog: infocyph/Runwire@2.1.1...2.1.2

Changelog

Sourced from infocyph/runwire's changelog.

Runwire 2.1.2 patch candidate

Status: unpublished. This note prepares the patch; it does not authorize a tag or publication.

Swoole/OpenSwoole Runtime::serveApplication() previously created the application and immutable runtime context in the parent before the host forked. Two-worker serving therefore passed the parent's PID and inherited application resources into children. A real Swoole 6.2.3 probe reproduced worker PIDs 7/8 with runtime PID 1; an independent Runwire-only probe confirmed the defect.

The factory now runs inside each actual worker's startup callback. The built-in application used by Runtime::serve() follows the same boundary. Workers and replacements receive process-correct contexts, native worker slots and fresh metrics. Request identity stays bound to the exact factory context. Worker drain/shutdown is owned and completed once, retaining startup/shutdown failures. The application/factory interfaces, native listener paths and other host driver selection remain unchanged.

Patch compatibility: existing public signatures, runtime requirements, configuration defaults, context forwarding and application/factory interfaces are unchanged. The existing SwooleDriver::run($application) path remains supported; its caller still owns the process-safety of that prebuilt object. The additive runFactory() path lets the existing high-level APIs construct applications at their correct worker boundary without changing caller code. Swoole factory side effects execute once per worker, including replacements; host-wide setup belongs before serving rather than inside an application factory.

The patch also resolves 38 pre-existing cognitive-complexity findings exposed by the current 1.3.0 analyzer. Private helpers and simpler control flow retain validation order, buffer limits, protocol fairness, cancellation and shutdown semantics. No production classes, required dependencies, options or existing public/protected signatures were added or changed for this quality maintenance. An AST comparison preserves all 2,022 existing public/protected contracts.

Regression coverage includes worker-local creation, failure before creation, combined startup/shutdown failure and independent replacement state. The existing PHP 8.4/8.5 Swoole/OpenSwoole workflow now exercises both high-level host APIs with two real workers, eight concurrent PHP clients, no application creation in the parent and one drain/shutdown per worker. The acceptance runner uses PHP only; no Python installation is needed.

Local real Swoole acceptance passes both APIs (64 concurrent requests each). A Foundation integration probe passes 40 concurrent requests across both workers, unique request IDs and HTTP failure recovery using the candidate source through a test-only loader; installed vendor sources are untouched. Local PHP 8.5.11 regression tests pass: 556 tests / 3,654 assertions. PHPStan with cognitive-complexity 1.3.0 passes without exclusions or threshold changes. The full detailed quality suite and final release guard also pass in the provisioned PHP 8.5.11 container. Hosted acceptance must cover the completed

... (truncated)

Commits
  • 7e9bf20 Merge pull request #8 from infocyph/fix/swoole-worker-application-lifecycle
  • 2301169 fix: clear existing complexity findings for the 2.1.2 patch
  • 909b435 Fix Swoole application construction after worker forks
  • 745b1c2 Merge pull request #7 from infocyph/feature/recycling-reset
  • bcaec48 Update ControlServerTest.php
  • e8b3dc6 ✨ refactor(http): finish accepted requests and headers before drain
  • See full diff in compare view

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Updates the requirements on [infocyph/runwire](https://github.com/infocyph/Runwire) to permit the latest version.
- [Release notes](https://github.com/infocyph/Runwire/releases)
- [Changelog](https://github.com/infocyph/Runwire/blob/main/docs/release-notes-2.1.2.md)
- [Commits](infocyph/Runwire@2.1...2.1.2)

---
updated-dependencies:
- dependency-name: infocyph/runwire
  dependency-version: 2.1.2
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot
dependabot Bot requested a review from abmmhasan as a code owner October 24, 2026 22:32
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file php Pull requests that update php code labels Oct 24, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file php Pull requests that update php code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants