Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Shall the mylyn plugin support redmine backlog? #7

Open
giamma opened this issue Apr 4, 2013 · 12 comments
Open

Shall the mylyn plugin support redmine backlog? #7

giamma opened this issue Apr 4, 2013 · 12 comments

Comments

@giamma
Copy link
Contributor

giamma commented Apr 4, 2013

Hi,

this is to inform you (or invite you) about this discussion: http://forum.redminebacklogs.net/Why-backlog-does-not-use-redmine-custom-fields-td4025735.html

I believe that backlog is a pretty good free solution for scrum and I would really love this project to work seamlessly with it.

Changes could be implemented in this project to support backlog (and if you decide to do so, I am willing to help) but my understanding is that in its current state redmine-mylyn-plugin would already support backlog if only backlog used redmine custom fields.

What do you think?

@ljader
Copy link
Owner

ljader commented Apr 4, 2013

Hi,
Providing support for usefull and interesting plugins, as redmine backlog appears to be, is definitely on 'roadmap' so I'm open for suggestions.

One note: in your forum post you wrote:

Another solution may consist in forking the redmine mylyn plugin to make it support the extra backlog fields.

Do you mean ruby side of redmine-eclipse integration - redmine-mylyn-connector ?

@giamma
Copy link
Contributor Author

giamma commented Apr 5, 2013

Hi,

no, I was referring to this project.

My understanding is that the current eclipse plug-ins are able to support all built-in redmine issue fields (because they are hard-coded in a Java enumeration) as well as custom fields. I believe, but I may be wrong, that redmine offers an API to enquiry about the custom fields of a project and their respective data types, and that thanks to that API the eclipse plugin is able to support them automagically. Of course, I may be wrong, and the serve-side redmine plugin you mentioned may be the one who offers information about the custom fields. Actually, I have no clue about the purpose of the redmine plugin.

I had a very quick look at the source code of this project, and at first sight it seems that standard redmine issue fields are listed in the net.sf.redmine_mylyn.core.RedmineAttribute enumeration. Then, class net.sf.redmine_mylyn.core.RedmineTaskTadaHandler is the starting point for understanding how the plug-in instructs mylyn about those fields.

Not knowing if this set of plugins already provide some feature/api/extension-point for customization, and assuming that presently it does not offer anything like that, in order to support redmine_backlog, I can imagine three options:

  1. hardcode the backlog fields in the RedmineAttribute enumeration, as if they were standard redmine fields, and add some logic where appropriate to ensure they do not show up unless the redmine server is really using backlog
  2. refactor the eclipse plugin to introduce an extension point that allows contributors to define extra fields, and provide an optional backlog-specific eclipse plug-in that uses the new extension point to provide support for backlog
  3. a variation of the previous, it may be possible to use OSGi Weaving (org.osgi.framework.hooks.weaving.WeavingHook, http://www.slideshare.net/mfrancis/bytecode-weaving) to modify the RedmineAttribute enumeration before its loaded by the OSGi classloader, for example using Javassist. In such case it may be possible to provide an additional plug-in that is backlog specific, that enhances at load-time RedmineAttribute to add the fields required by backlog, as if they were written in the original source code. Similar to option 2, but does not require an extension point, and is better than 1 because the change is not applied unless the extra plugin is installed.

What do you think?
Giamma.

@giamma
Copy link
Contributor Author

giamma commented Apr 8, 2013

Hi,

meanwhile I got in contact with one of the backlog contributor and on his suggestion I opened this issue backlogs/redmine_backlogs#896

Whichever way we use to support backlog, an API is needed to obtain the list of valid values for the "release" field added by backlog.

@giamma
Copy link
Contributor Author

giamma commented Apr 12, 2013

I opened this additional feature request backlogs/redmine_backlogs#903

@giamma
Copy link
Contributor Author

giamma commented Apr 26, 2013

Hi,

it seems that a little subset of redmine backlogs configuration will have to be duplicated in the eclipse preferences, see backlogs/redmine_backlogs#903 (comment)

At present, issue backlogs/redmine_backlogs#896 remains the main show stopper for implementing a better support for backlogs in this Eclipse plug-in.

@giamma
Copy link
Contributor Author

giamma commented May 28, 2013

Hi,

I spent a couple of hours making some changes for supporting redmine-backlogs in this Eclipse plug-in.

Changing the issue data model to include the "story points" and "release" attributes that are added by redmine-backlogs was easy.
I also easily extended the graphical editor to enable editing of the two attributes above.

However, when testing the REST client used by redmine-mylyn-plugin to connect to redmine I realised that it is not using the default redmine REST API for fetching issue information.
In fact, it's calling http://SERVER_NAME/mylyn/issues/list?issues=ISSUE_NUMBER which is an additional REST API added to the server by the redmine mylyn connector plug-in.

So, no matter that redmine-backlogs adds the two fields above to the redmine issue datamodel and makes sure that they appear in the standard redmine REST api; redmine-mylyn-plugin will never get them unless those fields are also known by the server side redmine mylyn plug-in.

Unluckily I don't know ruby, and I don't have enough free time to learn it in the near future. Is there someone who is willing to help me by changing the server-side mylyn connector plugin to support the two fields above added by backlog? Alternatively, I could try to make two calls for each issue and to merge the data.

Redmine-backlogs still lacks an API to get the list of existing releases, but I could temporarily workaround this issue by calling the HTML page and parsing its content using http://jsoup.org/

Giamma.

@damiencuvillier
Copy link

Hello Giamma.

I'm using currently the mylyn plugin and I use Redmine mainly for scrum usage, so I use the backlog every time.
It works great.... with a partial fix.

I do not know where to post my patched zip...
Ask me if you need it & want to try it ?

Regards

@giamma
Copy link
Contributor Author

giamma commented May 28, 2013

Hello Damien

could you please elaborate a bit more about the partial fix ? Also, are you referring to the eclipse plug-in or the redmine plug-in ?

thanks
Giamma.

@damiencuvillier
Copy link

I've patched a few weeks ago a short thing (I do not remember exactly what) in the Eclipse Plugin.

@giamma
Copy link
Contributor Author

giamma commented May 28, 2013

The plugin in its current state works for me.

However it does not support two extra issue attributes added by backlog: story points and release. So at present I am forced to open the Web interface to edit those fields. My goal is to extend the plugin to be able to edit those fields within Eclipse.

@damiencuvillier
Copy link

No need on my side on these fields.
Where did you find a working copy of Eclipse plugin ?

To make it work with redmine 2.3, I had to patch it manually.

@giamma
Copy link
Contributor Author

giamma commented May 28, 2013

Built from sources.

Anyhow, this is a bit off topic. Let's try to keep this discussion focused on how to extend the Eclispe plugin to better support redmine backlogs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants