This is an automated email from the ASF dual-hosted git repository.

github-merge-queue[bot] pushed a commit to branch 
gh-readonly-queue/main/pr-5692-891d2adbc8d096774121150eb079dfacdfded161
in repository https://gitbox.apache.org/repos/asf/texera.git

commit 3dab771a2fe3ea5bf97c4c69cfbd761f9cd01e54
Author: Yicong Huang <[email protected]>
AuthorDate: Mon Jun 15 14:39:26 2026 -0700

    chore(amber): move test-only deps to dev-requirements.txt (#5692)
    
    ### What changes were proposed in this PR?
    
    Four test-only pins were sitting in the wrong file
    (`amber/requirements.txt`), which leaked them into the production Docker
    image and the LICENSE-binary snapshot. This PR moves them.
    
    | Pin | Move |
    | --- | --- |
    | `pytest==7.4.0` | `requirements.txt` → `dev-requirements.txt` |
    | `pytest-reraise==2.1.2` | `requirements.txt` → `dev-requirements.txt`
    |
    | `pytest-timeout==2.2.0` | `requirements.txt` → `dev-requirements.txt`
    |
    | `iniconfig==1.1.1` | `requirements.txt` → dropped entirely (pytest
    transitive, auto-installed) |
    
    Side effects:
    
    | File | Change |
    | --- | --- |
    | `amber/system-requirements-lock.txt` | drop the same 4 lines (header:
    *"This file must be updated whenever requirements.txt or
    operator-requirements.txt changes"*) |
    | `amber/LICENSE-binary-python` | drop the same 4 entries from the BSD
    2-Clause / MIT blocks |
    
    ### Why this is safe
    
    | Consumer | Before | After |
    | --- | --- | --- |
    | CI `pyamber` / `amber-integration` stacks | install `requirements.txt`
    + `operator-requirements.txt` + `dev-requirements.txt` — get pytest
    twice | install all three — get pytest once (from dev-requirements) |
    | `bin/computing-unit-master.dockerfile` (prod) | installs
    `requirements.txt` + `operator-requirements.txt` — gets pytest, doesn't
    need it | installs same two — no longer pulls pytest |
    | `bin/computing-unit-worker.dockerfile` (prod) | same as master | same
    as master |
    | `PveManager.createNewPve` (per-user PVEs) | installs
    `requirements.txt` only — gets pytest, doesn't need it | installs same —
    no longer pulls pytest |
    | `check_binary_deps.py` (LICENSE drift gate) | requires LICENSE-binary
    entries because requirements.txt declares them | no longer requires
    them; entries removed in lockstep |
    
    The 1 non-test pytest import I found
    (`amber/src/main/scala/.../aiassistant/test_type_annotation_visitor.py`)
    is a pytest test that's accidentally placed under `src/main` by filename
    convention (`test_*`); it's not invoked by the production runtime.
    
    ### Any related issues, documentation, discussions?
    
    Closes #5691
    
    ### How was this PR tested?
    
    - `git diff upstream/main --stat` — confirms only the four files above
    are touched, with the expected `+6/-12` shape
    - `grep -ciE "^(pytest|iniconfig| - pytest| - iniconfig)"
    amber/requirements.txt amber/system-requirements-lock.txt
    amber/LICENSE-binary-python` — all three return 0 after the change
    - Repo-wide `grep -rIE "^(from|import)[[:space:]]+pytest"` shows 48
    usages in `amber/src/test/python` (CI installs dev-requirements.txt, so
    they keep working) and the 1 non-runtime file noted above
    
    ### Was this PR authored or co-authored using generative AI tooling?
    
    Generated-by: Claude Code (Opus 4.7 [1M context])
    
    ---------
    
    Co-authored-by: Yicong Huang <[email protected]>
    Co-authored-by: Claude <[email protected]>
---
 amber/LICENSE-binary-python        | 5 -----
 amber/dev-requirements.txt         | 5 +++++
 amber/requirements.txt             | 4 ----
 amber/system-requirements-lock.txt | 5 -----
 4 files changed, 5 insertions(+), 14 deletions(-)

diff --git a/amber/LICENSE-binary-python b/amber/LICENSE-binary-python
index 3b0f155997..1a3202bf11 100644
--- a/amber/LICENSE-binary-python
+++ b/amber/LICENSE-binary-python
@@ -262,7 +262,6 @@ Python packages:
   - h2==4.3.0
   - hpack==4.1.0
   - hyperframe==6.1.0
-  - iniconfig==1.1.1
   - jmespath==1.1.0
   - loguru==0.7.0
   - markdown-it-py==4.2.0
@@ -270,14 +269,10 @@ Python packages:
   - mmh3==5.2.1
   - pampy==0.3.0
   - plotly==5.24.1
-  - pluggy==1.6.0
   - pydantic==2.13.4
   - pydantic-core==2.46.4
   - pyparsing==3.3.2
   - pyroaring==1.1.0
-  - pytest==7.4.0
-  - pytest-reraise==2.1.2
-  - pytest-timeout==2.2.0
   - pytz==2026.2
   - pyyaml==6.0.3
   - readerwriterlock==1.0.9
diff --git a/amber/dev-requirements.txt b/amber/dev-requirements.txt
index 7ae68cf4a2..f5cbb5f4b3 100644
--- a/amber/dev-requirements.txt
+++ b/amber/dev-requirements.txt
@@ -20,6 +20,11 @@
 # pip-licenses output and never need to be tracked in LICENSE-binary
 # / NOTICE-binary. Not installed by packaging.
 
+# pytest test runner and plugins.
+pytest==7.4.0
+pytest-reraise==2.1.2
+pytest-timeout==2.2.0
+
 # Coverage instrumentation for pytest; emits coverage.xml consumed by
 # Codecov's Phase 1 upload.
 pytest-cov==5.0.0
diff --git a/amber/requirements.txt b/amber/requirements.txt
index e11fbdb596..cba984f7a0 100644
--- a/amber/requirements.txt
+++ b/amber/requirements.txt
@@ -19,18 +19,14 @@ setuptools==80.10.2
 numpy==2.1.0
 pandas==2.2.3
 ruff==0.14.7
-iniconfig==1.1.1
 loguru==0.7.0
 pyarrow==21.0.0
-pytest==7.4.0
 python-dateutil==2.8.2
-pytest-timeout==2.2.0
 protobuf==7.34.1
 betterproto==2.0.0b7
 pampy==0.3.0
 overrides==7.4.0
 typing_extensions==4.14.1
-pytest-reraise==2.1.2
 Deprecated==1.2.14
 fs==2.4.16
 bidict==0.22.0
diff --git a/amber/system-requirements-lock.txt 
b/amber/system-requirements-lock.txt
index 29f67d3822..3447f3e589 100644
--- a/amber/system-requirements-lock.txt
+++ b/amber/system-requirements-lock.txt
@@ -46,7 +46,6 @@ h2==4.3.0
 hpack==4.1.0
 hyperframe==6.1.0
 idna==3.15
-iniconfig==1.1.1
 jmespath==1.1.0
 loguru==0.7.0
 markdown-it-py==4.2.0
@@ -59,7 +58,6 @@ packaging==26.2
 pampy==0.3.0
 pandas==2.2.3
 pg8000==1.31.5
-pluggy==1.6.0
 praw==7.6.1
 prawcore==2.4.0
 propcache==0.5.2
@@ -73,9 +71,6 @@ pyiceberg==0.11.1
 pympler==1.1
 pyparsing==3.3.2
 pyroaring==1.1.0
-pytest==7.4.0
-pytest-reraise==2.1.2
-pytest-timeout==2.2.0
 python-dateutil==2.8.2
 pytz==2026.2
 readerwriterlock==1.0.9

Reply via email to