Remove Legacy Phases (deprecated) in version 10
- Dominant language
- Java
- Stars
- 9
- Forks
- 4
- Avg merge
- 2d 5h
- Merged PRs (30d)
- 7
Description
## Summary
Legacy Phases have been deprecated for some time and were documented as supported "until version 9.X.2". As we move to **version 10**, they should be removed.
Legacy Phases are the old execution-time directives (`PRODUCER` / `CONSUMER` / `ASYNCHRONOUS` / `NON_PHASED`) and their associated `PHASED.*` properties, which have since been superseded by the [Execution Modes](../../README.md#execution-modes) (`STANDARD` / `INTERRUPTIVE` / `NON-INTERRUPTIVE` / `PERMUTATIONAL`) driven by `MUTATIONAL.EXECUTION.MODE`.
## Motivation
- The framework now expresses everything through the generalized Mutational **Execution Modes**; Phases are a redundant, legacy surface kept only for backward compatibility.
- Version 10 is a major bump — the appropriate point to drop deprecated API/config.
## Candidate surfaces to audit and remove
> The list below is from a light scan and should be verified before removal.
**Deprecated run-time properties** (see `ConfigValueHandlerPhased`):
- [ ] `PHASED.TESTS.PHASE` — legacy phase selector (superseded by `MUTATIONAL.EXECUTION.MODE`)
- [ ] `PHASED.EVENTS.NONINTERRUPTIVE` — renamed to `MUTATIONAL.EVENTS.NONINTERRUPTIVE`
- [ ] `PHASED.EVENTS.TARGET` — renamed to `MUTATIONAL.EVENTS.TARGET`
- [ ] `PHASED.TESTS.NONPHASED.LEGACY` — pre-8.0.0 backward-compat flag for the `phased-data-provider-single` group name
- [ ] The deprecation-warning fallback path that still honors these old names
**Code:**
- [ ] Review the `Phases` enum (`phased-testing-core`) and its mapping to `ExecutionMode`; determine what can be removed vs. what stays as an internal implementation detail
- [ ] Any `@Deprecated` members tied to legacy phases in `PhasedTest`, `PhasedTestListener`
**Docs:**
- [ ] Remove the "LEGACY PHASES - DEPRECATED" section and the deprecated `PHASED.*` property entries from the READMEs
- [ ] Add a migration note to `CHANGELOG.md` mapping old phases/properties → current execution modes/properties
## Acceptance criteria
- [ ] All legacy-phase config aliases and their fallback handling are removed
- [ ] No references to the deprecated properties remain in code or docs
- [ ] Migration guidance is captured in the changelog
- [ ] Tests covering the deprecated paths are removed or migrated
## Notes
Removing these is a **breaking change** and must land in the 10.0.0 release. Consumers still using `PHASED.*` properties will need to migrate to the `MUTATIONAL.*` equivalents.
Contributor guide
Research direction
Start by auditing ConfigValueHandlerPhased, the Phases enum, PhasedTest, and PhasedTestListener for deprecated properties, aliases, fallback handling, and deprecated members. Then review the README sections and CHANGELOG.md; done means legacy references and tests are removed or migrated, with migration guidance for the MUTATIONAL.* replacements.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- documentation, testing
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100