Today plugins are just directories in <redmine root>/plugins/
directory. There are a few implicit assumptions in Redmine code that this is the case, which doesn't add much benefit I think. This reference is needed in the plugin discovery mechanism, but I can see obvious reasons why it may appear anywhere else.
It has at least one disadvantage: it prevents from easily distributing plugins as gems or via an other mechanism (which I think has a long list of advantages that I could enumerate an other day).
An other motivation is that removing this would lead to clearer code I think, we could remove some Dir.glob
and File.xxx
calls in favor of new, clear methods in Redmine::Plugin
.
I'll try to work on that and link commit to this issue.