Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
217 commits
Select commit Hold shift + click to select a range
f897d63
remove route/route_L from optical/electrical routing (#865)
sebastian-goeldi Feb 2, 2026
1463de4
Merge branch 'main' into release-3.0
sebastian-goeldi Feb 2, 2026
d36c6aa
Remove py311 add 314 (#877)
sebastian-goeldi Feb 3, 2026
ff9c709
Merge branch 'main' into release-3.0
sebastian-goeldi Feb 7, 2026
ea51586
876 switch from mypy to ty (#880)
sebastian-goeldi Feb 9, 2026
4d629ed
Merge branch 'main' into release-3.0
sebastian-goeldi Feb 9, 2026
a3fbbd0
add support for nets with more than two ports
sebastian-goeldi Feb 9, 2026
88b6e79
implement new schematic
sebastian-goeldi Feb 9, 2026
17c73da
update migration doc
sebastian-goeldi Feb 9, 2026
0f29332
remove deprecated routing args
sebastian-goeldi Feb 9, 2026
0d8e740
improve port retrieval and harmonize the routing strategies
sebastian-goeldi Feb 10, 2026
6748762
add tests and stuff for schematic
sebastian-goeldi Feb 10, 2026
4c27844
move test data to submodule
sebastian-goeldi Feb 11, 2026
4e826bf
update submodules and stuff
sebastian-goeldi Feb 11, 2026
88f5c7e
update workflows for submodules
sebastian-goeldi Feb 11, 2026
a3194ad
update just file
sebastian-goeldi Feb 11, 2026
ecc520e
update klayout
sebastian-goeldi Feb 11, 2026
f333acf
Merge remote-tracking branch 'origin/main' into add-mult-nets-schematic
sebastian-goeldi Feb 21, 2026
5fb631e
don't write kfactory settings in oas/gds test files, this hsould fix …
sebastian-goeldi Feb 21, 2026
c8e99aa
update test data commit
sebastian-goeldi Feb 21, 2026
3e8ac61
fix gdsfactory submodule maybe?
sebastian-goeldi Feb 21, 2026
793ec40
fix init submodule for gdsfactory submodule
sebastian-goeldi Feb 21, 2026
e11c841
fix gdsfactory tests
sebastian-goeldi Feb 22, 2026
3f6ff14
min tests should also clone submodules
sebastian-goeldi Feb 22, 2026
9f89423
cov should also clone submodules
sebastian-goeldi Feb 22, 2026
2c63ea4
min tests should also clone submodules; for real this time
sebastian-goeldi Feb 22, 2026
b20175a
Merge pull request #881 from gdsfactory/add-mult-nets-schematic
sebastian-goeldi Feb 22, 2026
d8baae6
Merge branch 'main' into release-3.0
sebastian-goeldi Feb 22, 2026
db26ed1
Merge branch 'main' into release-3.0
sebastian-goeldi Feb 23, 2026
2b161c2
Merge branch 'main' into release-3.0
sebastian-goeldi Feb 27, 2026
82162f4
Merge branch 'main' into release-3.0
sebastian-goeldi Feb 28, 2026
23130b8
better routing debugs for non-waypointed routes
sebastian-goeldi Feb 28, 2026
f6b675f
Merge branch 'release-3.0' into add-route-debug
sebastian-goeldi Feb 28, 2026
a3bca81
add support for debugging interface for routes
sebastian-goeldi Mar 1, 2026
edc1ecf
fix show custom test
sebastian-goeldi Mar 2, 2026
d83c74a
Merge pull request #893 from gdsfactory/add-route-debug
sebastian-goeldi Mar 2, 2026
53fadd0
Merge branch 'main' into release-3.0
sebastian-goeldi Mar 2, 2026
611467a
Merge branch 'main' into release-3.0
sebastian-goeldi Mar 9, 2026
5765baf
fix ty
sebastian-goeldi Mar 19, 2026
b65d8b4
update test and fix meta test
sebastian-goeldi Mar 19, 2026
7b2e6b6
loguru WASM fix
sebastian-goeldi Mar 19, 2026
a9375f6
fix the routing for return routes
sebastian-goeldi Mar 24, 2026
f82cbcd
update test_data commit
sebastian-goeldi Mar 24, 2026
63749a9
Merge pull request #908 from gdsfactory/fix-same-direction-routing
sebastian-goeldi Mar 24, 2026
a8bcd45
refactor cell decorator like #905
sebastian-goeldi Mar 24, 2026
d9cc0c8
Merge branch 'release-3.0' into faster-decorator
sebastian-goeldi Mar 24, 2026
152ed60
fix ty and update to named ports only
sebastian-goeldi Mar 29, 2026
5e57c24
conditionally compute params on first use
sebastian-goeldi Mar 30, 2026
5628e86
fix docs
sebastian-goeldi Mar 30, 2026
9985a45
Merge pull request #909 from gdsfactory/faster-decorator
sebastian-goeldi Mar 30, 2026
b06ac0e
add port type to ports print
sebastian-goeldi Mar 31, 2026
202a41b
Merge pull request #916 from gdsfactory/print-port-type
sebastian-goeldi Mar 31, 2026
754a651
add unnamed cell name checks
sebastian-goeldi Apr 2, 2026
647583a
Merge pull request #921 from gdsfactory/add-unnamed-cell-check
sebastian-goeldi Apr 2, 2026
c5436bb
Merge branch 'main' into release-3.0
sebastian-goeldi Apr 2, 2026
3ca1127
clauding the docs or something
sebastian-goeldi Apr 4, 2026
6f10397
remove old and unused functions and calls
sebastian-goeldi Apr 8, 2026
fa8e6e1
fix cell naming in routing errors
sebastian-goeldi Apr 8, 2026
b0fe41f
add basic framework for constraints
sebastian-goeldi Apr 14, 2026
64c1144
Merge branch 'main' into release-3.0
sebastian-goeldi Apr 20, 2026
1f36217
fix ty
sebastian-goeldi Apr 3, 2026
e5116a2
update uv lock
sebastian-goeldi Apr 3, 2026
fe3b306
add function pickler
sebastian-goeldi Apr 3, 2026
0f61f95
improve session cache by adding klayout serializations and having les…
sebastian-goeldi Apr 22, 2026
b332f7d
some progress
sebastian-goeldi Apr 24, 2026
bf7f100
fix session_cache failing
sebastian-goeldi Apr 25, 2026
9e0f471
Merge branch 'main' into release-3.0
sebastian-goeldi Apr 25, 2026
8c452b2
Merge branch 'release-3.0' into 906-revisit-and-improve-session-cache
sebastian-goeldi Apr 25, 2026
f5d07da
fix schematic parsing of pic.yml
sebastian-goeldi Apr 25, 2026
c66183f
fix netlist extraction and make extraction better for kfactory netlist
sebastian-goeldi Apr 27, 2026
532b205
fix netlist array for na=0 and nb=0
sebastian-goeldi Apr 27, 2026
efe4bca
fix optical net extraction
sebastian-goeldi Apr 30, 2026
d8f431d
fix port check connection for vitual connections
sebastian-goeldi May 4, 2026
11f4f76
fix release drafter
sebastian-goeldi May 4, 2026
212bacc
fix release drafter workflow fully
sebastian-goeldi May 4, 2026
7876b25
Merge pull request #941 from gdsfactory/virtual-schematic-connections
sebastian-goeldi May 4, 2026
0d2be1d
Merge branch 'release-3.0' into 906-revisit-and-improve-session-cache
sebastian-goeldi May 4, 2026
f4dd982
fix pre-commit config
sebastian-goeldi May 4, 2026
e5140e7
Merge pull request #940 from gdsfactory/906-revisit-and-improve-sessi…
sebastian-goeldi May 4, 2026
c3c4e9c
Merge branch 'release-3.0' into add-constraints
sebastian-goeldi May 4, 2026
59d3ceb
fix constraints
sebastian-goeldi May 4, 2026
90b80e4
remove test shows
sebastian-goeldi May 4, 2026
b2dabc2
update all dependencies
sebastian-goeldi May 4, 2026
2012e72
fix annotations import
sebastian-goeldi May 4, 2026
3088f54
Merge pull request #928 from gdsfactory/add-constraints
sebastian-goeldi May 4, 2026
190b2dc
Merge remote-tracking branch 'origin/release-3.0' into overhaul-docs
sebastian-goeldi May 4, 2026
b078e70
docs: replace mkdocs-jupyter+gen-files with pre-build pipeline; add z…
sebastian-goeldi May 4, 2026
bd65633
docs: enable Material icon SVGs and grid-card markup
sebastian-goeldi May 4, 2026
730ad88
ci: allow Material's !!python/name: tag in mkdocs.yml check-yaml
sebastian-goeldi May 4, 2026
923865f
docs: rename mkdocs.yml → zensical.yml
sebastian-goeldi May 4, 2026
06b251a
docs: drop mkdocs, make zensical the only docs builder
sebastian-goeldi May 4, 2026
b0731e2
ci: deploy versioned docs via zensical's mike fork
sebastian-goeldi May 4, 2026
c274a42
docs: collapse top-level nav from 13 entries to 9
sebastian-goeldi May 4, 2026
cf0f5ab
docs: clarify @kf.vcell description in pcells.py
sebastian-goeldi May 4, 2026
1f24ddd
docs: pull kfactory[ipy] into the notebooks extra
sebastian-goeldi May 4, 2026
3cce6f4
Merge remote-tracking branch 'origin/release-3.0' into overhaul-docs
sebastian-goeldi May 4, 2026
a67fc77
docs: port routing notebooks to the new PathLengthMatch constraint API
sebastian-goeldi May 4, 2026
245ed5c
docs: fix routing collisions in right-side path-length example
sebastian-goeldi May 4, 2026
42903c5
docs: trim the connectivity-check note in the right-side PLM example
sebastian-goeldi May 4, 2026
358db75
docs: escape [µm] in components/overview markdown bullets
sebastian-goeldi May 5, 2026
91819f9
docs: match zensical's heading slug rules in patterns.py TOC
sebastian-goeldi May 5, 2026
2318dfc
docs: keep loops=2 demo only in §5; restore default loops=1 in §3 right
sebastian-goeldi May 5, 2026
e2676ad
docs: rename "Bundle Reference" → "Bundle Routing Tutorial"
sebastian-goeldi May 5, 2026
73cca0d
docs: widen port pitch in §1 sort_ports demo to remove cladding overlap
sebastian-goeldi May 5, 2026
61e9148
docs: §1 sort_ports — pitch=10µm + local sep=10µm; remove on_collisio…
sebastian-goeldi May 5, 2026
af9b886
docs: write demo_geometry.gds to a tempdir; remove stray tracked copy
sebastian-goeldi May 5, 2026
00ae643
docs: generate κ logo as a build stage; gitignore the artifacts
sebastian-goeldi May 5, 2026
4fb2c05
docs: write reference/index.md so the API nav tab doesn't 404
sebastian-goeldi May 5, 2026
25b5870
docs: splice auto-generated API tree into zensical.yml's side nav
sebastian-goeldi May 5, 2026
e872b17
Merge pull request #922 from gdsfactory/overhaul-docs
sebastian-goeldi May 5, 2026
73090b6
fix #944
sebastian-goeldi May 5, 2026
940032d
Merge branch 'main' into release-3.0
sebastian-goeldi May 5, 2026
d233c92
Merge branch 'release-3.0' into fix-944
sebastian-goeldi May 5, 2026
269b59b
fix syntax for release drafter
sebastian-goeldi May 5, 2026
9c1f400
Merge branch 'release-3.0' into fix-944
sebastian-goeldi May 5, 2026
1a30b52
Merge pull request #948 from gdsfactory/fix-944
sebastian-goeldi May 5, 2026
18f5c29
fix race condition for session dir
sebastian-goeldi May 5, 2026
66495aa
add pins to schematic and add docs
sebastian-goeldi May 5, 2026
af6547b
Merge pull request #949 from gdsfactory/add-schematic-pins
sebastian-goeldi May 5, 2026
34183a1
restructure docs
sebastian-goeldi May 5, 2026
796d933
redo docs structure
sebastian-goeldi May 5, 2026
85e9ba2
Merge pull request #950 from gdsfactory/fix-docs-structure
sebastian-goeldi May 5, 2026
80d25fc
Merge branch 'main' into release-3.0
sebastian-goeldi May 5, 2026
5dfa6a3
add KCLayout lock
sebastian-goeldi May 5, 2026
2443e2b
Merge pull request #951 from gdsfactory/add-kclayout-lock
sebastian-goeldi May 5, 2026
b1c37dc
Merge branch 'main' into release-3.0
sebastian-goeldi May 5, 2026
77c1dc6
Merge pull request #875 from gdsfactory/release-3.0
sebastian-goeldi May 5, 2026
533bf9e
build zensical and add dev alias
sebastian-goeldi May 5, 2026
ab3d4f8
Bump to 3.0.0rc0
sebastian-goeldi May 5, 2026
0e52b21
remove ocean boiler plans
sebastian-goeldi May 5, 2026
4cae5a7
adjust and modernize version numbers
sebastian-goeldi May 5, 2026
00a64b9
Merge pull request #952 from gdsfactory/increase-dependencies-versions
sebastian-goeldi May 5, 2026
9d89317
spin out netlists
sebastian-goeldi May 6, 2026
bf61b91
fix: cast port_index to str in pin metadata deserialization
ThomasPluck May 8, 2026
af7ae5f
Merge pull request #956 from gdsfactory/fix/pin-metadata-port-index-type
sebastian-goeldi May 8, 2026
5605e5e
clean up docs
sebastian-goeldi May 12, 2026
806166e
Merge branch 'main' into netlist-separation
sebastian-goeldi May 12, 2026
1e1048e
Merge pull request #961 from gdsfactory/netlist-separation
sebastian-goeldi May 12, 2026
85d3278
Bump to 3.0.0rc1
sebastian-goeldi May 12, 2026
7944720
fix notebooks
sebastian-goeldi May 12, 2026
0da7cd1
docs reformatting with ruff; remove stale stuff
sebastian-goeldi May 12, 2026
dd8aff6
fix stale api refs
sebastian-goeldi May 12, 2026
3611c42
add more tests for coverage
sebastian-goeldi May 12, 2026
1b00551
fix pin checks and add tests for it
sebastian-goeldi May 13, 2026
80ceef2
fix failing windows test
sebastian-goeldi May 13, 2026
72c3418
Merge pull request #962 from gdsfactory/increase-coverage
sebastian-goeldi May 13, 2026
41e04be
update gdsfactory yaml pics
sebastian-goeldi May 13, 2026
0b78491
fix end_angles in route_bundle
sebastian-goeldi May 13, 2026
dede9b9
fix pins
sebastian-goeldi May 13, 2026
e85ec1c
split check_connectivity off into its own module
sebastian-goeldi May 15, 2026
b4cc9b1
fix tests
sebastian-goeldi May 15, 2026
84a9261
Merge pull request #963 from gdsfactory/split-connecitivy-check
sebastian-goeldi May 15, 2026
e447188
Bump to 3.0.0rc2
sebastian-goeldi May 15, 2026
ecc3586
update rust-just
sebastian-goeldi May 16, 2026
2f684a9
remove unreachable path
sebastian-goeldi May 16, 2026
9d28a33
update kclayout to not always rebuild on cell build
sebastian-goeldi May 17, 2026
dc09aa1
add layer_info to ports filter
sebastian-goeldi May 17, 2026
0424946
add test and update lock
sebastian-goeldi May 17, 2026
1b3a11f
fix clear error
sebastian-goeldi May 17, 2026
5cf36ab
Update src/kfactory/port.py
sebastian-goeldi May 17, 2026
c84dc78
fix typo
sebastian-goeldi May 17, 2026
b056dca
Merge pull request #965 from gdsfactory/add-ports-filter-layerinfo
sebastian-goeldi May 17, 2026
89f6be2
Merge branch 'main' into fix-kclayout
sebastian-goeldi May 17, 2026
106e9d2
Merge pull request #964 from gdsfactory/fix-kclayout
sebastian-goeldi May 17, 2026
0d2b13c
add asymmetrical cross section
sebastian-goeldi May 19, 2026
b862a30
fix ports to do the thing
sebastian-goeldi May 19, 2026
65d479e
fix various issues
sebastian-goeldi May 19, 2026
3994af2
fix clanker mistakes
sebastian-goeldi May 19, 2026
a44b8b9
Expose multi_xy_records in the configs
abdelq May 20, 2026
2f3fd8d
overhaul docs
sebastian-goeldi May 21, 2026
a90572e
fix some routing errors
sebastian-goeldi May 21, 2026
01bb886
Merge pull request #970 from gdsfactory/tidy-docs
sebastian-goeldi May 21, 2026
e7aa28d
Merge branch 'main' into abdelq/wmvrrpvumptz
sebastian-goeldi May 21, 2026
0edb543
Merge pull request #968 from abdelq/abdelq/wmvrrpvumptz
sebastian-goeldi May 21, 2026
19a18d1
Merge branch 'main' into asymmetrical-cross-section
sebastian-goeldi May 21, 2026
f60b990
Remove dead code in insert_into_flat
abdelq May 20, 2026
ec38a41
Use variable for all usage of `trans * self.trans`
abdelq May 21, 2026
e5684a4
Fix issues with VKCell.flatten
abdelq May 21, 2026
4471ca6
Handle insertion of KCell into VKCell
abdelq May 21, 2026
843841d
Guard against potential cross KCL issues
abdelq May 21, 2026
03efbd6
Merge pull request #967 from gdsfactory/asymmetrical-cross-section
sebastian-goeldi May 22, 2026
7d32d04
fix pydantic model type annotation resolution
sebastian-goeldi May 22, 2026
7ec2185
add migration guide for 2.x to 3
sebastian-goeldi May 22, 2026
cc02fdb
Merge pull request #974 from gdsfactory/kf3-migration-info
sebastian-goeldi May 22, 2026
1362555
Merge branch 'main' into abdelq/rtovwooquutx
sebastian-goeldi May 22, 2026
42fa826
Merge branch 'main' into abdelq/uumtqownxryt
sebastian-goeldi May 22, 2026
26f733f
Merge pull request #972 from abdelq/abdelq/rtovwooquutx
sebastian-goeldi May 22, 2026
5b9c866
Merge branch 'main' into abdelq/uumtqownxryt
sebastian-goeldi May 22, 2026
558c63a
Merge pull request #973 from abdelq/abdelq/uumtqownxryt
sebastian-goeldi May 22, 2026
7fb76d3
fix pre-commit
sebastian-goeldi May 22, 2026
1d5ae3e
readd version number to readme
sebastian-goeldi May 22, 2026
e222e77
Bump to 3.0.0rc3
sebastian-goeldi May 22, 2026
928dd9a
fix ty and upgrade dependencies
sebastian-goeldi Jun 1, 2026
74854f5
update to new kfnetlist and normalize netlist
sebastian-goeldi Jun 4, 2026
dbd9b18
fix test and ty
sebastian-goeldi Jun 4, 2026
b90cecd
Merge pull request #981 from gdsfactory/update-netlist-comparison
sebastian-goeldi Jun 4, 2026
6fe4647
update dependencies
sebastian-goeldi Jun 5, 2026
8dbf3b1
update ruff pre-commit
sebastian-goeldi Jun 5, 2026
1cbe1b9
Merge pull request #982 from gdsfactory/update-deps
sebastian-goeldi Jun 5, 2026
69e0dfc
Bump actions/cache from 4 to 5
dependabot[bot] Jun 5, 2026
3455f66
Merge pull request #979 from gdsfactory/dependabot/github_actions/act…
sebastian-goeldi Jun 5, 2026
b842d75
Bump to 3.0.0rc4
sebastian-goeldi Jun 5, 2026
47bef5b
rework enclosure and cross section registration and deduplication
sebastian-goeldi Jun 13, 2026
439c6b3
fix cross section inconsitencies
sebastian-goeldi Jun 14, 2026
bf8037e
Merge pull request #987 from gdsfactory/gf-cross-section-compatibility
sebastian-goeldi Jun 14, 2026
8edc992
fix bugs in cross sections
sebastian-goeldi Jun 14, 2026
f5990c2
refactor the factories
sebastian-goeldi Jun 16, 2026
edfeab7
update with new crossection based cells
sebastian-goeldi Jun 16, 2026
5d00f6e
update test data
sebastian-goeldi Jun 16, 2026
5260577
fix docs to use cross sections
sebastian-goeldi Jun 16, 2026
e4b949d
Merge pull request #989 from gdsfactory/routing-api-change
sebastian-goeldi Jun 17, 2026
3089632
update taper and virtual cells to cross section bases
sebastian-goeldi Jun 17, 2026
23989f8
Merge pull request #990 from gdsfactory/routing-api-change
sebastian-goeldi Jun 17, 2026
66cdadf
Detect duplicate cell names before writing layouts
joamatab Jun 26, 2026
68cc348
Refactor name-conflict logging and add layout-level duplicate check
joamatab Jun 26, 2026
2f34d4b
add _deduplicate_cell_names
joamatab Jun 26, 2026
81def66
Use hasattr guard for os.sched_getaffinity
joamatab Jun 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 4 additions & 0 deletions .github/workflows/coverage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,10 @@ jobs:
run: |
DEBIAN_FRONTEND=noninteractive sudo apt install graphviz graphviz-dev
- uses: actions/checkout@v6
with:
submodules: recursive
ssh-key: ${{ secrets.SUBMODULE_SSH_KEY }}
persist-credentials: false
- uses: astral-sh/setup-uv@v7
with:
python-version: ${{ matrix.python-version }}
Expand Down
11 changes: 10 additions & 1 deletion .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,5 +28,14 @@ jobs:
with:
python-version: ${{ matrix.python-version }}
- uses: extractions/setup-just@v4
- name: Test coverage
- name: Cache executed notebooks
uses: actions/cache@v5
with:
path: |
docs/.build-cache
docs/source-built
key: docs-source-built-${{ matrix.python-version }}-${{ hashFiles('docs/source/**/*.py', 'docs/source/**/*.md', 'src/kfactory/**/*.py', 'docs/scripts/build_docs_source.py') }}
restore-keys: |
docs-source-built-${{ matrix.python-version }}-
- name: Build docs
run: just docs
68 changes: 44 additions & 24 deletions .github/workflows/pages.yml
Original file line number Diff line number Diff line change
@@ -1,46 +1,66 @@
name: docs to gh-pages

# Multi-version deployment via mike (zensical fork, installed at runtime via --with):
# push to main → `dev` version (always tracks latest main)
# push to vX.Y.Z → `<X.Y.Z>` version + `latest` alias (set as default)
#
# Pre-existing v2.5.x version dirs on gh-pages stay intact — mike only
# rewrites the version it's deploying plus versions.json + the alias target.
#
# Requires: GitHub Pages source set to "Deploy from a branch" → gh-pages
# (one-time switch in repo Settings → Pages).

on:
push:
# branches:
# - main
branches:
- main
tags:
- "v[0-9]+.[0-9]+.[0-9]+*"
workflow_dispatch:

permissions:
contents: write # mike pushes to gh-pages

concurrency:
group: docs-deploy
cancel-in-progress: false

jobs:
build-docs:
deploy:
runs-on: ubuntu-latest
name: build docs
steps:
- name: Install graphviz
shell: bash -l {0}
run: |
DEBIAN_FRONTEND=noninteractive sudo apt install graphviz graphviz-dev

- uses: actions/checkout@v6
- uses: astral-sh/setup-uv@v7
with:
python-version: ${{ matrix.python-version }}
fetch-depth: 0 # mike needs full history of gh-pages

- uses: astral-sh/setup-uv@v7
- uses: extractions/setup-just@v4
- name: Test coverage
run: just docs
- uses: actions/upload-pages-artifact@v5

- name: Cache executed notebooks
uses: actions/cache@v5
with:
name: github-pages
path: "./docs/site/"
path: |
docs/.build-cache
docs/source-built
key: docs-source-built-3.14-${{ hashFiles('docs/source/**/*.py', 'docs/source/**/*.md', 'src/kfactory/**/*.py', 'docs/scripts/build_docs_source.py') }}
restore-keys: |
docs-source-built-3.14-

deploy-docs:
needs: build-docs
permissions:
pages: write
id-token: write
- name: Configure git for mike
run: |
git config --global user.name "github-actions[bot]"
git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com"
git fetch origin gh-pages --depth=1 || echo "no gh-pages branch yet"

environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
- name: Deploy main → dev version
if: github.ref == 'refs/heads/main'
run: just docs-deploy-dev

runs-on: ubuntu-latest
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v5
- name: Deploy tagged release → <version> + latest alias
if: startsWith(github.ref, 'refs/tags/v')
run: just docs-deploy-release "${GITHUB_REF#refs/tags/v}"
3 changes: 3 additions & 0 deletions .github/workflows/release-drafter.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,16 @@ permissions:

jobs:
update_release_draft:
if: github.event_name == 'push' || github.base_ref == 'main'
permissions:
contents: write
pull-requests: write
runs-on: ubuntu-latest
steps:
# Drafts your next Release notes as Pull Requests are merged into "master"
- uses: release-drafter/release-drafter@v7
with:
commitish: main
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
require_label:
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ on:
jobs:
release_pypi:
runs-on: ubuntu-latest
environment: pypi
steps:
- uses: actions/checkout@v6

Expand Down
19 changes: 17 additions & 2 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,19 @@ jobs:
fail-fast: false
matrix:
python-version:
- "3.11"
- "3.12"
- "3.13"
- "3.14"
os: [ubuntu-latest, windows-latest, macos-latest]
exclude: # TODO: remove once klayout wheels are generated
- os: windows-latest
python-version: "3.14"
steps:
- uses: actions/checkout@v6
with:
submodules: recursive
ssh-key: ${{ secrets.SUBMODULE_SSH_KEY }}
persist-credentials: false
- uses: astral-sh/setup-uv@v7
- uses: extractions/setup-just@v4
- name: Install dependencies
Expand All @@ -38,11 +45,19 @@ jobs:
strategy:
matrix:
python-version:
- "3.11"
- "3.12"
- "3.13"
- "3.14"
os: [ubuntu-latest, windows-latest, macos-latest]
exclude: # TODO: remove once klayout wheels are generated
- os: windows-latest
python-version: "3.14"
steps:
- uses: actions/checkout@v6
with:
submodules: recursive
ssh-key: ${{ secrets.SUBMODULE_SSH_KEY }}
persist-credentials: false
- uses: astral-sh/setup-uv@v7
- uses: extractions/setup-just@v4
- name: Install dependencies
Expand Down
16 changes: 16 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,20 @@
.idea
Pipfile
docs/_build/
docs/source-built/
docs/.build-cache/
site/
demo_geometry.gds
# Logo is regenerated by docs/scripts/gen_logo.py during the docs build
# (Stage 4 of build_docs_source.py); the staged copy lives in
# docs/source-built/_static/ which is already ignored above. If the
# generator is run standalone with --out-dir docs/source/_static the
# stray copies land here — keep them out of git.
docs/source/_static/logo.gds
docs/source/_static/logo.svg
# Spliced zensical config — built from docs/zensical.yml + the
# auto-generated API nav by docs/scripts/build_docs_source.py.
docs/zensical-built.yml

# Packages
*.egg
Expand Down Expand Up @@ -49,3 +62,6 @@ demo.gds
*.prof
*.obtained.oas
*.obtained.gds
*.obtained.gds.gz
*.obtained.yml
*.obtained.yaml
6 changes: 5 additions & 1 deletion .gitmodules
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
[submodule "tests/gdsfactory-yaml-pics"]
path = tests/gdsfactory-yaml-pics
url = https://github.com/gdsfactory/gdsfactory.git
url = git@github.com:/gdsfactory/gdsfactory.git
branch = main
[submodule "tests/test_data"]
path = tests/test_data
url = git@github.com:gdsfactory/kfactory-test-data.git
branch = main
45 changes: 33 additions & 12 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,10 @@ repos:
- id: check-merge-conflict
- id: check-symlinks
- id: check-yaml
args: []
# mkdocs.yml uses Material's `!!python/name:` tag for the
# pymdownx.emoji index/generator; pyyaml's safe loader can't
# resolve that, so the safe-loader check would fail.
args: ["--unsafe"]
- id: debug-statements
- id: end-of-file-fixer
exclude: 'changelog\.d/.*|CHANGLEOG\.md'
Expand All @@ -21,45 +24,63 @@ repos:
exclude: 'changelog\.d/.*|CHANGELOG\.md'
- repo: https://github.com/astral-sh/ruff-pre-commit
# Ruff version.
rev: v0.14.13
rev: v0.15.17
hooks:
# Run the linter.
- id: ruff
- id: ruff-check
args: [ --fix ]
# Run the formatter.
- id: ruff-format
- repo: https://github.com/tox-dev/pyproject-fmt
rev: v2.24.0
hooks:
- id: pyproject-fmt
- repo: https://github.com/kynan/nbstripout
rev: 0.9.0
rev: 0.9.1
hooks:
- id: nbstripout
files: .ipynb

- repo: https://github.com/codespell-project/codespell
rev: v2.4.1
rev: v2.4.2
hooks:
- id: codespell
additional_dependencies:
- tomli
- repo: https://github.com/PyCQA/bandit
rev: 1.9.3
rev: 1.9.4
hooks:
- id: bandit
args: [--exit-zero]
# ignore all tests, not just tests data
exclude: ^tests/
- repo: https://github.com/pre-commit/mirrors-mypy
rev: "v1.19.1" # Use the sha / tag you want to point at
- repo: local
hooks:
- id: mypy
args: [--ignore-missing-imports, --strict, --config-file=pyproject.toml]
- id: ty
name: ty check
entry: uvx --with-editable .[dev] ty check .
language: python
additional_dependencies:
- uv
- aenum
- pydantic
- pydantic-extra-types
- numpy
- pytest
- "klayout>=0.30"
- pytest-regressions
- "klayout>=0.30.8"
- "kfnetlist>=0.2.0"
- types-cachetools
- loguru
- pydantic-settings
- typer
- types-PyYAML
- scipy
exclude: ^docs/|^tests/
- "ruamel.yaml"
- ruamel.yaml.string
- toolz
- rapidfuzz
- rectangle-packer
- semver
- pygit2
pass_filenames: false
16 changes: 0 additions & 16 deletions .pre-commit-hooks.yaml

This file was deleted.

Loading
Loading