Hi!

On Tuesday 10 February 2009, Roy Qu wrote:
> Good article!
> I wish thomas could make some spare time to make a roadmap / feature plan,
> then
> we could see if there is anything we can do to help push the development of
> rkward forward.

Point taken. Problem is, there is no real roadmap. You'll find an unsorted 
collection of planned features in the TODO-file, and the feature request 
tracker. But here's a short list of the major areas that I think should be 
dealt with, next:

1. Make (a) new release(s). This is definitely step 1 of any roadmap. Pretty 
important to get the recent fixes out into the world, soon. What needs to be 
done is basically:
        - Make sure, the ChangeLog is complete
        - update .po files, if available
        - Add Roy in the credits (main.cpp)
        - Create test release
        - Test
        - Create final release
        - Write some short notes for
                - rkward.sf.net
                - apps.kde.org
                - freshmeat.net
                - rkward mailing lists
        - If possible, update the debian-files

Creating (test-) releases is fairly easy for KDE4: Just run the makedist.sh 
script with the version name as parameter. For KDE3 there is a long and 
illogic procedure to follow. It's probably much easier to me to just do it, 
than to explain it, so I'll try to find the time, soon. For KDE4, it would be 
great if somebody could give it a try, so you'll be able to jump in again in 
the future. If (when) you run into problems like lack of permissions or 
whatever, just ask - I'll try not to take too long in responding.

2. Create a Windows-port. I think it is important to address this in the not 
too distant future, but it probably isn't the most reward task to get started 
with. If you do feel like giving it a try, the main steps are:
        - (Get a KDE development environment running on your Windows box)
        - There is quite some platform dependent stuff in the startup code of R 
(much 
of it for no good reason, it seems). Cope with that in rembedinternal.cpp.
        - Review the code for system specifics, esp. bash commands (grepping 
for 
QProcess / KProcess should show the places in question), and perhaps path 
separators in some places.
        - Find a solution for the graph windows. This may well be the most 
difficult 
step, though it should be solvable somehow. Perhaps at first, the 
whole "windowcatching" mechanism would need to be disabled in order to make 
the rest of rkward compile.

3. Plugins / Scripting: We've touched the subject in the past: The plugin 
system needs better scripting. The likely candidate would be QtScript. This 
task will need to be addressed very carefully, since design decisions at this 
point will be very hard to change later on. I think this task can roughly be 
divided into the following steps:
        - Create a QtScript-thing which basically does what the PHP-script 
engine 
does - i.e. generate the preprocess / calculate / printout code-segments when 
called from C++.
                - As a first test, implement the color-picker mini-component 
with this 
engine. Watch out for potential performance issues in the graphing plugins.
        - Expand the solution to allow manipulation of "component-properties" 
from 
the script. I.e. create a replacement for the cumbersome "logic"-section of 
current plugins. At this point it is important not to add too much. The main 
point to consider is to enforce keeping the plugins as modular as possible. 
Esp. it should be impossible (or a least very hard) for a plugin to 
manipulate a plugin it is embedded in, or that it embeds.
                - To test the design and implementation, try to re-implement 
the 
plot-options component with this solution. At this point, extensive review of 
the design should follow.
        - Finally, allow creating complex GUI-elements by QtScript. The 
important 
point to keep in mind is once again to keep things modular: Such GUI-elements 
should be embeddable by other plugins, and should be re-used as much as 
possible.
                - Sample implementations might be: A chi-square-table input 
tool, a more 
elaborate color picker complete with color wheel, etc.

4. Plugins / Development process: The most important area of growth in rkward 
will need to be the plugins. By now we have a good hand full of people who 
know how to create plugins. What we really lack is a good review process. 
There are still a number of plugins waiting for inclusion, and we need to 
make some progress at this point. For now, I propose something along these 
lines: Create a table (in the wiki or somewhere else) with the plugins as 
lines, and several columns:
        - Usability / Layout of the GUI
        - Correctness / readability of plugin .xml
        - Correctness / readability of plugin .php / script
        - Correctness / readability of generated R code
        - Correctness / readability of output
        - Correctness / readability of help page
        - Overall correctness (of calculation / does the right thing)
Before inclusion in an official release, each column should be signed off by 
at least one reviewer (other than the plugin author), the "overall 
correctness" column by at least two reviewers. It should be considered good 
practice to have two signatures in each of the columns, though, and as many 
as possible in the "overall correctness" column.
Very complex plugins may need to be divided into several portions (rows). The 
main idea behind this suggestion is that the review-process should be more 
formalised, and at the same time divided into more managable small tasks.
Of course all of this is entirely up to discussion, and can be adjusted as we 
go, but I think we should give it a try. If you want to help, the first step 
is to create such a table in the wiki, list the plugins needing review, start 
reviewing, and ask others for help, where needed.

5. Plugins / Automation / Testing: It would be great to be able to invoke 
rkward plugins (with certain settings) automatically, from R code. This 
should be quite possible to implement. Eventually this could / should be 
extended to allow automated testing of existing plugins.

6. Better help integration:
        - Integrate more R help ressources into rkward (vignettes, R wiki, 
etc.).
        - Make rkward-help pages searchable, preferrably using a common search 
interface with the R help search.

7. Internationalization:
        - Find a good solution to make plugins and plugin help pages 
translatable. 
Probably you will need to discuss with i18n-experts (from KDE or elsewhere).

8. Create editors for more R data structures, esp. matrices, and vectors, and 
add support for R data types such as dates. Particularily vectors should be 
relatively easy to implement on top of the existing editor-code, and will add 
a lot of value to users.

Ok, those are the "main" points, I can think of right now, but of course they 
do not need to be addressed in this particular order (except perhaps point 
1). Also, there are many, many small things worth addressing, so if there is 
an itch that needs scratching, go ahead and scratch.

Regards,
Thomas

Attachment: signature.asc
Description: This is a digitally signed message part.

------------------------------------------------------------------------------
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
_______________________________________________
RKWard-devel mailing list
RKWard-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rkward-devel

Reply via email to