Skip to content

Conversation

@renovate
Copy link
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: azjezz/psl@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: azjezz/psl@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
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
| 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 847af4e to fd8246b Compare November 13, 2025 07:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant