chore(scripts): mark the shebang-carrying Python scripts executable
Nobody has claimed this yet.
Assessment
- Difficulty
- 1/5
- Estimated time
- Under an hour
- Newbie friendliness
- 84/100
Research direction
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.
Written by the indexing model from the issue text.
Description
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(confirmed100644for the sampled files). - Separately,
scripts/insert_apache_header.py,scripts/tools/internlm_rope_oracle.py, andscripts/tools/quantize_mtp_drafter.pyhave neither a shebang nor+x. Decide whether to normalize them or leave them aspython3 <file>only.
Acceptance Criteria
- Every
scripts/**/*.pywith 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 <file>-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/**/*.pywith 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
- Dominant language
- Rust
- Stars
- 470
- Forks
- 54
- Avg merge
- 4h 45m
- Merged PRs (30d)
- 305
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from lablup/mlxcel
-
area:core priority:low status:ready type:chore
Difficulty 2/5 1-3 hours Newbie friendliness 90/100
-
priority:low status:ready type:docs
Difficulty 1/5 Under an hour Newbie friendliness 95/100
-
docs(webpage): add a webpage/site README covering the pnpm/uv/zensical build and deploy contract Openpriority:low status:ready type:docs
Difficulty 1/5 1-3 hours Newbie friendliness 86/100
-
docs: CONTRIBUTING says clippy is not gated at PR time, but ci.yml runs -D warnings clippy on PRs Openpriority:medium status:ready type:docs
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
priority:low status:ready type:docs
Difficulty 2/5 1-3 hours Newbie friendliness 92/100
Similar issues
-
Browser (wasm) relay client cannot connect to relays whose URL has a trailing-dot FQDN hostname Open
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
n0-computer/iroh#4550 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
paritytech/zombienet-sdk#591 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
farion1231/cc-switch#7638 · 1 comment ·
-
onnx-ir re-exports ModelProto and GraphProto but not NodeProto, AttributeProto and AttributeType Open
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100