Skip to content

chore(python): deprecate Python plugin framework (Phase 1 of #9092) - #9097

Open
klesh wants to merge 1 commit into
mainfrom
chore/deprecate-python-plugins
Open

chore(python): deprecate Python plugin framework (Phase 1 of #9092)#9097
klesh wants to merge 1 commit into
mainfrom
chore/deprecate-python-plugins

Conversation

@klesh

@klesh klesh commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Summary

Phase 1 (Warning) of the Python plugin deprecation plan in #9092. Adds deprecation warnings across the backend and frontend so users are informed that the Python plugin framework (PyDevLake) will be removed in 3 months, and that they should migrate to Go-based plugins (e.g. azuredevopsazuredevops_go).

This PR does not remove any code. It only surfaces deprecation notices.

Changes

Backend

  • backend/python/README.md — DEPRECATED banner at the top explaining why, the timeline, and migration guidance for new plugins (write Go) and existing azuredevops users (migrate to azuredevops_go).
  • backend/python/plugins/azuredevops/README.md — marks the plugin deprecated, points to azuredevops_go.
  • backend/core/runner/loader.go — emits a one-time WARN log at server startup when remote (Python) plugins are being loaded:
    DEPRECATION WARNING: The Python plugin framework (PyDevLake) is deprecated and will be removed in 3 months. See https://github.com/apache/devlake/issues/9092 ...
    
  • backend/core/plugin/plugin_meta.go — new PluginDeprecation interface (DeprecationMessage() string).
  • backend/server/services/remote/plugin/plugin_impl.goremotePluginImpl implements PluginDeprecation; all remote/Python plugins report a deprecation message.
  • backend/server/api/plugininfo/plugininifo.goGET /plugins now returns a deprecated boolean per plugin so the frontend can detect deprecated plugins.

Frontend (config-ui)

  • config-ui/src/types/plugin.ts — added isDeprecated? and deprecationMessage? to IPluginConfig.
  • config-ui/src/plugins/register/azure/config.tsxAzureConfig (the Python azuredevops plugin) is now flagged isDeprecated: true with a migration message.
  • config-ui/src/routes/connection/connections.tsx — renders a red Deprecated badge + deprecation note on deprecated plugin cards in the Connections page.
  • config-ui/src/routes/connection/styled.ts — styles for the new .deprecated badge and .deprecation-note.

Plan timeline (from #9092)

Phase Window Status
1. Warning T+0 This PR
2. Freeze T+1 month Not started
3. Migration assist T+1~T+3 months Not started
4. Removal T+3 months Not started

Verification

  • go vet ./core/runner/... ./core/plugin/... ./server/api/plugininfo/... ./server/services/remote/... — clean
  • tsc --noEmit — no new errors (only pre-existing missing test deps)

Related issue

Closes: no (this is Phase 1 of the plan in #9092; the issue stays open until Phase 4 removal).
Refs: #9092

Phase 1 of the deprecation plan in #9092. Adds deprecation warnings across
the codebase to inform users that the Python plugin framework will be
removed in 3 months in favor of Go-based plugins.

Changes:
- backend/python/README.md: add DEPRECATED banner + migration guidance
- backend/python/plugins/azuredevops/README.md: mark plugin deprecated,
  point users to azuredevops_go
- backend/core/runner/loader.go: emit a WARN log line at server startup
  when remote (Python) plugins are being loaded
- backend/core/plugin/plugin_meta.go: add PluginDeprecation interface
- backend/server/services/remote/plugin/plugin_impl.go: implement
  PluginDeprecation on RemotePlugin so all Python plugins are flagged
- backend/server/api/plugininfo/plugininifo.go: expose  field
  on GET /plugins so config-ui can detect deprecated plugins
- config-ui: add isDeprecated/deprecationMessage to IPluginConfig, mark
  the azuredevops (Python) plugin deprecated, and render a 'Deprecated'
  badge + message in the Connections page
@klesh
klesh force-pushed the chore/deprecate-python-plugins branch from 51502cc to 33f001a Compare September 2, 2026 11:59
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