Issue #3615020: Make composer.json reflect the module's real dependencies
composer.json declared only drupal/core. Every other dependency the code actually uses was missing, so Composer would happily install the module into a site where none of them are present.
Audited all Drupal namespaces referenced by the code and every extension-backed function call, then updated the manifest.
require:
- php >=8.1, which is what the 11 classes using readonly properties need.
- ext-mbstring, used in 41 places and not part of the PHP core.
suggest, all previously undeclared:
- search_api, referenced 47 times by five list resources.
- paragraphs, used to build paragraph structures.
- openapi, whose RestGenerator the module's generators extend.
- openapi_ui and openapi_ui_swagger, needed by the swagger route.
- key, optional backend for the authentication slug.
- symfony_mailer, the mail manager replacement used by form resources. myfacet and myrest_metatag kept, with accurate descriptions.
myentity is listed under suggest with an explicit note. It is a hard dependency in myrest.info.yml, but the project is not published, so putting it in require would make this package unresolvable. It has to move to require once the project exists.
Metadata: added homepage and the maintainer role, pointed support.source at the git repository instead of the project page, and replaced the "Drupal 11" keyword with descriptive ones.
Also fixed in README:
- The install command said "composer require industrialmedia/myrest", a package that does not exist.
- The requirements list omitted every optional dependency except OpenAPI and gave no PHP version. Each optional module is now listed against the feature it enables.
composer validate --strict passes.
Co-Authored-By: Claude Opus 5 noreply@anthropic.com
Closes #3615020