Skip to content

Test installation of every catalog extension on schedule - #935

Draft
ehennestad wants to merge 1 commit into
install-extension-dependenciesfrom
test-extension-installation
Draft

ehennestad wants to merge 1 commit into
install-extension-dependenciesfrom
test-extension-installation

Conversation

@ehennestad

@ehennestad ehennestad commented Oct 4, 2026 •

Copy link
Copy Markdown
Collaborator

Motivation

Problem — When an extension in the catalog stops installing in MatNWB, the maintainers find out only when a user reports it. Before #931, #932 and #933, three of the 30 catalog extensions (ndx-odor-metadata, ndx-microscopy and ndx-franklab-novela) failed to install, for three unrelated reasons, and nothing in CI showed it. The scheduled update_extension_list workflow keeps the list of extension names up to date, but never installs one, and the test suite installs only ndx-miniscope and ndx-photostim.

Solution — The workflow now also installs the latest release of every catalog extension on its schedule. The job summary lists each extension's versions and installation result, and the job fails when an extension does not install.

What changed

  • A new job in update_extension_list.yml, test_extension_installation, runs on the same schedule and on manual dispatch.
  • Each extension is installed in its own folder with the core schema, so extensions that require different versions of the same extension do not affect each other.
  • The job summary has one row per extension: the version in the catalog, the latest release and number of releases on PyPI, and Installed or the error message.
  • The job fails when any extension fails to install, and the error names the extensions.
  • The job is separate from the list update, so a failing extension does not stop the list from being updated.
  • tools/maintenance/matnwb_testExtensionInstallation runs the same check locally.

Examples

The report

Running the check on this branch, which does not include the fix in #931, gives this summary (abridged) and fails because of ndx-odor-metadata:

addpath(genpath("tools"))
matnwb_testExtensionInstallation()
## Extension installation

29 of 30 extensions installed.

| Extension | Catalog version | Latest release | Releases on PyPI | Installation |
|---|---|---|---|---|
| ndx-miniscope | 0.2.2 | 0.5.1 | 7 | Installed |
| ndx-events | 0.2.0 | 0.4.0 | 4 | Installed |
| ndx-odor-metadata | 0.1.1 | 0.1.1 | 2 | Failed: Not implemented. If you see this error, please report |
| ndx-franklab-novela | 0.1.0 | 0.2.4 | 9 | Installed |
| ndx-microscopy | 0.2.1 | 0.3.0 | 4 | Installed |
...

Error using matnwb_testExtensionInstallation
1 of 30 extensions failed to install: ndx-odor-metadata.

How to test

Run the snippet above from the MatNWB root folder. To run the job on GitHub, dispatch the workflow from this branch; note that the dispatch also runs the existing update_extension_list job, which pushes an updated nwbInstallExtension.m to main when the catalog has changed.

Checklist

  • Have you ensured the PR description clearly describes the problem and solutions?
  • Have you checked to ensure that there aren't other open or previously closed Pull Requests for the same change?
  • If this PR fixes an issue, is the first line of the PR description fix #XX where XX is the issue number?

🤖 Generated with Claude Code

@ehennestad
ehennestad added this pull request to stack #934 October 4, 2026 16:59
@ehennestad ehennestad changed the title ci(extensions): test installation of every catalog extension on schedule Test installation of every catalog extension on schedule Oct 4, 2026
The update_extension_list workflow gets a second job that installs the
latest release of every extension in the catalog, each in its own
folder with the core schema. The job summary lists, per extension, the
catalog version, the latest release and the number of releases on
PyPI, and the installation result. The job fails when an extension
does not install. It runs separately from the list update, so a failing
extension does not block the update.

tools/maintenance/matnwb_testExtensionInstallation runs the same check
locally.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@ehennestad
ehennestad force-pushed the test-extension-installation branch from ff0cc30 to b9bd3ce Compare October 6, 2026 18:10

This branch has not been deployed

No deployments
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.

1 participant