Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
67 commits
Select commit Hold shift + click to select a range
adbf1e2
ci: add workflows
jorgepiloto Jul 7, 2025
d541449
fix(ci): syntax
jorgepiloto Jul 7, 2025
624afc3
fix(ci): add labels and labeler strategy
jorgepiloto Jul 8, 2025
f268715
fix(changelog): add template
jorgepiloto Jul 8, 2025
5cdca51
fix(changelog): write permissions
jorgepiloto Jul 8, 2025
f68b82c
fix(pyproject): towncrier config
jorgepiloto Jul 8, 2025
9e07cbe
chore: adding changelog file 5.maintenance.md [dependabot-skip]
pyansys-ci-bot Jul 8, 2025
5b97136
fix(ci): enable private PyPI
jorgepiloto Jul 9, 2025
26ec641
fix(ci): wheelhosue
jorgepiloto Jul 9, 2025
1fb6559
fix: code-style
jorgepiloto Jul 15, 2025
8a6cb7a
doc: fix style
jorgepiloto Jul 15, 2025
fc2fdd9
doc: fix style
jorgepiloto Jul 15, 2025
3d62e67
doc: fix style
jorgepiloto Jul 15, 2025
b683a08
doc: fix style
jorgepiloto Jul 15, 2025
63797f6
doc: fix style
jorgepiloto Jul 15, 2025
37bd2c8
fix: vale.ini file
jorgepiloto Jul 15, 2025
63fe667
doc: fix style
jorgepiloto Jul 15, 2025
04a54bb
ci: fix syntax
jorgepiloto Jul 15, 2025
4415159
ci: run tests
jorgepiloto Jul 18, 2025
ab18fb8
fix: classifiers
jorgepiloto Jul 18, 2025
b1da482
Remove solve container from test pipeline
lukequeenan-ansys Jul 28, 2025
770b897
Merge remote-tracking branch 'origin/main' into ci/foundations
lukequeenan-ansys Jul 30, 2025
bcae06e
feat: update CI workflow to include ansys-api-lumerical checkout and …
lukequeenan-ansys Jul 31, 2025
342ed5a
fix: update checkout token for ansys-api-lumerical to use PYANSYS_CI_…
lukequeenan-ansys Jul 31, 2025
cde270c
chore: remove ansys-api-lumerical subproject
lukequeenan-ansys Jul 31, 2025
a070f58
feat: add step to install ansys-api-lumerical in editable mode
lukequeenan-ansys Jul 31, 2025
7889c03
fix: update MAIN_PYTHON_VERSION to 3.13 in CI workflow
lukequeenan-ansys Jul 31, 2025
01587e9
fix: restrict Python version matrix to 3.13 in CI workflow
lukequeenan-ansys Jul 31, 2025
300f19d
refactor: update CI workflow to remove wheelhouse job and streamline …
lukequeenan-ansys Jul 31, 2025
3571ca1
fix: update Docker image reference and streamline ansys-api-lumerical…
lukequeenan-ansys Jul 31, 2025
28e9219
Merge remote-tracking branch 'origin/main' into ci/foundations
lukequeenan-ansys Aug 1, 2025
49bb469
add wheelhouse back
lukequeenan-ansys Aug 1, 2025
f0525a5
enable Python caching in CI workflow for docs
lukequeenan-ansys Aug 1, 2025
c93da57
update doc build step to create requirements file instead of installi…
lukequeenan-ansys Aug 1, 2025
69b064d
update library name and adjust requirements file path in CI workflow
lukequeenan-ansys Aug 1, 2025
1d19144
update doc build step to use optional dependencies instead of require…
lukequeenan-ansys Aug 1, 2025
f03dbba
just trying random stuff now
lukequeenan-ansys Aug 1, 2025
14ec803
the most important commits don't have good messages
lukequeenan-ansys Aug 1, 2025
8462bb3
fix: update license environment variable and improve docker exec command
lukequeenan-ansys Aug 1, 2025
845c3cf
fix: update optional dependencies path and improve test job name
lukequeenan-ansys Aug 1, 2025
c9389d8
fix: update doc build step to use requirements file for optional depe…
lukequeenan-ansys Aug 2, 2025
674c11b
fix: remove optional dependencies name from doc build step
lukequeenan-ansys Aug 2, 2025
cb9a0b4
trying copilot suggestions
lukequeenan-ansys Aug 2, 2025
08f783f
fix: remove unnecessary checkout and installation steps for ansys-api…
lukequeenan-ansys Sep 19, 2025
a01d2e2
Merge remote-tracking branch 'origin/main' into ci/foundations
lukequeenan-ansys Sep 19, 2025
ad96e45
chore: adding changelog file 5.maintenance.md [dependabot-skip]
pyansys-ci-bot Sep 19, 2025
3606e00
fix: remove checkout and installation steps for ansys-api-lumerical i…
lukequeenan-ansys Sep 19, 2025
c4b4e54
fix: remove checkout and installation steps for ansys-api-lumerical i…
lukequeenan-ansys Sep 19, 2025
815f401
fix: remove unnecessary checkout and setup steps in doc build job
lukequeenan-ansys Sep 19, 2025
ac9f985
fix(ci): library name
jorgepiloto Sep 19, 2025
cf4ff84
fix: update warning message for missing Lumerical installation
lukequeenan-ansys Sep 19, 2025
dc7cc95
fix(doc): remove include of README
jorgepiloto Sep 19, 2025
8356702
doc(autoapi): setup
jorgepiloto Sep 19, 2025
f97cbbf
fix(style): code
jorgepiloto Sep 19, 2025
738fff6
fix(doc): force autoapi content
jorgepiloto Sep 19, 2025
f1325f9
fix(doc): api xrefs
jorgepiloto Sep 19, 2025
432ca27
Revert "fix(doc): api xrefs"
lukequeenan-ansys Sep 23, 2025
150879b
Revert "fix(doc): force autoapi content"
lukequeenan-ansys Sep 23, 2025
44825ad
Reverted extension to sphinx.ext.autodoc and sphinx.ext.autosummary, …
adan-wang-2 Sep 23, 2025
d4b5dfc
Added workaround for LaTeX build
adan-wang-2 Sep 24, 2025
b4c67eb
Revert "Added workaround for LaTeX build"
adan-wang-2 Sep 24, 2025
e46d658
Fix new line issues from pre-commit.
adan-wang-2 Sep 24, 2025
0a0bef5
test: supress warning
Revathyvenugopal162 Sep 24, 2025
2bf5b88
test:Deleted Sphinx fail on warning.
adan-wang-2 Sep 24, 2025
b7cdfdc
test: Added linkcheck ignore for Zendesk pages - Zendesk Help Center …
adan-wang-2 Sep 24, 2025
6031985
Pre-commit fix
adan-wang-2 Sep 24, 2025
02078f6
fox: add warning supress only to pdf
Revathyvenugopal162 Sep 25, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
71 changes: 71 additions & 0 deletions .github/labeler.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
# This file is required by the the action 'https://github.com/actions/labeler'
# and used in the '.github/workflows/ci_cd_pr.yml' workflow

# -- Labels based on PR title ------------------------------------------------
'fix':
- head-branch: ['fix']

'enhancement':
- head-branch: ['feat']

# -- Documentation labels ----------------------------------------------------
'docs':
- all:
- changed-files:
- any-glob-to-any-file: ['doc/source/**/*.rst']
- all-globs-to-all-files: ['!doc/source/examples.rst', '!doc/source/api/**/*.rst', '!doc/styles/**', '!doc/.vale.ini']

'docs:api':
- any:
- changed-files:
- any-glob-to-any-file: ['doc/source/api/**/*.rst']

'docs:examples':
- any:
- changed-files:
- any-glob-to-any-file: ['examples/**/*.py', 'doc/source/examples.rst']

## -- Other labels ------------------------------------------------------------
'style:code':
- any:
- changed-files:
- any-glob-to-any-file: ['.pre-commit-config.yaml', 'doc/.vale.ini']

'docker':
- any:
- changed-files:
- any-glob-to-any-file: ['docker/**']

'ci':
- any:
- changed-files:
- any-glob-to-any-file: ['.github/workflows/**']

'tests':
- any:
- changed-files:
- any-glob-to-any-file: ['tests/**']

# HACK: the following labels are declared with the only purpose of avoiding the
# GitHub labeler bot to remove those. This is a known issue reported in the
# official action/labeler repo https://github.com/actions/labeler/issues/763

'ci:skip':
- all:
- changed-files:
- all-globs-to-all-files: ['THIS-NEVER-MATCHES-A-FILE']

'docs:skip':
- all:
- changed-files:
- all-globs-to-all-files: ['THIS-NEVER-MATCHES-A-FILE']

'tests:skip':
- all:
- changed-files:
- all-globs-to-all-files: ['THIS-NEVER-MATCHES-A-FILE']

'blocked':
- all:
- changed-files:
- all-globs-to-all-files: ['THIS-NEVER-MATCHES-A-FILE']
116 changes: 116 additions & 0 deletions .github/labels.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
# The labels declared in this file are the ones available
# https://github.com/ansys-internal/pylumerical/labels

# -- Defects, glitches, and vulnerabilities labels ---------------------------

- name: 'bug'
description: Defects or glitches reported by users or developers
color: d42a34

- name: 'fix'
description: Pull requests related to resolving problems or errors
color: d42a34

- name: 'vulnerability'
description: Pull requests related to resolving problems or errors
color: d42a34

# -- Style labels ------------------------------------------------------------

- name: 'style'
description: Improvements related to general project style
color: dcbeff

- name: 'style:code'
description: Improvements related to code style
color: dcbeff

- name: 'style:docs'
description: Improvements related to doc style
color: dcbeff

- name: 'style:branch-name'
description: Verifies branch name is compliant with PyAnsys guidelines
color: dcbeff

- name: 'style:skip'
description: Skip style runs in CI/CD
color: dcbeff

# -- Tests labels ------------------------------------------------------------

- name: 'tests'
description: Related with improvements of the test suite
color: ffd8b1

- name: 'tests:skip'
description: Skip tests runs in CI/CD
color: ffd8b1

# -- Documentation labels ----------------------------------------------------

- name: 'docs'
description: Issues related to documentation
color: 0677ba

- name: 'docs:api'
description: Related to API documentation
color: 0677ba

- name: 'docs:examples'
description: Related to documentation examples
color: 0677ba

- name: 'docs:skip'
description: Skip documentation runs in CI/CD
color: 0677ba

# -- Dependencies labels -----------------------------------------------------

- name: 'dependencies'
description: Related with project dependencies
color: fabed4

- name: 'dependencies:pyproject'
description: Related with project file dependencies
color: fabed4

- name: 'dependencies:ci'
description: Related with pipelines dependencies
color: fabed4

# -- CI/CD labels ------------------------------------------------------------

- name: 'ci'
description: Pipelines maintenance related
color: a9a9a9

- name: 'ci:skip'
description: Skip CI/CD runs
color: a9a9a9

# -- Other labels ------------------------------------------------------------

- name: 'release'
description: Anything related to an incoming release
color: ffffff

- name: 'good first issue'
description: Issues suitable for newcomers or those with less experience
color: 62ca50

- name: 'enhancement'
description: General improvements to existing features
color: ffd827

- name: 'maintenance'
description: Generic maintenance related
color: f78c37

- name: 'docker'
description: Docker maintenance related
color: 000075

- name: 'blocked'
description: Cannot be completed until other tasks are resolved
color: 000000
160 changes: 160 additions & 0 deletions .github/workflows/ci_cd_pr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,160 @@
name: pull-request
on:
pull_request:
types: [opened, reopened, synchronize, edited, labeled, closed]

env:
MAIN_PYTHON_VERSION: '3.13'
LIBRARY_NAME: 'ansys-lumerical-core'
DOCKER_IMAGE_LUMERICAL_UNIFIED: 'ghcr.io/ansys-internal/lumerical-unified:latest'
DOCKER_CONTAINER_LUMERICAL_UNIFIED_NAME: 'lumerical-unified'
PIP_EXTRA_INDEX_URL: 'https://${{ secrets.PYANSYS_PYPI_PRIVATE_PAT }}@pkgs.dev.azure.com/pyansys/_packaging/pyansys/pypi/simple/'

permissions:
contents: read
pull-requests: read

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:

labeler:
name: "Labels"
permissions:
contents: read
pull-requests: write
runs-on: ubuntu-latest
steps:

- name: "Checkout project"
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false

- name: "Sync labels"
uses: micnncim/action-label-syncer@3abd5ab72fda571e69fffd97bd4e0033dd5f495c # v1.3.0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: "Label pull-request"
# HACK: skip if contributor does not have write permissions (forks)
if: github.event.pull_request.head.repo.full_name == github.repository
uses: actions/labeler@8558fd74291d67161a8a78ce36a881fa63b766a9 # v5.0.0
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}

changelog-fragment:
name: "Create changelog fragment"
needs: labeler
permissions:
contents: write
pull-requests: write
runs-on: ubuntu-latest
steps:
- uses: ansys/actions/doc-changelog@v10
with:
token: ${{ secrets.PYANSYS_CI_BOT_TOKEN }}
use-conventional-commits: true
use-default-towncrier-config: true
bot-user: ${{ secrets.PYANSYS_CI_BOT_USERNAME }}
bot-email: ${{ secrets.PYANSYS_CI_BOT_EMAIL }}

code-style:
name: "Code style"
runs-on: ubuntu-latest
needs: changelog-fragment
steps:
- name: "Run code style checks"
uses: ansys/actions/code-style@v10
with:
python-version: ${{ env.MAIN_PYTHON_VERSION }}
use-python-cache: false

doc-style:
name: "Doc style"
runs-on: ubuntu-latest
needs: changelog-fragment
steps:
- uses: ansys/actions/doc-style@v10
with:
token: ${{ secrets.GITHUB_TOKEN }}

doc-build:
name: "Doc build"
runs-on: ubuntu-latest
needs: doc-style
steps:
- uses: ansys/actions/doc-build@v10
with:
skip-install: true
python-version: ${{ env.MAIN_PYTHON_VERSION }}
use-python-cache: false
needs-quarto: true

wheelhouse:
name: "Wheelhouse / ${{ matrix.os }} / ${{ matrix.python }}"
runs-on: ${{ matrix.os }}
needs: code-style
permissions:
id-token: write
contents: write
strategy:
fail-fast: false
matrix:
os: ['ubuntu-latest', 'windows-latest']
python: ['3.10', '3.11', '3.12', '3.13']
steps:
- uses: ansys/actions/build-wheelhouse@v10
with:
library-name: ${{ env.LIBRARY_NAME }}
operating-system: ${{ matrix.os }}
python-version: ${{ matrix.python }}

tests:
name: "Test Python 3.13 with Lumerical Unified Linux Container"
runs-on: ubuntu-latest
needs: wheelhouse
permissions:
id-token: write
contents: write
steps:

- name: "Checkout PyLumerical"
uses: actions/checkout@v4

- name: "Login to GitHub container registry"
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3.4.0
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.PYANSYS_CI_BOT_TOKEN }}

- name: "Pull Lumerical Unified Container"
run: |
docker pull ${{ env.DOCKER_IMAGE_LUMERICAL_UNIFIED }}

- name: "Run Lumerical Unified Container"
run: |
docker run \
--detach -it \
--network="host" \
--name ${{ env.DOCKER_CONTAINER_LUMERICAL_UNIFIED_NAME }} \
--env ANSYSLMD_LICENSE_FILE=1055@${{ secrets.LICENSE_SERVER }} \
--volume ${PWD}:/home/ansys/pylumerical \
${{ env.DOCKER_IMAGE_LUMERICAL_UNIFIED }}

- name: "Install project"
run: |
docker exec \
--workdir /home/ansys/pylumerical \
${{ env.DOCKER_CONTAINER_LUMERICAL_UNIFIED_NAME }} /bin/bash --login -c \
"python -m pip install -e .[tests] && pytest tests"

- name: "Stop lumerical services"
if: always()
run: |
docker stop ${{ env.DOCKER_CONTAINER_LUMERICAL_UNIFIED_NAME }}
docker logs ${{ env.DOCKER_CONTAINER_LUMERICAL_UNIFIED_NAME }}
docker rm ${{ env.DOCKER_CONTAINER_LUMERICAL_UNIFIED_NAME }}
2 changes: 1 addition & 1 deletion doc/.vale.ini
Original file line number Diff line number Diff line change
Expand Up @@ -34,4 +34,4 @@ Google.WordList = NO

# Ignore specific tokens for class references and such

TokenIgnores = (:(func|class|meth|attr|py):`(?:.|\n)*?`)|(<.*>)|(\|[A-Za-z0-9_]+\|)
TokenIgnores = (:(func|class|meth|attr|py):`(?:.|\n)*?`)|(<.*>)|(\|[A-Za-z0-9_]+\|)
2 changes: 1 addition & 1 deletion doc/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,6 @@ clean:

# Customized pdf for svg format images
pdf:
@$(SPHINXBUILD) -M latex "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
@$(SPHINXBUILD) -M latex "$(SOURCEDIR)" "$(BUILDDIR)" -j auto --color --keep-going $(O)
cd $(BUILDDIR)/latex && latexmk -r latexmkrc -pdf *.tex -interaction=nonstopmode || true
(test -f $(BUILDDIR)/latex/*.pdf && echo pdf exists) || exit 1
1 change: 1 addition & 0 deletions doc/source/api/interface_class.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ Instances of these objects each represent an interactive session with a Lumerica

.. autosummary::
:toctree: _autosummary
:recursive:

ansys.lumerical.core.FDTD
ansys.lumerical.core.MODE
Expand Down
1 change: 1 addition & 0 deletions doc/source/changelog/5.maintenance.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Add workflows
22 changes: 22 additions & 0 deletions doc/source/changelog/template
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{% if sections[""] %}

.. tab-set::

{%+ for category, val in definitions.items() if category in sections[""] %}

.. tab-item:: {{ definitions[category]['name'] }}

.. list-table::
:header-rows: 0
:widths: auto

{% for text, values in sections[""][category].items() %}
* - {{ text }}
- {{ values|join(', ') }}

{% endfor %}
{% endfor %}

{% else %}
No significant changes.
{% endif %}
Loading
Loading