chore: release v0.0.25#104
Merged
Merged
Conversation
## Summary This version adds `Sequence` as the ordered relation layer on top of `Expression`, which is what makes route matching work for keyed relations like `page -> tags`. With `Sequence`, those relations can now be represented and matched as ordered paths of ids or expressions instead of as a flat one-shot lookup. That matters because routes are not just "does this id match?” anymore. They are "does this relation appear in this order, with these constraints, and possibly with gaps or intermediate steps?” So the model is: - `Id` is one concrete node in the relation - `Selector` is a pattern over one node - `Expression` is a logical combination of selectors - `Sequence` is an ordered combination of expressions - `Filter` compiles that relation matching into something fast In practice, that means if the scheduler or routing layer sees a relation like `page -> tags`, it can now match a route against that relation shape. A route can say "I care about pages that have tags”, or "I care about tags that refer back to pages”, and the ordered sequence gives the compiler enough structure to evaluate that efficiently. That is the bigger idea: routes are no longer just attached to isolated ids, they can be attached to relation paths. `Sequence` is the piece that makes those paths first-class. Signed-off-by: squidfunk <martin.donath@squidfunk.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This version adds
Sequenceas the ordered relation layer on top ofExpression, which is what makes route matching work for keyed relations likepage -> tags.With
Sequence, those relations can now be represented and matched as ordered paths of ids or expressions instead of as a flat one-shot lookup. That matters because routes are not just "does this id match?” anymore. They are "does this relation appear in this order, with these constraints, and possibly with gaps or intermediate steps?”So the model is:
Idis one concrete node in the relationSelectoris a pattern over one nodeExpressionis a logical combination of selectorsSequenceis an ordered combination of expressionsFiltercompiles that relation matching into something fastIn practice, that means if the scheduler or routing layer sees a relation like
page -> tags, it can now match a route against that relation shape. A route can say "I care about pages that have tags”, or "I care about tags that refer back to pages”, and the ordered sequence gives the compiler enough structure to evaluate that efficiently.That is the bigger idea: routes are no longer just attached to isolated ids, they can be attached to relation paths.
Sequenceis the piece that makes those paths first-class.