aws-cqc / aws-cqc/DeviceLayout.jl
Compound and taper route styles
- Dominant language
- Julia
- Stars
- 67
- Forks
- 14
- Avg merge
- 1d 16h
- Merged PRs (30d)
- 21
Description
Currently, when generating a path from a `RouteComponent`, a style is applied to every segment, or a vector of styles (with as many elements as the eventual route has segments) is applied segment-wise. This is particularly an issue for tapers. It would also be nice to supply a compound style that gets turned into a repeating compound style for the length of the path.
These paths could be automatically `simplify!`-ed with the style applied on top for taper and compound styles. (The user can currently do this manually.) (This could expose bugs in using a compound style over a compound segment where the style and segment do not "match"—in some places we might only check that they have the same number of underlying segments/styles rather than check the `tag`.) This would change the number of nodes in the path, so it would be breaking to do it with other styles. The inconsistency might be a problem.
Alternatively, these styles could be automatically split and applied to the original segments. (It would be annoying to do this manually, but once set up it should be very clean and non-breaking.)
Either one would change behavior but in a "bugfix" sense (i.e. it would have been doing something clearly undesired before).
(This would remove the need for the route component to hold a vector of styles, although turning that field into a single style would be a breaking change.)
Contributor guide
Research direction
Start by reading the RouteComponent path-generation behavior and the existing simplify! flow. Compare how a single style, a vector of styles, taper styles, and compound styles are applied across route segments. Done requires choosing and implementing one consistent behavior while checking the noted segment/style tag mismatch cases and preserving the intended breaking-change boundaries.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- julia
- Domain
- design
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100