Skip to content

Follow the plugin template: acceptance checks, shared workflows, AGENTS.md - #15

Merged
seb5g merged 5 commits into
mainfrom
feature/plugin_acceptance_tests
Nov 4, 2026
Merged

seb5g merged 5 commits into
mainfrom
feature/plugin_acceptance_tests

Conversation

@seb5g

@seb5g seb5g commented Oct 6, 2026 •

Copy link
Copy Markdown
Contributor

Brings this plugin in line with pymodaq_plugins_template (branch 5.3.x). This replaces the first version of this pull request, which only changed the test file.

  • tests/test_plugin_package_structure.py: the generic copy of the template tests is replaced by the stub using the plugin acceptance checks of PyMoDAQ (pymodaq.utils.plugin_testing, PyMoDAQ >= 5.3.2, see the documentation). They check the naming of the modules and classes, the base class and mandatory methods, _axis_names / _controller_units / _epsilons, the settings tree, the entry points and static rules on the sources. Unfinished work (TODO comments) is listed, not failing. A module that cannot be imported because a vendor driver is missing on the CI runner is skipped, not failed. The module is skipped when PyMoDAQ is older than 5.3.2.
  • .github/workflows: the copies of the workflows (Test.yml, Testbase.yml, updater.yml, old python-publish.yml) are replaced by three small files calling the reusable workflows hosted in pymodaq_plugins_template: tests.yml (one fast configuration), compatibility.yml (Python 3.10 to 3.13, PyQt5/PyQt6/PySide6, Linux and Windows) and python-publish.yml (same release trigger and the same PYPI_USERNAME / PYPI_PASSWORD secrets as before). Nothing to update here anymore when GitHub actions or Python versions change.
  • AGENTS.md and CLAUDE.md: guidance for AI coding assistants working on the plugin (the PyMoDAQ plugin contract, units, is_master, tests).

The pymodaq requirement of pyproject.toml is not changed. You can also run check_plugin (PyMoDAQ >= 5.3.1) in the folder of the plugin to get the full report, with the hints to fix each finding.

🤖 Generated with Claude Code

https://claude.ai/code/session_01Tdiso1u1ZhikSutj2Qs5Cg


Generated by Claude Code

seb5g and others added 2 commits October 7, 2026 00:39
Replace the copy of the generic tests of the plugin template by the stub using
pymodaq_utils.plugin_testing (see pymodaq_plugins_template PR 43). The module is skipped with
older versions of PyMoDAQ.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…_testing, shared workflows, AGENTS.md

Remove the copies of the workflows (Test.yml, Testbase.yml, updater.yml) and call the reusable ones of
pymodaq_plugins_template; add AGENTS.md and CLAUDE.md for AI coding assistants.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Tdiso1u1ZhikSutj2Qs5Cg
@seb5g seb5g changed the title Use the plugin acceptance checks provided by PyMoDAQ 5.3.1 Follow the plugin template: acceptance checks, shared workflows, AGENTS.md Oct 11, 2026
pymodaq>=5.3.2, pymodaq_utils>=5.3.1, pymodaq_gui>=5.3.0, pymodaq_data>=5.3.0,
so that the acceptance tests and the rest of this change are met at install time.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Tdiso1u1ZhikSutj2Qs5Cg
main changed the copies of the workflows (libcap-dev for python-prctl, #17), which this branch replaces by the reusable ones of the plugin template: the old files are dropped.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Tdiso1u1ZhikSutj2Qs5Cg
python-prctl, needed by picamera2, compiles against the libcap headers: the CI runners (Linux x86) do not have them
and the reusable workflows of the template do not install them. The PiCamera viewer only runs on aarch64 and armv7l
anyway (supported_architectures, #16).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Tdiso1u1ZhikSutj2Qs5Cg

seb5g commented Nov 4, 2026

Copy link
Copy Markdown
Contributor Author

main now contains #17 (libcap-dev in the old workflows), which conflicted with this PR because it deletes those workflows. I merged main into the branch and kept the reusable workflows. The reusable workflows of the template do not install libcap-dev, so picamera2 (through python-prctl) would fail to build again on the Linux x86 runners: pyproject.toml now installs picamera2 only when platform_machine is aarch64 or armv7l, the architectures the PiCamera viewer supports (#16). On other systems the plugin stays installable and only the PiCamera viewer is unavailable, as before. Not tested on a Raspberry Pi.


Generated by Claude Code

@seb5g
seb5g merged commit 5f980df into main Nov 4, 2026
5 of 7 checks passed
@seb5g
seb5g deleted the feature/plugin_acceptance_tests branch November 4, 2026 16:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants