diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..6665ec2 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,47 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [Unreleased] + +## [0.1.0] - 2026-05-30 + +### Added + +- **FrankenPHP runtime** — base image migrated from `php-cli` to FrankenPHP Alpine for better performance and built-in web server support +- **FrankenPHP worker mode** — Symfony worker script (`public/worker.php`) with request reuse and graceful reload +- **Caddy configuration** — `docker/frankenphp/Caddyfile` and `Caddyfile.dev` for production and development setups +- **Provider health probes** — `ProviderInterface` extended with `ping()` and `probe()` methods; `ProbeTrait` provides the shared implementation +- **Per-provider status on `/health`** — the health endpoint now reports `ok`, `degraded`, or `down` for each configured provider (GitHub, GitLab, Gitea), along with an error code and latency +- **Supporting value objects** — `ProviderStatus`, `ProviderStatusType`, `ProviderErrorCode`, and `ProviderHealthChecker` service +- **`ContributionAggregator` service** — contribution merging logic extracted from `GraphController` into a dedicated, testable service + +### Fixed + +- Optional environment variables (`GITLAB_URL`, `ALLOWED_HOSTS`, etc.) now have explicit empty default values in `docker-compose.yml`, preventing Docker Compose warnings on startup + +### Changed + +- `SvgRenderer` is now `final` and declares `strict_types=1` + +### Tests + +- Unit tests added for `ProbeTrait`, `ProviderHealthChecker`, `ProviderStatus`, `ContributionAggregator`, and all three provider probes (`GitHubProvider`, `GitLabProvider`, `GiteaProvider`) +- `SvgRendererTest` refactored to follow project PHPUnit conventions (`#[Test]` attribute, `it_` prefix, Arrange/Act/Assert structure) + +## [0.0.1] - 2025-01-01 + +### Added + +- Initial release — GitHub, GitLab, and Gitea contribution graph as a self-hosted SVG endpoint +- Light and dark theme support +- Filesystem cache with 1-hour TTL +- Docker multi-stage build (`base → deps → build → final`) +- Basic `/health` endpoint + +[Unreleased]: https://github.com/ArthurErlich/git-contribution-graph/compare/0.1.0...HEAD +[0.1.0]: https://github.com/ArthurErlich/git-contribution-graph/compare/0.0.1...0.1.0 +[0.0.1]: https://github.com/ArthurErlich/git-contribution-graph/releases/tag/0.0.1