Skip to content

[OC-819] Reject nonexistent module names in oc module install - #418

Closed
cvaske wants to merge 1 commit into
masterfrom
cv/OC-819-install-nonexistent-module
Closed

cvaske wants to merge 1 commit into
masterfrom
cv/OC-819-install-nonexistent-module

Conversation

@cvaske

@cvaske cvaske commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

install_modules() resolved requested names via au.search_remote() regex matching but never checked whether every requested name/pattern actually matched something. A typo'd or nonexistent module name was silently dropped: the command printed nothing about it, and exited 0.

  • exceptions.py: add ModuleNotFound, raised with the list of unmatched names/patterns.
  • cravat_admin.py: install_modules() now diffs args.modules against matching_names (and, for --include-private, against the names actually found privately) and raises ModuleNotFound before resolving dependencies or attempting any install if anything is unmatched — consistent with the function's existing fail-fast validation for --version/--include-private conflicts.
  • cravat_admin.py: update_modules()'s per-module retry loop now also catches ModuleNotFound (previously only SystemExit) so one bad module name during a batch update is reported and skipped rather than aborting the whole update.

install_modules() resolved requested names via au.search_remote()
regex matching but never checked whether every requested name/pattern
actually matched something. A typo'd or nonexistent module name was
silently dropped: the command printed nothing about it, and exited 0.

- exceptions.py: add ModuleNotFound, raised with the list of
  unmatched names/patterns.
- cravat_admin.py: install_modules() now diffs args.modules against
  matching_names (and, for --include-private, against the names
  actually found privately) and raises ModuleNotFound before
  resolving dependencies or attempting any install if anything is
  unmatched — consistent with the function's existing fail-fast
  validation for --version/--include-private conflicts.
- cravat_admin.py: update_modules()'s per-module retry loop now also
  catches ModuleNotFound (previously only SystemExit) so one bad
  module name during a batch update is reported and skipped rather
  than aborting the whole update.
@kmoad

kmoad commented Aug 17, 2026

Copy link
Copy Markdown
Collaborator

Duplicate of #417

@kmoad kmoad marked this as a duplicate of #417 Aug 17, 2026
@kmoad kmoad closed this Aug 17, 2026
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