Epic 8: Project modernization
- 主要语言
- Python
- 星标
- 41
- 派生
- 10
- PR 合并指标
- 30 天内没有已合并 PR
描述
### 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.
贡献指南
这个仓库没有索引到贡献指南
评估
这个 Issue 还没有评估数据。