Project

General

Profile

Plugins » History » Version 98

Terence Mill, 2012-08-05 18:51

1 1 Jean-Philippe Lang
h1. Plugins
2
3 85 Mischa The Evil
h2. Plugin list
4
5
A full list of available Redmine plugins can be found at the "Plugin Directory":/plugins.
6
7 89 Sergey Kolchenko
More plugins (some in very early development), which are not listed at the "Plugin Directory":/plugins but are publicly available on "GitHub":http://github.org, can be found using a "search like this":http://github.com/search?type=Repositories&language=&q=redmine&repo=&langOverride=&x=0&y=0&start_value=1.
8 85 Mischa The Evil
9 1 Jean-Philippe Lang
h2. Installing a plugin
10
11 88 Jean-Philippe Lang
1. Copy your plugin directory into @#{RAILS_ROOT}/plugins@ (Redmine 2.x) or @#{RAILS_ROOT}/vendor/plugins@ (Redmine 1.x). If you are downloading the plugin directly from GitHub, you can do so by changing into your plugin directory and issuing a command like @git clone git://github.com/user_name/name_of_the_plugin.git@.
12 1 Jean-Philippe Lang
13 81 Jean-Philippe Lang
2. If the plugin requires a migration, run the following command to upgrade your database (make a db backup before):
14 1 Jean-Philippe Lang
15 82 Anton Hedström
  rake db:migrate_plugins RAILS_ENV=production
16 1 Jean-Philippe Lang
17 81 Jean-Philippe Lang
3. Restart Redmine
18 1 Jean-Philippe Lang
19 30 Jean-Philippe Lang
You should now be able to see the plugin list in _Administration -> Plugins_ and configure the newly installed plugin (if the plugin requires to be configured).
20 1 Jean-Philippe Lang
21 83 Tony Marschall
h2. Uninstalling a plugin
22
23
1. If the plugin required a migration, run the following command to downgrade your database (make a db backup before):
24
25 1 Jean-Philippe Lang
  rake db:migrate:plugin NAME=plugin_name VERSION=0 RAILS_ENV=production
26
27 88 Jean-Philippe Lang
2. Remove your plugin from the plugins folder: @#{RAILS_ROOT}/plugins@ (Redmine 2.x) or @#{RAILS_ROOT}/vendor/plugins@ (Redmine 1.x)..
28 61 Mischa The Evil
29 80 Jean-Philippe Lang
3. Restart Redmine
30 38 Mischa The Evil
31 16 Jean-Philippe Lang
h2. Writing plugins
32 1 Jean-Philippe Lang
33 73 Mischa The Evil
There is a step-by-step [[Plugin_Tutorial|tutorial]] about writing a plugin. Some more (detailed) information is collected and stored in the "[[Plugin_Internals|plugin internals]]" page.
34 77 Felix Schäfer
More (general) developer information can be found in the [[Guide#Developer-guide|Redmine Developer Guide]].
35 92 Terence Mill
36 94 Terence Mill
h2. Migrating Plugins
37 92 Terence Mill
38 94 Terence Mill
There are changes in Plugins API or new Rails requirements which need to be considered if you want to use plugin from prior version of redmine.
39
In any case it's proposed to update and migrate redmine core system first without plugins and then if stable try to drop in one by one, to know where problems come from if any.
40 93 Terence Mill
41 95 Terence Mill
Consideration towards plugins which *overwrite views* completly because of bad coding style or there is no "hook" available shall be made in any case. Maybe you can collect and write down plugin references here which are of this type.
42 93 Terence Mill
43
Let's start with..
44
45 96 Terence Mill
* "Redmine_blocks":/plugins/redmine_blocks
46 93 Terence Mill
47
48 92 Terence Mill
h3. Redmine 1.3 > 1.4
49
50
* routes.rb which defines url to controller (parameter, action) mapping must be created in <plugin>/config/routes.rb
51
* @ARCondition@ is gone with no replacement
52
* @TabularFormBuilder@ is now @Redmine::Views::LabelledFormBuilder@
53
* defining your own context menus now requires @helper :context_menus@ in the respective controller
54
* of course, @returning@ is deprecated in favor of @tap@
55
* if you're doing anything with repos check it twice, because there can be multiple repos now per project
56 97 Jan from Planio www.plan.io
* @Project#visible_by@ is deprecated and replaced by @Project#visible_condition@
57 92 Terence Mill
58
h3. Redmine 1.4 > 2.x
59 98 Terence Mill
60
h3. "Writing plugins compatible with both Redmine 1.x and 2.x - some tips":/boards/3/topics/31445