Skip to content

Releases: tiny-blocks/collection

v2.6.0

Choose a tag to compare

@gustavofreze gustavofreze released this 07 Aug 02:20
0142737
  • Remove the versioned Claude configuration, now centralized in tiny-blocks/tiny-blocks.
  • Remove the CodeQL workflow.
  • Align .gitattributes, .gitignore, and phpcs.xml with the canonical ecosystem assets.
  • Adopt the PSR12 plus SlevomatCodingStandard ruleset and register dealerdirect/phpcodesniffer-composer-installer.
  • Raise tiny-blocks/mapper to ^3.2.
  • Raise infection/infection to ^0.34, phpunit/phpunit to ^13.2, and symfony/console to ^8.1, and add slevomat/coding-standard at ^8.31.
  • Extract expand from FlatMap::apply to satisfy the cognitive complexity limit.
  • Split Segment::apply into dropFromEnd, takeInOrder, and hasReached to satisfy the same limit.
  • Bracket the comparator expression in Rearrange to satisfy Squiz.Formatting.OperatorBracket.
  • Drop the obsolete return.type suppression for Collection, which PHPStan now infers correctly.

v2.5.0

Choose a tag to compare

@gustavofreze gustavofreze released this 09 Jun 01:28
96913ae
  • Bumped tiny-blocks/mapper from ^3.0 to ^3.1 in composer.json.

v2.4.0

Choose a tag to compare

@gustavofreze gustavofreze released this 06 Jun 11:33
5d03764
  • Add collection-side portable serialization (toArray / toJson) with configurable key preservation, and introduce a local KeyPreservation enum.
  • Update typed test collections to declare element types via #[ElementType], plus add new mapper round-trip tests and refine existing test coverage.
  • Improve internal performance/typing (compiled map/filter, materialization stage handling, expanded generics annotations) and sync repo scaffolding/rules/docs.

v2.3.3

Choose a tag to compare

@gustavofreze gustavofreze released this 18 May 22:07
5c8612a
  • Adds/updates canonical .claude rules, GitHub templates, security policy, workflows, and repository tooling configs.
  • Updates Composer scripts, Makefile targets, report paths, PHPCS/PHPStan/PHPUnit/Infection configuration.
  • Applies minor code/documentation refinements, including Each::on(), PHPDoc generics, README examples, and formatting cleanup.

v2.3.2

Choose a tag to compare

@gustavofreze gustavofreze released this 21 Apr 22:04
eaf25b3
  • Expanded and organized .gitignore entries for IDE/agent folders, Composer artifacts, PHPUnit caches, and common output directories.
  • Simplified .gitattributes and added export-ignore rules for tests and development-only configs to keep dist tarballs minimal.

v2.3.1

Choose a tag to compare

@gustavofreze gustavofreze released this 21 Apr 11:52
ad7d5c6
  • Allow EagerPipeline::fromClosure() to accept either an array or a Traversable result from the factory.
  • Make Filter predicate compilation explicitly drop only null predicates.
  • Normalize/refresh project metadata and contributor tooling/docs (Composer normalization, README overview, editor config, Claude rules).

v2.3.0

Choose a tag to compare

@gustavofreze gustavofreze released this 16 Apr 14:27
e7a8a3f
  • Added Internal\Materialization and refactored EagerPipeline to rely on it for cached terminal access.
  • Expanded/adjusted complexity and evaluation-strategy documentation (Collectible, Pipeline, README).
  • Added test coverage for multi-predicate filtering and reducing over chained operations (eager + lazy).

v2.2.0

Choose a tag to compare

@gustavofreze gustavofreze released this 16 Apr 01:55
9e810a8
  • Introduce Collection::createFromClosure() backed by an eager pipeline that materializes the closure result immediately.
  • Move first/isEmpty/last resolution into Pipeline implementations (eager/lazy) and remove the old resolving helpers.
  • Expand README + API docs with evaluation strategy and complexity explanations; add extensive tests and new test models.

v2.1.0

Choose a tag to compare

@gustavofreze gustavofreze released this 15 Apr 19:48
12a3972
  • Introduces Collection::createLazyFromClosure() backed by LazyPipeline::fromClosure() for re-iterable lazy sources.
  • Refactors EagerPipeline to memoize materialization and allow repeated iteration when created from single-use iterables (e.g., generators).
  • Updates each() to be a terminal operation returning void, and updates tests + adds new tests for closure/generator reiteration.

v2.0.0

Choose a tag to compare

@gustavofreze gustavofreze released this 30 Mar 10:43
7ab5f0f
  • Introduces Pipeline + EagerPipeline/LazyPipeline and refactors Collection to compose operations via pipeline stages.
  • Replaces the previous operation set (LazyOperation/ImmediateOperation) with Transforming\* (pipeline stages) and Resolving\* (terminal helpers).
  • Consolidates/rewrites tests and updates documentation to reflect the new API and extension patterns.