Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

[Proposal] Deprecate Python plugin framework and consolidate on Go

オープン
#9,092 コメント 2 件 リアクション 6 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
5/5
見積もり時間
1週間以上
初心者へのやさしさ
25/100
issue の種類
リファクタリング
明瞭さ
おおむね明確
活発さ
活発
技術スタック
docker, github-actions, go, python

調査の方向性

まず backend/python/、backend/Dockerfile、Dockerfile.local、.github/workflows/test.yml、.github/workflows/test-e2e.yml、および記載されている Make targets を確認します。次に、Python azuredevops plugin と azuredevops_go を比較し、特に CI/CD 環境の抽出に注目します。maintainers が提案に合意し、警告、移行、削除の各フェーズの担当者が特定されれば完了です。

索引モデルが issue の本文から書いたものです。

説明

Proposal: Deprecate the Python plugin framework and consolidate on Go

Summary

Propose to deprecate the Python plugin framework (backend/python/, a.k.a. PyDevLake) and remove it from the codebase after a 3-month deprecation window. Going forward, all plugins should be written in Go. This reduces maintenance overhead, simplifies the Docker image and CI, and focuses contributor effort on a single, well-supported runtime.

Background

The Python plugin framework was introduced in Feb 2023 (#3702, #4438) to lower the barrier for writing plugins. In practice it never saw adoption:

  • Only one plugin ever shipped on it: azuredevops (Python).
  • The dbt Python plugin was already removed on 2026-08-31 (#8970).
  • A fully-featured Go implementation, azuredevops_go, now exists and is actively developed (on-premises support landed 2026-08-16, #9014).
Evidence: Python plugins are not being maintained
Plugin Last meaningful commit Note
azuredevops (Python) 2025-12-31 feat: add environment_pattern (#8671) No feature/fix since; only deps refresh & runtime bumps
pydevlake framework 2025-12-31 (same as above) Last real fix: #8957 on 2026-07-15 (missing composite PKs)
dbt (Python) removed 2026-08-31 (#8970) Already gone

In the last ~12 months, the only commits touching backend/python/ are dependency refreshes, Poetry/uv lock bumps, a Python 3.9→3.11 runtime bump, and a single primary-key fix. Meanwhile the Go side shipped 40+ plugins and continues to receive features weekly.

Benefits
  1. One runtime to maintain. Eliminate the parallel PyDevLake framework, its RPC bridge, pydevlake package, uv/Poetry tooling, and Python-specific test/build scripts.
  2. Simpler Docker build. Today backend/Dockerfile is based on python:3.11-slim-bookworm, installs python3-dev/pip/uv, copies python/, and runs build.sh. After removal the image can be a slim Go-based image — smaller, fewer CVEs, faster builds. Dockerfile.local's "empty python plugins dir" workaround also goes away.
  3. Simpler CI. Two workflows (.github/workflows/test.yml, test-e2e.yml) and Make targets (python-dep, python-unit-test, build-python, build-pydevlake) can be dropped.
  4. Clearer contributor story. New plugin authors get one path (Go) with 40+ reference implementations instead of choosing between two frameworks where one is unmaintained.
  5. No functional loss. The only remaining Python plugin (azuredevops) is superseded by azuredevops_go, which already has broader feature coverage (Server/on-prem support).
Plan & Timeline
Phase Window Actions
1. Warning T+0 (on issue merge) Add deprecation notices to: backend/python/README.md, plugin README.mds, server startup log line, and config-ui plugin selection UI. Mark azuredevops (Python) as deprecated in the plugin registry; point users to azuredevops_go.
2. Freeze T+1 month Stop accepting new features/fixes for Python plugins. Only critical security fixes land. Add a CI gate rejecting new files under backend/python/plugins/.
3. Migration assist T+1~T+3 months Ship a migration guide + script to move any remaining azuredevops (Python) connections/scopes to azuredevops_go. Document data-layer equivalence.
4. Removal T+3 months Delete backend/python/, PyDevLake, the Python Dockerfile stage, make python-* targets, and Python CI jobs. Remove azuredevops (Python) from the plugin registry.

Total deprecation window: 3 months from the date this proposal is accepted.

Risks & Mitigations
  • Existing users of azuredevops (Python): Mitigated by azuredevops_go parity + migration guide in Phase 3. The Go plugin already covers cloud + on-prem.
  • External contributors with in-progress Python plugins: The 3-month window + the warning phase gives them time to port. No private Python plugins are known to exist in the wild.
  • Reverting later: Not needed; Go covers all current and planned use cases.
What we need
  • 👍 / 👎 from maintainers and community on deprecating Python.
  • Owners to confirm azuredevops_go feature parity with the Python azuredevops plugin (esp. CI/CD environment extraction).
  • Volunteers to write the Phase-3 migration guide.
主要言語
Go
スター
3.1k
フォーク
812
平均マージ
2日 9時間
マージ済み PR(30日)
56

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

apache/devlake のほかの issue

apache/devlake の issue をすべて見る

似ている issue

Go の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。