yash-rs icon indicating copy to clipboard operation
yash-rs copied to clipboard

Flatten the crate dependency graph

Open magicant opened this issue 1 month ago • 0 comments
trafficstars

Description

Currently, the crate structure in yash-rs forms a deep dependency chain:
yash-syntaxyash-envyash-semanticsyash-promptyash-builtin.

This depth causes a few problems. Any breaking change in an upstream crate (for example, in yash-syntax) forces major version bumps in all downstream crates, even when their public APIs or internal implementations haven’t changed. As a result, we end up with frequent major releases whose only purpose is to keep version numbers in sync.

Deep dependencies also slow down builds by reducing opportunities for parallel compilation.

To address these issues, we’d like to simplify the dependency graph.
The goal is to consolidate shared components into yash-env, and have all other crates (except yash-cli) depend only on yash-env. The yash-cli crate will act as the umbrella that ties everything together.

magicant avatar Oct 18 '25 03:10 magicant