lablup / lablup/mlxcel

chore(scripts): mark the shebang-carrying Python scripts executable

Aperta Adatta ai principianti
#1,663 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub
priority:low status:ready type:chore
Lingua principale
Rust
Stelle
467
Fork
54
Merge medio
4h 25m
PR unite (30g)
310

Descrizione

## Summary

Eight Python scripts under `scripts/` carry a `#!/usr/bin/env python3` shebang but are not executable in the index, so the direct invocation some of them document for themselves fails with "permission denied".

## Background

The `scripts/ci/*.py` files (and `scripts/bench_mlxlm.py`) are already mode `100755`, so the executable convention is established. The affected files sit at `100644` despite their shebang. `scripts/bench_embeddings.py:9` documents its own invocation as `scripts/bench_embeddings.py --bin target/release/mlxcel-server ...`, which cannot run today.

## Proposed Solution

Set the executable bit in the index with `git update-index --chmod=+x` (or `chmod +x` then commit) on the shebang-carrying files. Verify with `git ls-files -s scripts/**/*.py`.

## Implementation Notes

- Non-executable despite a shebang: `scripts/bench_embeddings.py`, `scripts/benchmark_gemma3n_python.py`, `scripts/benchmark_llama3_python.py`, `scripts/benchmark_python.py`, `scripts/bridge_overhead_microbench_py.py`, `scripts/gather_qmm_shape_microbench.py`, `scripts/layer_shaped_microbench_py.py`, `scripts/requantize_mlp.py` (confirmed `100644` for the sampled files).
- Separately, `scripts/insert_apache_header.py`, `scripts/tools/internlm_rope_oracle.py`, and `scripts/tools/quantize_mtp_drafter.py` have neither a shebang nor `+x`. Decide whether to normalize them or leave them as `python3 ` only.

## Acceptance Criteria

- [ ] Every `scripts/**/*.py` with a shebang is executable in the index
- [ ] The three shebang-less files are either normalized or explicitly left alone with a note in the PR

---

## Original Suggestion

### Title: chore(scripts): make the shebang'd Python scripts executable

Ten Python scripts under `scripts/` carry a `#!/usr/bin/env python3` shebang but are not executable, so the invocation some of them document for themselves fails with "permission denied". Every `scripts/ci/*.py` (and `scripts/bench_mlxlm.py`) is `+x`, so the convention is established.

## Evidence

Non-executable despite a shebang: `scripts/bench_embeddings.py`, `scripts/benchmark_gemma3n_python.py`, `scripts/benchmark_llama3_python.py`, `scripts/benchmark_python.py`, `scripts/bridge_overhead_microbench_py.py`, `scripts/gather_qmm_shape_microbench.py`, `scripts/layer_shaped_microbench_py.py`, `scripts/requantize_mlp.py`.

`scripts/bench_embeddings.py:9` documents its own invocation as `scripts/bench_embeddings.py --bin target/release/mlxcel-server ...`, which fails today.

Separately, `scripts/insert_apache_header.py`, `scripts/tools/internlm_rope_oracle.py`, and `scripts/tools/quantize_mtp_drafter.py` have neither a shebang nor `+x` — decide whether to bring them in line or leave them as `python3 `-only.

## Suggested fix

`git update-index --chmod=+x` on the shebang'd files (or `chmod +x` + commit). Purely mechanical; verify with `git ls-files -s scripts/*.py`.

## Acceptance criteria

- [ ] Every `scripts/**/*.py` with a shebang is executable in the index
- [ ] The three shebang-less files are either normalized or explicitly left alone with a note in the PR

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Review the eight listed shebang-carrying files under scripts/ and compare their modes with scripts/ci/*.py and scripts/bench_mlxlm.py. Apply the executable bit in the index, then run git ls-files -s scripts/**/*.py to verify every shebang-bearing script is 100755. Check the three shebang-less files and record whether they remain non-executable or are normalized.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
git, python
Ambito
tooling
Tipo di issue
Bug
Difficoltà
1/5
Tempo stimato
Meno di un'ora
Stato di attività
Attiva
Chiarezza
Abbastanza chiara
Idoneità per principianti
84/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.