26 lines
1.1 KiB
Markdown
26 lines
1.1 KiB
Markdown
|
|
# ConsoleContracts Milestones
|
||
|
|
|
||
|
|
This document defines the implementation milestones for the `getphred/console-contracts` package.
|
||
|
|
|
||
|
|
## 1. Project Infrastructure
|
||
|
|
- [x] Initialize repository and `composer.json` with zero runtime dependencies.
|
||
|
|
- [x] Configure PHPUnit and static analysis (PHPStan).
|
||
|
|
- [x] Set up GitHub Actions for continuous integration.
|
||
|
|
|
||
|
|
## 2. Core Interfaces
|
||
|
|
- [x] Implement `CommandInterface` and metadata methods.
|
||
|
|
- [x] Implement `InputInterface` for argument and option access.
|
||
|
|
- [x] Implement `OutputInterface` with verbosity and semantic methods.
|
||
|
|
- [x] Implement `ConsoleMiddlewareInterface` for execution wrapping.
|
||
|
|
- [x] Implement `ConsoleExceptionInterface` for standardized errors.
|
||
|
|
|
||
|
|
## 3. Standardized Constants
|
||
|
|
- [x] Implement `Verbosity` level constants.
|
||
|
|
- [x] Implement `ExitCode` semantic constants (sysexits.h).
|
||
|
|
|
||
|
|
## 4. Helper & DX Contracts
|
||
|
|
- [x] Implement `InteractionInterface` for portable interactivity.
|
||
|
|
- [x] Implement `ProgressBarInterface`, `TableInterface`, and `MarkdownConverterInterface`.
|
||
|
|
- [x] Implement PHP 8 Attributes (`#[Cmd]`, `#[Arg]`, `#[Opt]`).
|
||
|
|
- [x] Implement `HasAttributes` trait for attribute-to-interface bridging.
|