Project

General

Profile

Actions

Patch #31110

closed

Raise an exception if the plugin directory name differs from the plugin id

Added by Mizuki ISHIKAWA over 5 years ago. Updated over 2 years ago.

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

0%

Estimated time:

Description

If the plugin directory name and the plugin id are not the same, the plugin will not work because the required files will not be read.


Example:

If you change the directory name of redmine_vividtone_my_page_blocks plugin to redmine-vividtone-my-page-blocks, the following log will be output and it will not work well.

Partial "my/blocks/new_issues" missing for block "new_issues" found in admin (id=1) preferences
Partial "my/blocks/neglected_issues" missing for block "neglected_issues" found in admin (id=1) preferences
Partial "my/blocks/doing_issues" missing for block "doing_issues" found in admin (id=1) preferences

The problem is hard to solve because you can not notice that the wrong directory name is the cause of the problem.


I think I should raise an exception if there is no directory with the same name as the plugin id.
I attached a patch for that.


Files


Related issues

Related to Redmine - Feature #31538: Allow a plugin to be installed in the directory different from the plugin idNew

Actions
Actions #2

Updated by Go MAEDA over 5 years ago

  • Target version set to Candidate for next major release

Thank you for posting the patch. I think it would be even better if the exception has a more informative message like the following. With this message, an admin easily understands that he should rename the directory.

Plugin not found. The plugin #{p.id} should be installed in #{p.directory}.
Actions #3

Updated by Go MAEDA over 5 years ago

  • Target version changed from Candidate for next major release to 4.1.0
Actions #4

Updated by Mizuki ISHIKAWA over 5 years ago

I corrected the error message to include the directory name.

Actions #5

Updated by Akiko Takano over 5 years ago

+1 Nice work, quite helpful!

Actions #6

Updated by Go MAEDA over 5 years ago

  • Status changed from New to Closed
  • Assignee set to Go MAEDA

Committed the patches. Thank you for your contribution.

Actions #7

Updated by Go MAEDA over 5 years ago

  • Related to Feature #31538: Allow a plugin to be installed in the directory different from the plugin id added
Actions #8

Updated by luigifab ! over 2 years ago

Since the following piece of code was added:

      unless File.directory?(p.directory)
        raise PluginNotFound, "Plugin not found. The directory for plugin #{p.id} should be #{p.directory}." 
      end

This prevent Redmine plugins packed into Gem (example https://rubygems.org/gems/redmine_apijs for Redmine < 5) to work with Redmine 4.1+. It was working with Redmine 3.x and 4.0.

By removing it, this work with Redmine 4.1 / 4.2 / 5.0.

Actions #9

Updated by Mizuki ISHIKAWA over 2 years ago

luigifab ! wrote:

Since the following piece of code was added:

[...]

This prevent Redmine plugins packed into Gem (example https://rubygems.org/gems/redmine_apijs for Redmine < 5) to work with Redmine 4.1+. It was working with Redmine 3.x and 4.0.

By removing it, this work with Redmine 4.1 / 4.2 / 5.0.

Thanks for sharing the issue.
The exception occurred because the plugin directory is located in /usr/local/bundle/gems/redmine_apijs-6.9.0 when using the redmine_apijs plugin as you mentioned.

Actions #10

Updated by Go MAEDA over 2 years ago

luigifab ! wrote:

Since the following piece of code was added:

[...]

This prevent Redmine plugins packed into Gem (example https://rubygems.org/gems/redmine_apijs for Redmine < 5) to work with Redmine 4.1+. It was working with Redmine 3.x and 4.0.

By removing it, this work with Redmine 4.1 / 4.2 / 5.0.

Since this issue is closed and the change has already been delivered, please open a new issue.

Actions

Also available in: Atom PDF