Happy to announce whatsdiff v2.0.0, the next version of the tool that helps you keep an eye on your dependencies.
Doc and screenshots on the website: https://whatsdiff.app
What's New
🤖 MCP Server Integration
whatsdiff now includes a Model Context Protocol (MCP) server, enabling AI assistants to intelligently analyze your dependencies with tools for finding compatible versions, fetching release notes, discovering upgrades, and analyzing dependency constraints.
🖥️ New Terminal UI
The Terminal UI (TUI) command provides an interactive way to browse changelogs and release notes for your dependencies directly in your terminal. Navigate through packages, view detailed release notes, and get insights on changes with ease.
📋 whatsdiff changelog
View aggregated release notes for any package version range. whatsdiff fetches from multiple sources with intelligent fallback: local CHANGELOG.md files, GitHub Releases API, and repository changelog files, with support for Deprecated, Removed, and Security sections.
✅ whatsdiff check
Perfect for CI/CD pipelines - verify if specific packages changed with exit codes (0 for true, 1 for false, 2 for errors) and quiet mode for script-friendly output.
Release notes
Added
- feat: add MCP binary builds in #35
- feat: MCP server in #34
- feat: enhance URL formatting with clickable hyperlinks and truncation support in
a96c7bc - feat: update composer dependencies and add patch for emoji display width in
1465b51 - feat: add support for Deprecated, Removed, and Security sections in release notes in
56ccf8c - feat: save mode preference in
3ffd680 - feat: add sidebar navigation with TAB and SHIFT+TAB keys in
dff3d5c - feat: add URL formatting for improved changelog display in TUI in
79f454e - feat: enhance JSON output formatting with summary option in
5d7b49f - feat: enhance ReleaseNote class with structure and bullet points detection in
389d4c6 - feat: add interactive changelog viewing to Terminal UI in
e5561f2 - feat: option to disable alt screen and improve error handling in
b93eb2d - feat: add GitHub URL formatting helpers, separate helper classes in
9700fa9 - feat: implement AnalyzerRegistry for lazy loading of package manager analyzers in
152c02c - feat: local changelog fetchers + github changelog.md in
d3c1971 - feat: enhance package manager detection strategies and add description extraction for release notes in
679fdcc - feat: add ReleaseNote and ReleaseNotesCollection classes for managing release notes in
ce84c36 - feat: add ReleaseNote and ReleaseNotesCollection classes for managing release notes in
a9e93d4 - feat: implement lock file parsers and registry clients in
02e338a - feat: streamline changelog update process with automated commit action in
a71da95 - feat: add workflow to automatically update changelog on release in
3e8dae8 - feat: progress bar show after a certain elapsed time in
e9515ab - feat: update MarkdownOutput to enhance semantic versioning display in
eab2941 - feat: enhance TextOutput to support semantic versioning in change symbols in
575e770 - feat: add SemverAnalyzer for version change detection and update related classes in
5850b5c - feat: pint runs un parallel in
888be81 - feat: ensure valid DiffResult is returned in DiffCalculator and initialize with empty result in
726cfa1 - feat: implement PSR-11 compliant container and refactor commands to use dependency injection in
587765c - feat: add include/exclude options to AnalyseCommand and refactor shared options for reuse in
8ad80a1 - feat: add tests for include/exclude options in dependency analysis in
c4943fd - feat: rename DiffCommand to AnalyseCommand and add include/exclude options for package manager types in
e9b9a89 - feat: add --no-progress option to DiffCommand and refactor diff calculation methods for improved clarity in
73bcd61 - feat: enhance diff calculation to yield PackageChange objects and improve progress reporting in
3b10551 - feat: implement fluent interface for DiffCalculator and enhance diff calculation methods in
fb1bfeb - feat: add 'between' command to compare dependency changes between commits, branches, or tags in
2544ea0 - feat: add a config and cache service in #19
- feat: refactor DiffCalculator to use DependencyFile class in #18
- feat: refactor test setup and cleanup for improved readability and maintainability in #16
- feat: add 'check' command to verify package changes in dependencies in #15
- feat: add a bunch of tests in #14
- feat: introduce analyzers for Composer and NPM package management in #13
- feat: update PHP version matrix in test configuration in
38a18a1 - feat: add output format options for dependency diffs in
2030713 - feat: add TUI command for browsing dependency changes in
3207793 - feat: use symfony/process for git operations in #11
- feat: implement Symfony Console integration in #10
Changed
- build: ready for v2 (ext, php, deps, etc..) in
b76fddb - test: fix test suite in
cecc5f0 - style: new tui header in
472a46e - refactor: simplify version comparison logic in ChangelogCommand in
a22c11e - chore: update dependencies in
426086e - Integrate GitHub Token in HTTP Service in #33
- style: improve spacing in release notes formatting in
5349f63 - style: bottom UI changes in
467916f - style: some header UI chages in
b2727d5 - refactor: reorganizing the codebase in
8356cfe - test: update changelog fetcher tests to remove version-specific refs in
d15033d - refactor: improve changelog fetcher methods to use GitHub API in
248609c - refactor: initialize GitRepository properties on first use to support dependency injection in
6968a50 - refactor: add stateful parsers for composer.lock and package-lock.json files in
9cc5777 - refactor: instantiate GitRepository on-demand in DiffCalculator in
93790f4 - refactor: simplify test setup by using a class property for temporary directory in
2ec6da0 - refactor: replace custom container with League Container in
dcfe739 - refactor: change package org in
32f3940 - refactor: enhance test suite with mock HTTP service and improved private package handling in
8ff9273 - refactor: streamline test setup by using helper functions for lock file generation in
9b9679e - test: cleaning and refactoring tests in
b7994ae - refactor: simplify release count methods and update version comparison logic in
a1b9691 - Refactor to enum in #17
Fixed
- fix: autoload path on composer global install in
63a8454 - fix: enhance repository URL extraction and normalization logic in
4922fef - fix: adjust URL truncation logic for better display in changelog in
8489664 - fix: GithubReleaseFetcher pagination in #32
- fix: update expected output format for empty release notes in tests in
bc1c8e5 - fix: between command not showing progress bar by default in
fae9a02 - fix: composer type in
0c71be017b0f43 - fix: simplify BetweenCommandTest by replacing ProcessService with runWhatsDiff helper in
e597b60 - revert: formatter inside the container in
b3eaba6
Full Changelog: https://github.com/whatsdiff/whatsdiff/compare/v1.6.0..v1.7.0