refs https://github.com/SemanticMediaWiki/SemanticMediaWiki/issues/4541#issuecomment-586581841
Both the readme and the compatibility document explicitly state the boundaries. Admittedly the page on mediawiki.org still stated 7.0+ which I now rectified. Anyways once we have the version check for the upper boundaries this will be a matter of history past.
Not sure when I'll have time for this but we probably leave the composer.json/extension.json without upper bounds and implement that similar to
The new SetupCheck (on master) would already account for boundaries defined as "MediaWiki": "1.31.*|1.32.*" with an appropriate error message. So, on a MW 1.33 where the SMW extension.json contains specific boundaries you would get:
"requires": {
"MediaWiki": "1.31.*|1.32.*"
},

Adding 1.31.*|1.32.*|1.33.* would make the error go away.
According to https://github.com/wikimedia/mediawiki/commit/8af76decf8799f9ebb7fa45990c95bfb13e817c3 it allows you to add PHP requirement to the extension.json as in:
"requires": {
"platform": {
"php": "7.3.*|7.4.*"
},
"MediaWiki": "1.31.*|1.32.*|1.33.*"
},
Now, when reduced to `"php": "7.4.*" it would produce:

it allows you to add PHP requirement to the extension.json as in:
I think this will require manifest 2 to make this workable.
I think this will require manifest 2 to make this workable.
I used to current extension.json from SMW master to add those mentioned boundaries. The platform/php could be a MW 1.32+ thing.
Why not do this? https://github.com/SemanticMediaWiki/SemanticMediaWiki/pull/4561
Then no need to deal with the MW system
Why not do this? #4561
Then no need to deal with the MW system
For a "normal" user the output of the composer constraint violation is incomprehensible making it for non developers fairly unusable.
Also we won't make upper boundaries to master, only on a released version leaving developers free to experiment without running into any trouble with the composer version system.
For a "normal" user the output of the composer constraint violation is incomprehensible making it for non developers fairly unusable.
Aside from the composer output issue, you cannot define the MW version in the composer.json so keeping things in one place makes maintenance easier.
Fair enough
Aside from the composer output issue, you cannot define the MW version in the composer.json so keeping things in one place makes maintenance easier.
I remembered now that I saw another attempt from the WMF to suppress the composer usage [0, 1] and the use of mediawiki/mediawiki as virtual package to access boundary information which means sooner or later the possibility of defining a MW boundary in composer.json will be gone which means we should not rely on this method and is therefore another reason why the MW boundary has to be declared in extension.json.
[0] https://gerrit.wikimedia.org/r/#/c/mediawiki/core/+/551346/
[1] https://phabricator.wikimedia.org/T249573
[2] https://mwstake.org/mwstake/wiki/Request_for_Comment/Hybrid_extension_management