Epic 8: Project modernization
- Vorherrschende Sprache
- Python
- Sterne
- 41
- Forks
- 10
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
### 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.
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Bewertung
Dieses Issue wurde noch nicht bewertet.