[wiki:WikiStart Back] = Remote Events = [wiki:remoteevents#Abstract Abstract][[BR]] [wiki:remoteevents#Concept Concept of Remote Events][[BR]] [wiki:remoteevents#Implementation Some word on Implementation][[BR]] [wiki:remoteevents#Using Using Remote Event][[BR]] == Abstract == Especially for Free Software it is very common to reuse the code someone else has already written. This might lead you into the situation where your software gets broken because of a defect in some shared library you use in you software. So it is not uncommon that several defects in your software or incidents on the customers side, does have the same underlying problem. Depending on how complicated this defect is, you might write a patch for that and send it upstream and you are fine. But often you do not have the time or expertise for doing so and the only thing you can do is waiting that the defect will be fixed in upstream. Here is a small graphic of a typical situation in our customer support: [[Image(http://www.irlaender.de/projects/fast/remote_event_vor.png, 450, align=center)]][[BR]] ''(Picture: Multiple issues in roundup depend on issues in upstream )'' So you might several issues open which are blocked by this single defect which causes the Problem. The lesser issues you have in your tracker the more easy it is to keep track of changes on the process of fixing this blocker on upstream. You need to visit the upstream tracker and keep an eye on what is happening there. It is easy to imagine that this is getting more complicated with every additional defect. Remote Events help you to manage this situation. == Concept == Remote Events can keep track on changes in other information sources like other trackers. At the time of writing the following information sources are supported: '''Supported Sources''' * Debian-Tracker * KDE-Tracker * of course other Roundup Trackers Remote Events can be attached to your issues in the roundup tracker to keep track of the process on the remote side. So you can create a Remote Event for a defect in a shared library of KDE in the KDE-Tracker and attach it to all your issues in the roundup tracker which depends on this Remote Event. Remote Event provide basic information on the issue on the other side: * Status of the issue * Priority * Owner * Creation Date * last activity * other tracker specific fields This way you can see the most important information on the process of the Remote Event at one glance. '''You do not need to visit the upstream tracker anymore to get this information - you can now keep your focus on your issues in the roundup tracker'''. Further you can configure the Remote Events in the way that all users in the nosylist get informed automatically as the Remote Event detects a change on the remote site. You can also add change-notes and TimeLogs to Remote Events, to add you own information which will be shared among all issues which embedds this Remote Event. == Implementation == Remote Events are implemented as an extension of roundup. They're a bunch of classes which comes as a separate module and are located in the extension directory of your tracker. It should be very easy to add other information Sources than the few mentioned above. [[Image(http://www.irlaender.de/projects/fast/remote_event_class_uml_easy.png, 450, align=center)]][[BR]] ''(Picture: Class diagram of the Remote Events )'' Extracting the information out of the remote information sources is done by parsing, but if there is a better way to extract the information it is easy to write your own extraction algorithm. In case of parsing [http://http://www.crummy.com/software/BeautifulSoup/ BeautifulSoup] is used. I tried to abstract the interface to the underlying database (roundup), so in general it should be possible the adopt Remote Events to other trackers by writing your own database interface. == Using == Here are some notes how to use Remote Events. === Creating new Remote Events === Creating new Remote Events is as easy as creating new issues. Somewhere between the issues attributes and the messages list on the issues item page you will find a small link saying "New remote Event". By clicking on this link you should get a form similar to the one shown in the following screenshot. [[Image(http://www.irlaender.de/projects/fast/new_remote_event.png, 450, align=center)]][[BR]] ''(Picture: Form for creating new Remote Events )'' Here you set which kind of Remote Event you want to create and how it should behave: * There is a selection field for chosing whether you want a Tracker or another information source * You need to specify which kind of tracker you want to observe * Of course you will need to provide the URL how to locate the issue on the remote side * There is a checkbox to choose if users in the nosylist of the event should be notified if the remote event changes * And finally you can set the callback interval which defines in which periods the Remote Event will be checked for changes After you added the Remote Event it will be listed as you can see inthe following screenshot. Beside some basic information on the Remote Event it also gives some information on its configuration e.g the age of the cache. [[Image(http://www.irlaender.de/projects/fast/list_remote_event.png, 450, align=center)]][[BR]] ''(Picture: Expanded Remote Event providing some basic information )'' === Adding existing Remote Event to an issue === As same as for the nosylist you can easily add already existing Remote Events to an Issue by opening the little class-helper window. [[Image(http://www.irlaender.de/projects/fast/add_remote_event.png, 450, align=center)]][[BR]] ''(Picture: Adding existing Remote Events to an issue )'' === Removing Remote Events === See "Adding existing Remote Events". === Changing Behaviour of Remote Events === On the Remote Event's item page you can configure the behaviour of the remote event. You will basically find the same field as you already used while creating a new Remote Event. But you have some further options which should be self-explanantory. [[Image(http://www.irlaender.de/projects/fast/detail_remote_event.png, 450, align=center)]][[BR]] ''(Picture: Editing a Remote Event )'' === Adding Messages and Timelogs to Remote Events === Remote Events also support changenotes and TimeLogs. This is useful to document the process related to this remote event in all issues this Remote Event is attached to. Adding timelogs to the Remote Event gives you the option to charge your spent time on this on mutliple issues.