goumsss commited on
Commit
9d3707b
·
1 Parent(s): 592aaae

Fix: remove gradio from requirements.txt, bump sdk_version to 6.17.3

Browse files

HF Spaces pins gradio to sdk_version in README frontmatter.
Having gradio also in requirements.txt caused an irresolvable conflict.
Rule added to CLAUDE.md: never put gradio in requirements.txt.

Files changed (3) hide show
  1. CLAUDE.md +13 -1
  2. README.md +1 -1
  3. requirements.txt +0 -1
CLAUDE.md CHANGED
@@ -11,6 +11,15 @@ Stack: Python · Gradio · diffusers · HuggingFace Spaces (ZeroGPU).
11
  2. SYNTAX → ~/miniforge3/bin/python3 -c "import ast; [ast.parse(open(f).read()) for f in ['app.py','image_generator.py','math_engine.py']]"
12
  3. IMPORT → ~/miniforge3/bin/python3 -c "import app" 2>&1 # catches version conflicts & bad imports
13
  must produce NO errors (warnings OK)
 
 
 
 
 
 
 
 
 
14
  4. RUN → kill previous instance, start fresh:
15
  pkill -f "python3 app.py"; ~/miniforge3/bin/python3 app.py > /tmp/numzoo.log 2>&1 &
16
  sleep 10 && cat /tmp/numzoo.log # must show no errors
@@ -22,7 +31,10 @@ Stack: Python · Gradio · diffusers · HuggingFace Spaces (ZeroGPU).
22
  git add -A && git commit -m "..." && git push origin main
23
  ```
24
 
25
- **Version pinning rule:** always pin `gradio>=6.0.0` — older Gradio uses `HfFolder` which was removed from `huggingface_hub>=1.0`. Step 3 (import check) will catch this class of error locally.
 
 
 
26
 
27
  **Never push broken code.** If Puppeteer tests fail, do not proceed to push.
28
 
 
11
  2. SYNTAX → ~/miniforge3/bin/python3 -c "import ast; [ast.parse(open(f).read()) for f in ['app.py','image_generator.py','math_engine.py']]"
12
  3. IMPORT → ~/miniforge3/bin/python3 -c "import app" 2>&1 # catches version conflicts & bad imports
13
  must produce NO errors (warnings OK)
14
+ SDK CHK → verify README.md sdk_version matches local gradio (HF Spaces pins gradio to sdk_version):
15
+ python3 -c "
16
+ import re, subprocess
17
+ sdk = re.search(r'sdk_version: \"(.+?)\"', open('README.md').read()).group(1)
18
+ local = subprocess.check_output(['pip','show','gradio']).decode()
19
+ ver = re.search(r'Version: (.+)', local).group(1)
20
+ assert sdk == ver, f'MISMATCH: README sdk_version={sdk} but local gradio={ver}'
21
+ print(f'✅ sdk_version {sdk} matches local gradio')
22
+ " 2>&1
23
  4. RUN → kill previous instance, start fresh:
24
  pkill -f "python3 app.py"; ~/miniforge3/bin/python3 app.py > /tmp/numzoo.log 2>&1 &
25
  sleep 10 && cat /tmp/numzoo.log # must show no errors
 
31
  git add -A && git commit -m "..." && git push origin main
32
  ```
33
 
34
+ **Version pinning rules:**
35
+ - **Never put `gradio` in `requirements.txt`** — HF Spaces installs it separately using `sdk_version` from README.md frontmatter. Conflicting versions cause build failure.
36
+ - **Always keep `sdk_version` in README.md in sync with local gradio** — run the SDK check above before every push.
37
+ - To upgrade gradio: update `sdk_version` in README.md, reinstall locally (`pip install gradio==x.y.z`), re-run full loop.
38
 
39
  **Never push broken code.** If Puppeteer tests fail, do not proceed to push.
40
 
README.md CHANGED
@@ -4,7 +4,7 @@ emoji: 🦁
4
  colorFrom: purple
5
  colorTo: pink
6
  sdk: gradio
7
- sdk_version: "4.40.0"
8
  app_file: app.py
9
  pinned: false
10
  license: apache-2.0
 
4
  colorFrom: purple
5
  colorTo: pink
6
  sdk: gradio
7
+ sdk_version: "6.17.3"
8
  app_file: app.py
9
  pinned: false
10
  license: apache-2.0
requirements.txt CHANGED
@@ -1,4 +1,3 @@
1
- gradio>=6.0.0
2
  audioop-lts
3
  diffusers>=0.30.0
4
  transformers>=4.44.0
 
 
1
  audioop-lts
2
  diffusers>=0.30.0
3
  transformers>=4.44.0