Project

General

Profile

task #30

Issue recurring not compatible with additionals / additional_tags

Added by jwalkerbg over 3 years ago. Updated 11 months ago.

Status:
closed
Priority:
feature
Assignee:
Target version:
Redmine version:
unspecified

Description

When using together this plugin (Issue recurring) with the plugins

a stack overflow error occurs when copying an issue. I made an issue in the guthub page of additional_tags project (https://github.com/AlphaNodes/additional_tags/issues/6). It seems the problem is in the method of realization of copy_from method. The methods should be the same, but in this case they are different.

More information is given in https://github.com/AlphaNodes/additional_tags/issues/6 and https://github.com/AlphaNodes/additionals/issues/71#issuecomment-591290491


Token votes

History

#1 Updated by cryptogopher about 3 years ago

Thank you for reporting. I wasn't even aware that such kind of problem even exists.

My understanding of the problem is that different plugins can use at least 2 different methods to override (patch) existing code (in this case: Issue#copy_from method). These methods are:
1. alias_method - like additional_tags plugin does (https://github.com/AlphaNodes/additional_tags/blob/master/lib/additional_tags/patches/issue_patch.rb)
and
2. prepend + super - like additionals and issue_recuring plugins do source:lib/issue_recurring/issue_patch.rb@2d1ffc87.

The problem is that all plugins have to patch the same code using same method consistently - otherwise problem occurs.

The question is: what kind of action do you expect from me? Whichever method of overriding issue_recurring uses, it will be incompatible with one of your other plugins. Moreover, according to this comment https://github.com/AlphaNodes/additionals/issues/71#issuecomment-591290491, prepend + super is considered preferred way of overriding code. Changing it to alias_method in issue_recurring would be a step back.

#2 Updated by cryptogopher about 3 years ago

  • Status changed from new to feedback

#3 Updated by cryptogopher about 3 years ago

  • Status changed from feedback to in progress

Ok, I patched the code for you to be able to run it along with additional_tags.

You just need to make sure you're running latest issue_recurring version and replace the file in your installation with: source:lib/issue_recurring/issue_patch.rb@issue30

I'm providing this patch only for transitory period, until other plugins update to prepend+super. I won't be actively updating it. If issue_recurring will upgrade in the meantime and you still need this patch and want to upgrade as well - let me know here. I'm not closing this ticket for some time.

Keep in mind though that - due to nature of the problem - even after applying this patch you can run into issues with different plugins (that don't use alias_method and override Issue#copy_from) and there is nothing we can do about it :/

#4 Updated by jwalkerbg about 3 years ago

Thank you very much for this patch. I applied it and then copy issue was successful. Indeed, a tend to use as few plugins as it is possible, and this is because of avoiding compatibility problems. I use additionals because it is used by another plugin - additional_tags. Redmine lacks core tagging system and we have to use third party plugins fer that functionality.

#5 Updated by kepi about 2 years ago

Just to let you know, same issue is with ixti/redmine_tags and fortunately same fix works. Thanks!

#6 Updated by cryptogopher 11 months ago

  • Status changed from in progress to closed

#7 Updated by admin 11 months ago

  • Priority changed from support to feature

#8 Updated by admin 11 months ago

  • Tracker changed from 2 to task
  • Target version set to unspecified
  • Redmine version set to unspecified

Also available in: Atom PDF