skills/solve-composer-dependencies/SKILL.md
Installs and updates packages, solves dependency issues when installing packages when user asks to install or update a Composer package.
npx skillsauth add City-of-Helsinki/drupal-asuntotuotanto solve-composer-dependenciesInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This guide covers the installation and updating of Composer packages along with how to solve dependency issues.
docker exec <container name> sh -c "<command>" to run drush commands
docker exec asuntotuotanto-app sh -c "drush require drupal/encrypt:^3.3"composer require <package_name>:<version> --dry-run
composer require drupal/simple_oauth:^6.1.0 --dry-run$ composer require drupal/simple_oauth:^6.1.0 --dry-run
./composer.json has been updated
Running composer update drupal/simple_oauth
Loading composer repositories with package information
Updating dependencies
Your requirements could not be resolved to an installable set of packages.
Problem 1
- Root composer.json requires drupal/simple_oauth ^6.1.0 -> satisfiable by drupal/simple_oauth[6.1.0, 6.1.x-dev, 6.x-dev (alias of dev-6.x)].
- drupal/simple_oauth[6.1.0, ..., 6.1.x-dev] require league/oauth2-server ^9.0 -> found league/oauth2-server[9.0.0-RC1, ..., 9.3.0] but the package is fixed to 8.5.5 (lock file version) by a partial update and that version does not match. Make sure you list it as an argument for the update command.
- drupal/simple_oauth dev-6.x requires drupal/core ^8 || ^9 -> found drupal/core[8.0.0-beta6, ..., 8.9.x-dev, 9.0.0-alpha1, ..., 9.5.x-dev] but it conflicts with your root composer.json require (~11.2.0).
- drupal/simple_oauth 6.x-dev is an alias of drupal/simple_oauth dev-6.x and thus requires it to be installed too.
Use the option --with-all-dependencies (-W) to allow upgrades, downgrades and removals for packages currently locked to specific versions.
Installation failed, reverting ./composer.json and ./composer.lock to their original content.```
- You should then use the `composer why-not <package> <version>` command to get further information on why some dependencies for the package could not be installed
- Example: The packages mentioned in the error messages are `drupal/simple_oauth:^6.1.0` and `league/oauth2-server:^9.0`
- Call `composer why-not drupal/simple_oauth ^6.1.0` and `composer why-not league/oauth2-server ^9.0` to find further information on what keeps them from being installed
```bash
$ composer why-not drupal/simple_oauth ^6.1.0
drupal/simple_oauth 6.1.0 requires league/oauth2-server (^9.0)
```
- Utilize the hints given by `composer why-not` and `composer require --dry-run` to figure out a combination of packages that work together and then install them
- You can use `composer show <package> <version>` to see which dependencies a
development
Wrapper skill that delegates to the version-controlled skill under .agents/skills.
development
Updates asuntomyynti-react in local development and aligns Drupal asu_apartment_search module behavior. Use when updating the React widget, rebuilding local assets, or adjusting search filters.
testing
Create, edit, improve, or audit AgentSkills. Use when creating a new skill from scratch or when asked to improve, review, audit, tidy up, or clean up an existing skill or SKILL.md file. Also use when editing or restructuring a skill directory (moving files to references/ or scripts/, removing stale content, validating against the AgentSkills spec). Triggers on phrases like "create a skill", "author a skill", "tidy up a skill", "improve this skill", "review the skill", "clean up the skill", "audit the skill".
testing
Host security hardening and risk-tolerance configuration for OpenClaw deployments. Use when a user asks for security audits, firewall/SSH/update hardening, risk posture, exposure review, OpenClaw cron scheduling for periodic checks, or version status checks on a machine running OpenClaw (laptop, workstation, Pi, VPS).