Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

[Proposal] Deprecate Python plugin framework and consolidate on Go

Abierto
#9,092 2 comentarios 6 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
25/100
Tipo de issue
Refactorización
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
docker, github-actions, go, python

Línea de trabajo

Comienza revisando backend/python/, backend/Dockerfile, Dockerfile.local, .github/workflows/test.yml, .github/workflows/test-e2e.yml y los Make targets indicados. Después compara el plugin azuredevops de Python con azuredevops_go, especialmente la extracción del entorno de CI/CD. Se considera terminado cuando los maintainers estén de acuerdo con la propuesta y se hayan identificado responsables para las fases de advertencia, migración y eliminación.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

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.
Lenguaje dominante
Go
Estrellas
3.1k
Forks
812
Merge medio
1 d 23 h
PR fusionados (30 d)
51

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de apache/devlake

Todos los issues de apache/devlake

Issues similares

Más issues de Go

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.