Urgent.News

What's breaking now, across thousands of outlets.

Tech

GSoC'26_Week13 : Auto Layout

Week 13 of my Google Summer of Code journey with CircuitVerse (August 17th to August 23rd) was a mix of finishing Auto Layout, working through reviews, and trying a completely new GitHub workflow for the first time. 🧪 Finishing the Editor's Picks Work I started the week with two things on my mind: getting the Editor's Picks round-trip work through review and finishing the ELK.js Auto Layout…

Week 13 of the Google Summer of Code journey with CircuitVerse saw the completion of two major tasks: finishing the Auto Layout feature and addressing Editor's Picks round-trip work. After starting the week with a focus on two goals, Aryann reviewed PR #1194 and identified several important edge cases to address. These included the reconstruction of two-port and three-plus port fan-out nets, the preservation of routing topology in Editor's Picks fixtures, and the unique child-scope dependencies in the dependency graph.

The Auto Layout feature aimed to maintain the user experience of opening a circuit in a clean and readable way if layout data was missing, while also preserving the original layout data when it was present. This was achieved by using ELK.js with its layered layout algorithm. When layout was missing, the importer generated components to determine their real size, direction, and port positions.

It then converted the circuit into an ELK graph, arranged components from left to right while keeping inputs toward the beginning and outputs toward the end, and utilized orthogonal routing for generated wires.

A unique challenge arose when dealing with fan-out wiring in circuits, as CircuitVerse nets can have a single source connected to multiple targets. To address this, a temporary zero-size junction was created for fan-out nets, allowing ELK to route each branch cleanly. The junction and bend points were then converted back into CircuitVerse's normal intermediate routing nodes, and coordinates were snapped to the simulator grid before proceeding with the normal import flow.

However, an issue arose when attempting to use a stacked pull request workflow for the Auto Layout branch, which was built on top of the Editor's Picks branch. Since GitHub's stacked PR workflow requires branches to live in the same repository, push access was granted to the CircuitVerse repository, allowing both branches to be moved there and used together with the gh stack feature. This resulted in PR #1221 and #1222 being opened, both of which were cleaner and easier to review due to the stacked PR approach.

Looking ahead, the next major task is to implement JSON Schema and runtime validation for Canonical v1, bringing the project closer to its final stretch.

Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.

Read the original at dev.to →

More in Tech

A Green Build Is Not a Route Test

A Blazor Hybrid application can compile successfully and still fail as soon as its router starts. The uncomfortable part is that nothing needs to be wrong with the individual components.

More from Tuesday 1 September →