Project

General

Profile

Actions

Patch #13927

open

Reduce coupling between plugins and the "plugins/" directory

Added by Jean-Baptiste Barth almost 11 years ago. Updated over 8 years ago.

Status:
New
Priority:
Normal
Category:
Plugin API
Target version:
Start date:
Due date:
% Done:

0%

Estimated time:

Description

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.


Related issues

Related to Redmine - Patch #14402: Plugin migration directory should use plugin directoryClosedJean-Philippe Lang

Actions
Related to Redmine - Patch #24007: Change plugins directory through the configuration.yml fileReopened

Actions
Related to Redmine - Patch #26139: Follow Gemfile's plugin loader as #24007ReopenedJean-Philippe Lang

Actions
Actions #1

Updated by Toshi MARUYAMA almost 11 years ago

The reason of moving "plugins" to "lib/plugins" is Rails3 prints deprecated warning.
See: r9533.

Actions #2

Updated by Toshi MARUYAMA almost 11 years ago

Toshi MARUYAMA wrote:

The reason of moving "plugins" to "lib/plugins" is Rails3 prints deprecated warning.
See: r9533.

Sorry, I posted unrelated matters.

I think Redmine plugin mechanism problem is how to deal assets.
Current Redmine disables asset pipeline.
source:trunk/config/application.rb@11786#L46

Actions #3

Updated by Jean-Baptiste Barth almost 11 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.

Actions #4

Updated by Florian Schwab over 10 years ago

Hi,

I added another issue a while back with a patch that extends this with the (at least in my opinion) missing support for migrations. -> #14402

Actions #5

Updated by Toshi MARUYAMA over 10 years ago

  • Related to Patch #14402: Plugin migration directory should use plugin directory added
Actions #6

Updated by Toshi MARUYAMA over 8 years ago

Jean-Baptiste Barth wrote:

Actually that's one problem in Redmine plugins, ...

FYI, OpenProject (GPL3, Redmine fork) uses plugin gem.
https://github.com/opf/openproject/blob/v4.2.2/doc/DEVELOP_PLUGINS.md

Actions #7

Updated by Mischa The Evil almost 7 years ago

  • Related to Patch #24007: Change plugins directory through the configuration.yml file added
Actions #8

Updated by Mischa The Evil almost 7 years ago

  • Related to Patch #26139: Follow Gemfile's plugin loader as #24007 added
Actions

Also available in: Atom PDF