Reduce coupling between plugins and the "plugins/" directory
|Assignee:||Jean-Baptiste Barth||% Done:|
|Target version:||Unplanned backlogs|
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
File.xxx calls in favor of new, clear methods in
I'll try to work on that and link commit to this issue.
#2 Updated by Toshi MARUYAMA about 6 years ago
Toshi MARUYAMA wrote:
The reason of moving "plugins" to "lib/plugins" is Rails3 prints deprecated warning.
Sorry, I posted unrelated matters.
I think Redmine plugin mechanism problem is how to deal assets.
Current Redmine disables asset pipeline.
#3 Updated by Jean-Baptiste Barth about 6 years ago
Actually that's one problem in Redmine plugins, but I have a few dozen others I could talk about. Re-enabling the asset pipeline can be done today in a standard Redmine plugin but it's a bit hacky and rough around the edges (see this plugin for a proof-of-concept). I'll write about plugin concerns and some proposals in a blog post soon.
#6 Updated by Toshi MARUYAMA about 4 years ago
Jean-Baptiste Barth wrote:
Actually that's one problem in Redmine plugins, ...
FYI, OpenProject (GPL3, Redmine fork) uses plugin gem.