The semantics of Maven's "provided" scope are close.
The
handbook has content that deals with this. There are two cases where "works with" applies:
- the functionality of Eclipse project code is enhanced by the presence of the software, but is otherwise functional and useful without it; or
- there are multiple choices and reviewing all of them is impractical or impossible.
So... it's not a matter of whether or not the software is "provided", it's the nature of the use. If software is required by your project code, then it is a prerequisite, regardless of how it is obtained. That is, if a consumer must install a bunch of software in order for your project software to function, then that "bunch of software" are "prerequisites".
To qualify as the first type of "works with", a dependency would have to optional. At least at runtime. That is, a consumer could use the software without requiring the dependency. FWIW, I argued years ago that build and test dependencies are "works with" because a consumer can use the software without actually invoking a build (and thereby avoid having to agree to the licensing terms of the build dependencies).
The second type of "works with" handles the multiple options scenario. Your software might work, for example, with any kind of database. In this case, at least one of those databases would have to be taken through the due diligence process and then a "works with" CQ indicates that other options may be substituted.
Taken to the extreme, a Java runtime and even operating system are "prerequisites", but are classified as "
exempt prerequisites". This is, of course, where things start to get a bit fuzzy. CQs are not required for runtimes and operating systems that are expected to exist on an end user's workstation (we treat these as implied exempt prerequisites). If, however, you want to actually include a runtime with your project then you do need a CQ. If you're not sure, ask the IP Team.
Note that the IP Policy was updated recently (the board approved the update on October 21) and we're in the process of updating our processes. My expectation is that many of the scenarios where "works with" CQs were previously required will not exist under the new policy. But for those scenarios where CQs are required, we'll need to keep existing processes in place. I owe an update on our progress to the committer community.
Wayne