Skip to content

Commit 303f0bb

Browse files
Add GH actions and metadata updates
Signed-off-by: Lucas Heitzmann Gabrielli <[email protected]>
1 parent a60f480 commit 303f0bb

File tree

8 files changed

+104
-23
lines changed

8 files changed

+104
-23
lines changed

.github/workflows/build-packages.yml

+39
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
name: Package Builder
2+
3+
on:
4+
push:
5+
tags:
6+
- 'v*.*'
7+
workflow_dispatch:
8+
9+
jobs:
10+
build:
11+
name: Build wheels on manylinux2014
12+
runs-on: ubuntu-latest
13+
steps:
14+
- uses: actions/checkout@v4
15+
- uses: actions/setup-python@v5
16+
- name: Install pypa/build
17+
run: python3 -m pip install build --user
18+
- name: Build a binary wheel and a source tarball
19+
run: python3 -m build
20+
- uses: actions/upload-artifact@v4
21+
with:
22+
path: ./dist/*
23+
name: artifact
24+
25+
upload_pypi:
26+
name: Upload wheel to PyPI
27+
needs: [build]
28+
runs-on: ubuntu-latest
29+
permissions:
30+
id-token: write
31+
steps:
32+
- uses: actions/download-artifact@v4
33+
with:
34+
path: dist
35+
merge-multiple: true
36+
- uses: pypa/[email protected]
37+
with:
38+
skip-existing: true
39+
verbose: true

.github/workflows/run-tests.yml

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
name: Tests Runner
2+
3+
on: [push, pull_request]
4+
5+
jobs:
6+
linux-macos-test:
7+
strategy:
8+
fail-fast: false
9+
matrix:
10+
os: [ubuntu-latest, macos-latest]
11+
python-version: ['3.9', '3.12']
12+
name: Test for ${{ matrix.python-version }} on ${{ matrix.os }}
13+
runs-on: ${{ matrix.os }}
14+
steps:
15+
- uses: actions/checkout@v4
16+
- uses: actions/setup-python@v5
17+
with:
18+
python-version: ${{ matrix.python-version }}
19+
cache: 'pip'
20+
- name: Install Python dependencies
21+
run: |
22+
python -m pip install --upgrade pip
23+
pip install --upgrade setuptools wheel pip-tools
24+
python -m piptools compile --resolver=backtracking --extra=test -o requirements.txt pyproject.toml
25+
pip install -r requirements.txt
26+
- name: Build and install
27+
run: pip install .
28+
- name: Test
29+
run: |
30+
export SIMCLOUD_APIKEY=${{ secrets.SIMCLOUD_APIKEY }}
31+
pytest

CHANGELOG.md

+2-9
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,6 @@
11
# Changelog
22

3-
All notable changes to this project will be documented in this file.
4-
5-
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6-
7-
## Unreleased
3+
## 1.0.0 - 2024-10-17
84

95
### Added
10-
11-
### Changed
12-
13-
### Fixed
6+
- Initial release

MANIFEST.in

-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
11
include CHANGELOG.md
2-
graft luxtelligence_lnoi400_forge/library

README.md

+2-11
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,17 @@
11
# Luxtelligence LNOI400
22

3-
This python module implements the Luxtelligence LNOI400 PDK as components and
4-
technology specification for
3+
This python module implements the [Luxtelligence](https://luxtelligence.ai/)
4+
LNOI400 PDK as components and technology specification for
55
[PhotonForge](https://docs.flexcompute.com/projects/photonforge/)
66

77

88
## Installation
99

10-
### Python interface
11-
1210
Installation via `pip`:
1311

1412
pip install luxtelligence_lnoi400_forge-*-py3-none-any.whl
1513

1614

17-
### PhotonForge Web UI
18-
19-
In the Tidy3D web interface, go to your [*Account
20-
Center*](https://tidy3d.simulation.cloud/account) and upload the token file
21-
(.tok) under *PhotonForge Libraries* to enable this module.
22-
23-
2415
## Usage
2516

2617
The simplest way to use the this PDK in PhotonForge is to set its technology as

extrusion_profile.py

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
import photonforge as pf
2+
import luxtelligence_lnoi400_forge as lxt
3+
from matplotlib import pyplot
4+
5+
pf.config.default_technology = lxt.lnoi400(include_substrate=True, include_top_opening=True)
6+
7+
c = pf.Component("Extrusion Test")
8+
9+
c.add(
10+
"LN_RIDGE",
11+
pf.Rectangle(center=(0, 0), size=(60, 1)),
12+
"LN_SLAB",
13+
pf.Rectangle(center=(-15, 0), size=(30, 8)),
14+
"TL",
15+
pf.Rectangle(center=(0, 5), size=(60, 5)),
16+
pf.Rectangle(center=(0, -5), size=(60, 5)),
17+
"LN_SLAB",
18+
pf.stencil.linear_taper(30, (8, 1)),
19+
"SLAB_NEGATIVE",
20+
pf.Rectangle(center=(15, 0), size=(30, 8)),
21+
)
22+
23+
pf.tidy3d_plot(c, x=25)
24+
pyplot.show()

luxtelligence_lnoi400_forge/utils.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ def place_edge_couplers(
9999
coupler: pf.Component = None,
100100
slab_removal_width: float = 20.0,
101101
straight_length: float = 10.0,
102-
side_spec: typing.Literal[*_sides] = "N",
102+
side_spec: typing.Literal[_sides] = "N",
103103
offset: float = 60.0,
104104
number: int = 1,
105105
pitch: float = 127.0,

pyproject.toml

+5-1
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,15 @@ version = "1.0.0"
44
authors = [{name = "Flexcompute Inc.", email = "[email protected]"}]
55
description = "Luxtelligence LNOI400 PDK implementation for PhotonForge"
66
readme = "README.md"
7-
dependencies = ["photonforge ~= 1.0.0rc1"]
7+
dependencies = ["photonforge ~= 1.0.0"]
88

99
[project.optional-dependencies]
1010
test = ["pytest >= 7.2"]
1111

12+
[project.urls]
13+
homepage = "https://github.com/flexcompute/luxtelligence-lnoi400-forge"
14+
documentation = "https://github.com/flexcompute/luxtelligence-lnoi400-forge"
15+
1216
[tool.setuptools]
1317
packages = ["luxtelligence_lnoi400_forge"]
1418

0 commit comments

Comments
 (0)