<#10430 fix: `meltano select` requires a tap that ...
# meltano-repo-activity
g
#10430 fix: `meltano select` requires a tap that takes a catalog, and warns when the `catalog` extra overrides rules Pull request opened by ashokram-si Description Two changes from #6717. 1. Selection needs an extractor that takes a catalog. Select patterns only reach a tap through the catalog Meltano passes with
--catalog
or
--properties
. An extractor that advertises neither capability never gets it, so
meltano select
used to save patterns and list "selected" properties that had no effect.
SelectService.ensure_selection_supported()
now raises
SelectionNotSupportedError
(a
MeltanoError
) for such an extractor. The error says which capability is missing and where to add it. Adding a pattern and `--list`/`--json` check it.
--rm
and
--clear
still work, so a project that already has patterns can be cleaned up. 2. The
catalog
extra overrides the rule extras, and now says so.
When
catalog
is set,
apply_catalog_rules
skips the
select
,
metadata
and
schema
rules (only
select_filter
applies). This used to happen silently.
SingerTap.catalog_override_warning()
names the rule extras that are set to anything other than their default (defaults read from
EXTRA_SETTINGS
). The warning is logged: • by
apply_catalog_rules
, so every `el`/`run`/`invoke` that ignores them says so; • by
SelectService.update
when a pattern is added, since that pattern won't be used. It stays a warning, as the issue asks: a full catalog override is a legitimate setup.
schema
is included because the same branch skips it. Docs: the
select
caution in the CLI reference, and the
catalog
extra in plugin concepts. Tests: • `tests/meltano/core/test_select_service.py`: • `test_select_service_needs_an_input_catalog`: adding and listing fail without the capability; removing and clearing work;
properties
alone is enough. • `test_select_service_warns_when_the_catalog_extra_overrides_patterns`: one warning when adding with a
catalog
extra, none when removing. • `tests/meltano/core/plugin/singer/test_tap.py`:
test_apply_catalog_rules_warns_when_the_catalog_extra_overrides_rules
covers
select
and
metadata
, then
schema
alone, then all defaults (no warning). • These fail on
main
(the error and warning don't exist there). •
nox -s pytest -p 3.14
(SQLite): 1588 passed. One failure,
tests/meltano/core/tracking/test_exception.py::test_complex_exception_context
(a shortened path in an exception context), fails on
main
on this machine too;
main
has 1583 passing, the difference being the 5 new tests.
nox -s pre-commit
on the changed files and
nox -s typing
pass. Checklist • I have read the contribution guide Was generative AI tooling used to co-author this PR? • Yes (please specify the tool below) Generated-by: Claude Code following the agentic coding guidelines Related Issues • Closes #6717 Summary by Sourcery Ensure selection patterns only operate on extractors that accept catalogs and make catalog rule overrides visible. Bug Fixes: • Prevent
meltano select
from adding or listing patterns for extractors that cannot receive a catalog, while preserving removal and clearing operations. • Warn when a configured
catalog
extra overrides selection, metadata, or schema rules. Enhancements: • Provide actionable errors for unsupported selection capabilities and identify overridden catalog rule extras in warnings. Documentation: • Document catalog rule overrides and selection limitations in the plugin concepts and CLI reference. Tests: • Add coverage for unsupported selection capabilities and catalog override warnings. meltano/meltano