Skip to content

v2.0.0

Latest

Choose a tag to compare

@SRWieZ SRWieZ released this 29 Oct 14:29
· 2 commits to main since this release
ce11a5d

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 0c71be0 17b0f43
  • 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