Epic 8: Project modernization
- Lenguaje dominante
- Python
- Estrellas
- 41
- Forks
- 10
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Descripción
### 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.
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Evaluación
Este issue todavía no se ha evaluado.