ci: run the tutorial notebooks on gdstk - #116
Merged
Merged
Conversation
Two notebooks sit on the 180s per-cell limit and cross it depending on
which runner the job lands on, so the check passes or fails on identical
content. `lvs-pin-filter` has four green runs and two red ones.
GLayout_Cells 290s pass (ReaLLMASIC#112) / 372s error (ReaLLMASIC#113)
glayout_opamp 136s pass (ReaLLMASIC#112) / 198s error (ReaLLMASIC#113)
The native backend builds these cells several times faster, which moves
them off the limit instead of raising it. Measured on this fork's CI --
same container, same runners -- with ReaLLMASIC#102, ReaLLMASIC#104 and ReaLLMASIC#113 applied on both
sides, the only difference being this line:
gdsfactory gdstk
GLayout_Cells 187.8s ERROR 14.2s pass
glayout_opamp 126.4s pass 19.2s pass
5T_OTA_part2 90.8s pass 16.2s pass
test_bjt_custom_pattern 68.2s pass 11.4s pass
whole suite 660s 13/14 158s 14/14
Note the baseline already carries all three PRs and still fails: they are
what lets the notebooks run on gdstk at all, not what fixes the timeouts.
Depends on ReaLLMASIC#102, ReaLLMASIC#104 and ReaLLMASIC#113. Without ReaLLMASIC#113 `GLayout_Cells` raises in
`mimcap.py`; without ReaLLMASIC#102 it raises in `Component.add`; without ReaLLMASIC#104's
`add_ref(columns=)` the BJT notebook raises. This check stays red until
all three land.
This was referenced Aug 24, 2026
msaligane
approved these changes
Aug 25, 2026
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.
The
Run tutorial notebookscheck currently passes or fails on identical content, depending on which runner the job lands on. Two notebooks sit right on the 180s per-cell limit:lvs-pin-filteralone has four green runs and two red ones. Right now six of the eight open PRs are red for this reason while their DRC checks pass.Raising the timeout would hide it. The native backend removes it: the same cells build several times faster, so they end up nowhere near the limit.
Measured
Run on this fork's CI — same container, same image, same runners — with #102, #104 and #113 applied on both sides. The only difference between the two branches is the one line in this PR:
GLayout_Cellsglayout_opampglayout_tutorial_5T_OTA_part2test_bjt_custom_patterntest_bjt_glayoutRuns: gdsfactory baseline · gdstk
Worth noting that the baseline already carries all three PRs and still fails. They are what lets the notebooks run on gdstk at all — they are not themselves a fix for the timeouts.
Dependencies
This check stays red until all three land, and each covers a different failure in the same notebook:
GLayout_Cellsraises inmimcap.py:293Component.addadd_ref(columns=)—test_bjt_gdsfactoryraisesHappy to hold this until they are in, or to close it if you would rather solve the flakiness another way — the measurement is the part worth having either way.