aws-cqc / aws-cqc/DeviceLayout.jl

Compound and taper route styles

Open
#12 0 comments 0 reactions 0 assignees View on GitHub
enhancement
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.