Thanks, Ian. That's a great explanation. But I'm wondering what it means in the context of the EPP features that bring together all the features in a package. From that perspective, I'd almost think they are includes and not requires. No?
There are a few differences. I don't know if I've got them all correct, but I'll give it a shot (please correct me if I'm wrong).
Build time differences:
Required means that the following features will be needed for the install to proceed, but not packaged with the feature. For example, if I 'require' SWT in my feature, my feature won't actually ship with SWT. This is not really needed anymore because my
UI bundle likely has a dependency on SWT (which essentially means the same thing).
Included features means that the feature will actually be pulled down and shipped as part of the feature.
p2 (Installation) Differences.
Requires allows you to set a range. My 'Awesome C++ Analysis tool' requires the CDT version [8.0 - 9.0). It won't work will less than 8.0, and I don't support it on 9.0 and above. I don't ship CDT as part of my feature, but it needs to be there.
Included features means my Feature is expecting (and shipping) an exact version of CDT. So, for C/C++ EPP SR0 (June 2012) we likely want to indicate an 'exact' version of the CDT that ships. This means that in 10 years, if someone wants to re-create
that version, it's easy (since the versions are baked into the features).
Cheers,
_______________________________________________ epp-dev mailing list
epp-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/epp-dev