Migrate backend from raw REST API to PythonCall.jl + CondaPkg.jl

オープン
#79 コメント 5 件 リアクション 0 件 担当者 1 名 GitHub で見る

@pebeto がすでに取り組んでいます。

2026年3月24日 から。

評価

この issue はまだ評価されていません。

説明

documentation enhancement help wanted

Historically, MLFlowClient.jl has operated as a pure Julia wrapper around the MLflow REST API. However, keeping pace with MLflow's upstream development has become unsustainable.

While MLflow technically provides an OpenAPI/Swagger specification, their backend relies heavily on Protocol Buffers. In practice, this means the REST API frequently experiences undocumented changes, volatile internal endpoints (e.g., /ajax-api/), and inconsistent payload typing. Maintaining a manual HTTP/JSON mapping against a fast-moving, fundamentally Python-first ecosystem requires constant reverse-engineering and patches, which is no longer feasible for this package's long-term health.

I propose we move the core architecture of MLFlowClient.jl to act as an idiomatic Julia bridge to the official Python mlflow client, utilizing PythonCall.jl paired with CondaPkg.jl.

Workflow:
  • CondaPkg.jl will automatically provision an isolated, invisible Python environment and install the mlflow package when a user installs MLFlowClient.jl. The user does not need to manage Python themselves
  • PythonCall.jl will handle the zero-overhead data translation between Julia types and the underlying Python library
  • End-users will still write pure Julia code (e.g., using do blocks instead of Python with context managers)
Considerations
Pros
  • Parity: When MLflow releases new features (like recent LLM tracking or Model Registry updates), Julia users get access to them immediately without waiting for us to reverse-engineer the REST payloads
  • Artifact logging: Uploading complex artifacts or models becomes significantly easier than raw HTTP multipart/form-data POST requests (a common issue in the history of the package)
  • Reduction in tech debt: Reduced JSON serialization and HTTP boilerplate code
Cons
  • No pure Julia: Python is now a dependency
  • Startup latency: The Python environment will increase the package initialization time

@ablaom @deyandyankov

主要言語
Julia
スター
59
フォーク
17
PR マージ指標
30日以内にマージされた PR はありません

環境構築

Codespaces で開く

このプロジェクトの開発コンテナを、あなたの GitHub アカウントでブラウザ上に起動します。

  • Dockerfile・Docker Compose ファイルなし
  • プルリクエストのテンプレートなし
  • コントリビューションガイドなし

はじめの一歩

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

JuliaAI/MLFlowClient.jl のほかの issue

JuliaAI/MLFlowClient.jl の issue をすべて見る

似ている issue

Julia の issue をもっと見る

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

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