Hi everyone, Ignite has a long history of features remaining unfinished in the codebase.
- MVCC - Tracing API - Local caches - H2-to-Calcite migration - Spark 3 integration - etc. We need clear rules for making decisions. We also need clear plans for completing and supporting features. Changes that affect future releases need to be reviewed by the community before they are merged. I propose the following: 1) An IEP is required before merging any change to: - Public APIs or their supported behavior. - Client or internode protocols. - Data formats stored on disk. 2) Each IEP must explain the plan, what counts as complete, and how the change affects compatibility and future support. 3) Each IEP must be approved by a vote on the dev list or through a similar mechanism (perhaps likes on the IEP page). Approval requires at least three positive votes or likes from Ignite committers. 4) One approved IEP can cover several PRs. 5) Internal changes that keep APIs, protocols, and formats unchanged do not require an IEP for now. The same applies to bug fixes that restore the agreed behavior. WDYT?
