Skip to content

Update dependency azjezz/psl to v4, dropped PHP 8.2 support#511

Merged
Ocramius merged 4 commits into1.41.xfrom
renovate/azjezz-psl-4.x
Nov 25, 2025
Merged

Update dependency azjezz/psl to v4, dropped PHP 8.2 support#511
Ocramius merged 4 commits into1.41.xfrom
renovate/azjezz-psl-4.x

Conversation

@renovate
Copy link
Copy Markdown
Contributor

@renovate renovate Bot commented Sep 15, 2025

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
azjezz/psl ^3.3.0 -> ^4.2.0 age adoption passing confidence

Release Notes

azjezz/psl (azjezz/psl)

v4.2.0: Version 4.2.0

Compare Source

What's Changed

Full Changelog: php-standard-library/php-standard-library@4.1.0...4.2.0

v4.1.0: Noise 4.1.0

Compare Source

Psl Noise - 4.1.0

This release introduces two major new data structure components to the PHP Standard Library: Tree and Graph. These additions bring powerful hierarchical and relational data manipulation tools to PHP developers with PSL's signature type-safe API.

What's Changed

✨ New Features

🌳 Psl\Tree Component

A comprehensive tree data structure implementation for working with hierarchical data.

Features: Immutable tree nodes, functional operations (map, filter, reduce, fold), traversal algorithms (pre-order, post-order, level-order), search utilities, and conversion functions.

use Psl\Tree;

// Create and manipulate trees
$tree = Tree\tree('root', [
    Tree\leaf('child1'),
    Tree\tree('child2', [Tree\leaf('grandchild')]),
]);

// Functional operations
$doubled = Tree\map($tree, fn($x) => $x . '!');
$values = Tree\pre_order($tree); // ['root', 'child1', 'child2', 'grandchild']
$count = Tree\count($tree); // 4

// Build from database records
$tree = Tree\from_list(
    $records,
    fn($r) => $r['id'],
    fn($r) => $r['parent_id'],
    fn($r) => $r['name']
);

Use Cases: File systems, organizational hierarchies, DOM structures, category trees, menu systems.

Full Documentation


🕸️ Psl\Graph Component

A robust graph data structure implementation supporting both directed and undirected graphs with algorithms for analysis and pathfinding.

Features: Immutable graphs, weighted/unweighted edges, BFS/DFS traversal, shortest path (Dijkstra/BFS), topological sorting, cycle detection, flexible node types.

use Psl\Graph;

// Create and traverse graphs
$graph = Graph\directed();
$graph = Graph\add_edge($graph, 'A', 'B');
$graph = Graph\add_edge($graph, 'B', 'C');

$path = Graph\shortest_path($graph, 'A', 'C'); // ['A', 'B', 'C']
$sorted = Graph\topological_sort($graph); // ['A', 'B', 'C']

// Weighted graphs
$graph = Graph\add_edge($graph, 'NYC', 'Boston', 215);
$graph = Graph\add_edge($graph, 'NYC', 'Philadelphia', 95);
$graph = Graph\add_edge($graph, 'Philadelphia', 'Boston', 310);
$route = Graph\shortest_path($graph, 'NYC', 'Boston'); // ['NYC', 'Boston']

// Undirected graphs
$social = Graph\undirected();
$social = Graph\add_edge($social, 'Alice', 'Bob');

Use Cases: Dependency resolution, route finding, social networks, state machines, task scheduling.

Full Documentation


🔍 Reflection-Based Type Functions

New type functions for runtime validation of class members using PHP's reflection API:

  • Type\constant_name_of() - Validate constant names
  • Type\enum_case_of() - Validate enum case names
  • Type\method_name_of() - Validate method names (case-insensitive)
  • Type\property_name_of() - Validate property names

Each includes visibility-specific variants (public_*, protected_*, private_*).

use Psl\Type;

Type\method_name_of(MyClass::class)->assert('someMethod');
Type\property_name_of(MyClass::class)->assert('someProperty');
Type\public_constant_name_of(MyClass::class)->assert('SOME_CONSTANT');

Full Documentation


🛠️ Tooling Updates

  • Migration to just: Migrated from make to just for improved cross-platform compatibility and developer experience

⬆️ Dependency Updates

  • mago updated to 1.0.0-beta.32
  • actions/setup-just bumped from v2 to v3
  • Various development dependency updates

🤝 Contributors

@​veewee has been added to GitHub sponsors

Full Changelog: 4.0.1...4.1.0

v4.0.1: Noise 4.0.1

Compare Source

What's Changed

Full Changelog: php-standard-library/php-standard-library@4.0.0...4.0.1

v4.0.0

Compare Source

breaking changes
  • Psl\Result\wrap() no longer unwraps nested results - #​531 by @​azjezz
  • Psl\Collection\Map, Psl\Collection\MutableMap, Psl\Collection\Set, and Psl\Collection\MutableSet now have a more natural JSON serialization - #​512 by @​josh-rai
  • A large number of intersection interfaces in the Psl\IO and Psl\File namespaces have been removed to simplify the component's hierarchy - #​518 by @​azjezz
  • Psl\sequence() function has been removed - #​519 by @​azjezz
features
fixes, and improvements
other

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

Read more about the use of Renovate Bot within ocramius/* projects.

@renovate renovate Bot added the renovate label Sep 15, 2025
@renovate
Copy link
Copy Markdown
Contributor Author

renovate Bot commented Sep 15, 2025

⚠️ Artifact update problem

Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.

♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

  • any of the package files in this branch needs updating, or
  • the branch becomes conflicted, or
  • you click the rebase/retry checkbox if found above, or
  • you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:

File name: composer.lock
Command failed: composer update azjezz/psl:4.2.0 --with-dependencies --ignore-platform-req='ext-*' --ignore-platform-req='lib-*' --no-ansi --no-interaction --no-scripts --no-autoloader --no-plugins --minimal-changes
Loading composer repositories with package information
Updating dependencies
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - Root composer.json requires azjezz/psl ^4.2.0 -> satisfiable by azjezz/psl[4.2.0].
    - azjezz/psl 4.2.0 requires php ~8.3.0 || ~8.4.0 || ~8.5.0 -> your php version (8.2.99; overridden via config.platform, actual: 8.2.29) does not satisfy that requirement.

Use the option --with-all-dependencies (-W) to allow upgrades, downgrades and removals for packages currently locked to specific versions.

@renovate renovate Bot force-pushed the renovate/azjezz-psl-4.x branch 5 times, most recently from 8277391 to 2eaa5a4 Compare September 29, 2025 04:46
@renovate renovate Bot force-pushed the renovate/azjezz-psl-4.x branch 2 times, most recently from 1b1334a to c192ad4 Compare October 11, 2025 05:09
@renovate renovate Bot force-pushed the renovate/azjezz-psl-4.x branch 3 times, most recently from e494598 to cb5aa46 Compare October 23, 2025 13:47
@renovate renovate Bot force-pushed the renovate/azjezz-psl-4.x branch 4 times, most recently from 2300039 to 4d989ef Compare November 3, 2025 04:47
@renovate renovate Bot force-pushed the renovate/azjezz-psl-4.x branch 3 times, most recently from 680abd4 to 847af4e Compare November 8, 2025 05:55
@renovate renovate Bot force-pushed the renovate/azjezz-psl-4.x branch 2 times, most recently from fd8246b to 51dc479 Compare November 15, 2025 07:27
@renovate renovate Bot force-pushed the renovate/azjezz-psl-4.x branch 2 times, most recently from 6a5e2b5 to 439afac Compare November 25, 2025 15:15
| datasource | package    | from  | to    |
| ---------- | ---------- | ----- | ----- |
| packagist  | azjezz/psl | 3.3.0 | 4.2.0 |
@renovate renovate Bot force-pushed the renovate/azjezz-psl-4.x branch from 439afac to 03f4ba1 Compare November 25, 2025 16:40
@Ocramius Ocramius changed the base branch from 1.40.x to 1.41.x November 25, 2025 16:41
@Ocramius Ocramius self-assigned this Nov 25, 2025
@Ocramius Ocramius modified the milestones: 1.14.1, 1.41.0 Nov 25, 2025
@Ocramius Ocramius added enhancement New feature or request dependencies Pull requests that update a dependency file labels Nov 25, 2025
@Ocramius Ocramius changed the title Update dependency azjezz/psl to v4 Update dependency azjezz/psl to v4, dropped PHP 8.2 support Nov 25, 2025
@renovate
Copy link
Copy Markdown
Contributor Author

renovate Bot commented Nov 25, 2025

Edited/Blocked Notification

Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.

You can manually request rebase by checking the rebase/retry box above.

⚠️ Warning: custom changes will be lost.

@Ocramius Ocramius merged commit d77a525 into 1.41.x Nov 25, 2025
22 checks passed
@Ocramius Ocramius deleted the renovate/azjezz-psl-4.x branch November 25, 2025 16:49
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 enhancement New feature or request renovate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant