aalhour / aalhour/PyCOOLC

Epic 8: Project modernization

Đang mở
#24 0 bình luận 0 reaction 0 người được giao Xem trên GitHub
Ngôn ngữ chính
Python
Star
41
Fork
10
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Mô tả

### Epic 8: Project modernization

Goal: bring tooling, layout, and dependencies to current Python best practices.

- [ ] **Switch to `src/` layout** — move `pycoolc/` into `src/pycoolc/`. Prevents accidental imports of the source tree instead of the installed package. Update `pyproject.toml`, `Makefile`, CI, and test imports.
- [ ] **Replace PLY with a maintained parser library** — PLY's last release was 2018. Candidates: `lark` (Earley/LALR, modern API, maintained), `sly` (PLY author's successor, similar API), or hand-written recursive descent. Biggest change in the project — lexer and parser rewrite, all tests must pass.
- [ ] **Switch build backend to `hatchling`** — drop `setuptools` + `MANIFEST.in` + `*.egg-info`. Hatch handles discovery, versioning, and sdist inclusion natively from `pyproject.toml`.
- [ ] **Remove `MANIFEST.in`** — becomes unnecessary after switching to `hatchling` or equivalent.
- [ ] **Delete committed PLY cache files** — `lextab.py`, `yacctab.py`, `parsetab.py` at repo root and in `examples/`. These are generated artifacts. Ensure `.gitignore` covers them and PLY writes to a build/temp dir.
- [ ] **Adopt `uv` for dependency management** — replace `pip` + `venv` with `uv` for 10-100x faster installs. Add `uv.lock` for reproducible environments. Update `Makefile` venv target.
- [ ] **Replace `Makefile` with `just` or `hatch` scripts** — optional but cleaner. `just` has simpler syntax, better cross-platform support, and no tab sensitivity.
- [ ] **Add dependency lockfile** — `uv.lock` or `pdm.lock` for reproducible CI and dev environments. Pin exact versions for dev deps.

Hướng dẫn đóng góp

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.