On 12/07/2012 03:06 PM, Dean Yu wrote:
As a user, I may not be aware of the interrelationships between plugins.
Nor should you need to be.
I could upgrade a
leaf plugin, which requires a newer version of a base plugin
I hope in this case the Jenkins plugin manager will force you to upgrade the
base plugin too; if not it is a bug.
which breaks compatibility with another leaf plugin.
It is unacceptable for the base plugin to change incompatibly to begin with.
(But if it is necessary on occasion to make a fresh start with a cleaned-up API, this is merely an inconvenience when that API lives in a plugin: you can make one with a
new name. Making such changes in core is not possible.)
As for "slimmer core", is there even agreement on what that means?
No, although historical API design mistakes are likely to limit how much could
be extracted without breaking compatibility anyway.
Jenkins does
not have a concept of code coverage, and you can see the disparate
behaviors of various code coverage report plugins because of this.
The problem in that case is not lack of a definition for this in core
specifically, but the lack of any effort to standardize it at all. Doing so in
a plugin would be fine.