Repository navigation
Conversation
Deprecated Redpanda Connect components were offered in every picker and in YAML autocomplete like any other, so a new pipeline could start on a component that is on its way out, and a pipeline already using one gave no hint that it should move off it. Pickers, search and YAML autocomplete now leave deprecated components out. Searching a hidden component's exact name explains the miss and leads with its replacement. Where one is in use, the canvas card, the inspector, the issues panel, the YAML lint panel and an editor marker say it is deprecated, name the replacement and link its docs. Existing configs load, validate and save as before; the warnings are their own channel, so they never count as lint problems. The replacement comes from the schema's own deprecation paragraph (a component xref, or "renamed to"), checked against the served catalog. Schemas before 4.114 flag these components without naming one, so a small map of the replacements upstream names covers older dataplanes. Autocomplete uses doNotSuggest rather than deprecationMessage: every component is an anyOf branch, and a branch with a warning loses the match to the problem-free ones, which drops the warning along with the component's hover and field completion. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
🚨 Registry drift detectedApp:
Components needing attention
Refresh command: bunx shadcn@latest add @redpanda/alert @redpanda/alert-dialog @redpanda/badge @redpanda/badge-group @redpanda/button @redpanda/command @redpanda/count-dot @redpanda/dialog @redpanda/dropdown-menu @redpanda/input @redpanda/kbd @redpanda/label @redpanda/resizable @redpanda/separator @redpanda/skeleton @redpanda/spinner @redpanda/tabs @redpanda/tooltip @redpanda/typography --overwriteGenerated by lookout audit-changes. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What and why
Fixes UX-1566.
Deprecated Redpanda Connect components showed up in every picker and in YAML autocomplete, so new work could start on something that's going away. Pipelines that already used one got no signal to move off it. The live 4.116 schema deprecates eight: the
kafka,kafka_franzandredpanda_commoninputs and outputs,pg_streamand thejiraprocessor.kafka_franzwas one of the picker's own default suggestions.Hidden from selection
kafka_franz) explains the miss ("kafka_franz is deprecated. Use the redpanda input instead.") and puts the replacement first, already selected.doNotSuggest.Flagged where in use
Deprecations never count as lint problems. They don't add a red ring or change the problem count, and they never block a save.
Design notes
Use the xref:components:inputs/redpanda.adoc[…] instead) or a rename (renamed to \postgres_cdc``). It must exist in the served catalog and not be deprecated itself. With no replacement, the message says the component may be removed, and the link goes to its own docs page.KNOWN_REPLACEMENTSinutils/deprecation.tsholds the replacements upstream names from 4.114 on. The schema text wins when present. Without the map, most of today's fleet, including localdev, would only get "may be removed". It can go once dataplanes are all on 4.114 or later. Areplaced_byfield on theComponentSpecproto would be the proper long-term source.doNotSuggest, notdeprecationMessage: every component is ananyOfbranch. The YAML validator drops a branch that has any problem in favour of problem-free ones, so a deprecation warning would disappear, and so would that component's hover and field completion. Warnings come from our own Monaco markers instead (use-deprecation-markers.ts), recomputed from the editor's text so the uncontrolled legacy editor works too.YamlEditor'sonEditorMountnow also passesmonaco, as an optional second argument.Examples
Checked by hand in local Cloud UI, with this tree hot-reloaded against local BYOC (served schema is older than 4.114, so the fallback map was in play). Nothing was saved:
kafka_franzshows the hint withredpandapinned and selected.kafka_franzinput andredpanda_commonoutput get amber squiggles and ruler marks. Server lint still says "No issues found", and the Deprecated components list sits below it. Autocomplete underinput:offersredpandaandredpanda_migratorbut notredpanda_common, and nothing forkaf.Testing
utils/deprecation.test.ts(new): replacement via xref, non-component xrefs skipped, rename, other-type replacement, fallback for older schemas, unserved or deprecated replacements dropped, message wording, and key ranges for top-level, labelled, nested and mid-edit YAML.connect-command-palette.test.tsx: hidden from browse and search, exact-name hint with the replacement pinned.pipeline-problems-panel.test.tsx: deprecation-only chip (warning tone, no heading) and mixed issues (heading, total count).pipeline-flow-canvas.render.test.tsx: badge and tooltip on a real canvas.visual-editor-panel.test.tsx: badge data, problems-list selection opening the banner and docs link, an edit to a deprecated component still committing, and nothing raised without one.pipeline/index.test.tsx: the YAML lane lists the deprecation and sets a warning marker. The editor mock now matches the real mount contract (monaco,getValue,onDidChangeModel).yaml-editor-schema.test.ts:doNotSuggestset and the field schema kept.bun run lint,bun run type:checkandbun run test(unit, integration, federation) pass. There are no new lint warnings on the touched files compared with master.🤖 Generated with Claude Code