Support extras for `tasks.libraries.whl` on classic clusters (follow-up to #1602)

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

メンテナーはふだん 1 日以内に返信

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

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
55/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
活発
技術スタック
go, python
領域
backend, cli

調査の方向性

Start by tracing how the CLI resolves tasks.libraries.whl paths during deployment and how it passes wheel library references to classic job clusters; compare that flow with the serverless dependencies handling cited in the issue. The report gives no source files or tests, so first locate those entry points and their tests. Done means a wheel reference with [my-extra] deploys and installs the extra on a classic cluster, while plain wheel references still work.

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

説明

Hi, this is a follow-up to #1602. Extras on local wheels work now for serverless environment dependencies (#6291), which is great, but they dont work for tasks.libraries.whl, so jobs on classic job clusters cant use them.

We split our wheel into extras per domain, because we dont want every job to install libraries it does not need, and we want one pin in pyproject.toml instead of a second pin in the job config.

What we see:

  • whl: ./dist/*.whl[my-extra] fails at deploy with no files match pattern: dist/*.whl[my-extra]
  • whl: /Workspace/.../my_package-0.1.0-py3-none-any.whl[my-extra] deploys, but the library install on the cluster fails with "The library file does not exist or the user does not have permission to read the library file"
  • the same absolute path without [my-extra] installs fine, so it looks like the suffix is read as part of the file name

Minimal config:

artifacts:
  my_package:
    type: whl
    build: uv build --wheel
    path: .

resources:
  jobs:
    my_job:
      tasks:
        - task_key: main
          spark_python_task:
            python_file: ./main.py
          libraries:
            - whl: ./dist/*.whl[my-extra]
          new_cluster:
            spark_version: 18.0.x-scala2.13
            node_type_id: <any>
            num_workers: 0

Expected: the wheel installs with the extra, the same as ./dist/*.whl[my-extra] in environment dependencies on serverless.

Workarounds we know: move the job to serverless, or pin the extra libraries again as pypi libraries on the task, which brings back the 2 pins that drift.

If the second part is on the cluster library side and not the CLI, can u route it please?

CLI version: 1.21.0

主要言語
Go
スター
416
フォーク
256
平均マージ
1日 22時間
マージ済み PR(30日)
206

環境構築

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

はじめの一歩

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

databricks/cli のほかの issue

databricks/cli の issue をすべて見る

似ている issue

Go の issue をもっと見る

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

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