Changelog
=begin rakudoc
Overview
This changelog follows the shape of Keep a Changelog, adapted to Rakudoc.
Versions use the META6.json version number and release tags use the
release-x.y.z convention.
Unreleased
0.0.9 - 2026-07-23
Added
The parse operator (
ā±) slurps anIO::Handleleft-hand side (such as$*IN) before invoking the format parser; the handle is left open.Bare navigation operators (no LHS) use the caller topic
$_, matching the documented axis behaviour. A missing or undefined topic is an error.Selection alias
šø, named navigation aliases (child,parent,descendant,attribute,data-root), and ancestor:referencesupport.Universe-based set operators
ā©,ā©,ā, andā”, plus unary complementā(universe from caller$_).Equijoin
ā·=ā, natural joinā, and named join recallāµviaQwiratry::Query::NamedJoins.Following/preceding-sibling
IntRHS counts how many sibling rows to return.
Changed
Set difference is canonical
ā(U+229F), withākept as an alias; set-difference complement isā”(U+22A1). Circledā/āremain the symmetric-difference pair.query-astbuilds Qwiratry nodes forāandā”onPositionaloperands instead of losing to Raku core set/Bool dispatch.
0.0.8 - 2026-07-22
Fixed
Selection (
Ļ) and reduce (āæ) now bind bare topic blocks the same way map does: callables with.count= 1> receive the item argument, so predicates and reducers written as{ ... }get a defined$_instead ofOUTER::<$_>(oftenAny).
0.0.7 - 2026-07-21
Added
Filesystem tree navigation for
IO::Pathdirectory roots returned by⮳, including a dedicatedQwiratry::Tree::Navigator::Filesystem.Final-segment glob support for file locations, plus focused tests for filesystem navigation and tilde-expanded paths.
Changed
File locations now expand
~,~/, and~user/paths, and source reads returnIO::Pathfor directories instead of slurping them as text.Query selector matching now understands basename globs and regexes for filesystem navigation, reusing the shared selector machinery.
Fixed
Navigation evaluators now resolve adaptor subjects before walking tree axes, so chained source-then-navigation expressions work correctly.
Query slang
Ā».now preservesMapOperatorfor explicitquery-ast { ... }construction while plain evaluated data uses normal map behaviour.Location errors now report the resolved filesystem path and current working directory, making relative-path failures easier to diagnose.
0.0.6 - 2026-07-02
Added
query-ast { ... }in query slang for building raw operator AST when planners, molds, or explicit runtime calls need unevaluated query trees.Integration tests that query operators evaluate directly in normal use instead of returning
OperatorBaseAST nodes.
Changed
Query slang set, map-reduce, relational, and I/O operators now evaluate immediately and return
Seqresults or adaptor outcomes. Wrap expressions inquery-ast { ... }to preserve AST construction.Bumped
Implementation::Loaderdependency to0.0.9+so location backend discovery uses distributionprovideskeys.Updated
META6.jsonmodule description.
Fixed
Map-reduce evaluation treats
SeqandIteratorsubjects as collections, fixing I/O pipelines where upstream operators return lazy sequences.Row rename evaluation uses
DELETE-KEYinstead of the non-existentHash.deletemethod.
0.0.5 - 2026-06-30
Added
Add a release-time provides/package checker that compares META6.json's provides entries with the Fez bundle manifest or an existing archive. This catches cases where Fez's gitignore handling excludes files that still exist in the source tree, and updates the release process to run the check before publishing.
Changed
Add explicit URI scheme registration for location backends so file:// locations resolve to the discovered File backend rather than a lower-cased module name. This keeps backend lookup consistent whether callers provide a backend name directly or arrive through a URI scheme.
Fixed
Updated RakuAST tests to avoid say 1 * 3, which current Rakudo folds to say 3, so there is no infix node to find.
Fixed mixed mold when handling by recognizing topic hash-key predicates like .<value>:exists after query/predicate splitting, and preserving reliable topic invocation for manual Mold.new predicates.
0.0.4 - 2026-06-29
Added
givenroot $root { ... }syntax for temporarily binding the active query data root while evaluating navigation expressions.A sigil-less
rootterm for query code that needs to refer to the currently bound data root.Type-object selectors for query navigation, allowing expressions such as
RakuAST::IntLiteralandRakuAST::Callto match nodes directly by type.Focused tests for data-root binding, type-object selectors, table foreign-key navigation with a bound data root, and RakuAST ancestor lookup.
Changed
Renamed the dynamic query origin concept to data root in the query slang runtime API and documentation.
Updated table navigation examples to use
givenrootinstead of the older query-origin helper style.Expanded the release process documentation with install verification, clearer release step grouping, and explicit fez/GitHub verification steps.
Fixed
RakuAST ancestor navigation now falls back to origin-based parent lookup when a node exposes a
parentmethod that returnsNil.Descendant navigation now treats type objects as explicit selectors instead of ignoring them as non-path values.
0.0.3 - 2026-06-29
Added
RakuAST tree navigation support through
Qwiratry::Tree::Navigator::RakuAST.A dedicated tree navigator namespace, registry, and base role under
Qwiratry::Tree::Navigator.Documentation for adding tree navigators and for the release process.
Changed
Moved tree navigator discovery and registration out of
Qwiratry::Format. Formats now stay focused on parse and render implementations.RakuAST navigation no longer appears as a navigator-only format. It now lives under
Qwiratry::Tree::Navigator::RakuAST.Transformer default traversal now treats navigator-backed roots, including RakuAST roots, as trees instead of inline scalar values.
Fixed
Calling a transformer on a RakuAST root now walks descendant RakuAST nodes without requiring an explicit descendant query iterator.
0.0.2 - 2026-06-24
Changed
Aligned operator precedence documentation with the implemented query operators.
Fixed
Fixed local package installation behavior.
0.0.1 - 2026-06-24
Added
Initial public release of Qwiratry.
RakuAST-backed query operators and query slang for navigation, set, map-reduce, relational, and IO-style query expressions.
Tree and table walker infrastructure with lazy
QueryIteratorexecution, walker planning, strategy hooks, and traversal context support.Transformer and mold infrastructure, including mold matching,
make,NextMold, wrapper hooks, ordering, traits, and tree rewrite support.Table navigation support, schema discovery, ordered-row navigation, and foreign-key style relationship traversal.
Format, location, and IO implementation factories and demo parse/render formats.
Rakudoc documentation for the architecture, operators, extension points, and required Raku support.
Changed
Renamed the original template terminology to molds across the transformer system.
Reorganized modules into the current
Qwiratry::Format,Qwiratry::Walker,Qwiratry::Strategy,Qwiratry::Transformer, andQwiratry::Querynamespaces.Converted service-style modules to singleton facade classes where appropriate.
Fixed
Stabilized zef testing and test layout under
t/.Fixed lazy set operators, relation row equality, topic binding, wrapper collection, and iterator exhaustion behavior.
Improved mold diagnostics, exception placement, and package metadata.
=end rakudoc