Visitar URL original
GitHub - nmangold/composer-remedy: A production-quality Composer plugin that automatically detects and resolves dependency conflicts, with a strong focus on Drupal projects. · GitHub
Skip to content

About

A production-quality Composer plugin that automatically detects and resolves dependency conflicts, with a strong focus on Drupal projects.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Composer Remedy

A production-quality Composer plugin that automatically detects and resolves dependency conflicts, with a strong focus on Drupal projects.

🎯 Features

  • Programmatic Conflict Analysis: Uses Composer's internal solver to detect conflicts accurately.
  • Dependency Graph Building: Maps out the relationships between conflicting packages.
  • Minimal Resolution Planning: Computes the smallest set of version changes required to fix conflicts.
  • Risk Assessment: Classifies the risk level of suggested changes (LOW, MEDIUM, HIGH, EXTREME).
  • Drupal Integration: Specific rules for drupal/core and drupal/core-recommended.
  • Dry-run and Auto-apply: See the plan or apply it automatically.

📦 Installation

composer require nmangold/composer-remedy

⚙️ Usage

When you encounter a dependency conflict, run:

composer drupal:fix-conflicts

Options

  • --dry-run: Show the resolution plan without making any changes.
  • --apply: Automatically execute composer require with the computed version fixes.

🛠 Architecture

The plugin follows SOLID principles and uses a service-oriented architecture:

  • ConflictAnalyzer: Triggers a simulated update to capture SolverProblemsException.
  • DependencyGraphBuilder: Constructs a graph of involved packages.
  • ResolutionPlanner: Iteratively relaxes constraints to find a valid resolution.
  • RiskAnalyzer: Evaluates the impact of version bumps.
  • DrupalAnalyzer: Applies Drupal-specific logic for core and modules.

🧪 Testing

Run the test suite with PHPUnit:

vendor/bin/phpunit

🛡 License

This project is licensed under the MIT License.

About

A production-quality Composer plugin that automatically detects and resolves dependency conflicts, with a strong focus on Drupal projects.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages