Description
InstructLab has reached a critical point where we should start to formalize larger changes. For one, the code base and feature scope has become too complex for one person to grasp the impact of a change. Downstream has started to productize InstructLab. Any breaking changing can have a negative impact.
I propose to adopt a formal change proposal similar to change proposals in project like
- CPython PEP https://peps.python.org/
- Django DEP https://github.com/django/deps
- Rust MCP https://forge.rust-lang.org/compiler/mcp.html
A standardized change proposal document and process not only helps the author to formulate their idea. It also helps reviewers, QE, docs writer, downstream, and community to understand and assess a proposal. QE will know which E2E tests they have to update or create. Docs team can update docs accordingly. Community has an abstract for each major change in a release.
In additional to implementation details, an * InstructLab Change and Enhancement proposal* (ICE) should contain:
- abstract
- rational and motivation
- goals / non-goals
- risks / benefits
- how to test
- how to document and teach