gnustep-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Call for volunteers: Backporting mySTEP changes


From: Yen-Ju Chen
Subject: Re: Call for volunteers: Backporting mySTEP changes
Date: Thu, 8 Mar 2007 10:38:02 -0800

On 3/8/07, Fred Kiefer <address@hidden> wrote:
I would like to send this mail to the discussion list, but want to
gather comments on it from you first.

On the FOSDEM we agreed that it would be great to un-fork mySTEP. This
surely will be a long process, but there are some easy steps that we may
already take now. The first one is to try to backport changes done by
Nikolaus Schaller in mySTEP AppKit to GNUstep gui. As both libraries
have evolved separately for many years, we are talking about a huge
amount of changes here. All of them need to be investigated and somebody
has to decide what to do best for each of them.

 It sounds (a) good project(s) for Summer of Code.

 Yen-Ju

For a licence point of view there is no problem in taking over Nikolaus
code. He has signed a copyright assignment to the FSF and agreed to have
his changes merged back into GNUstep. The mySTEP source can be found at
http://www.quantum-step.com/download/sources/

As this really is a huge task, I would like to split it up between
different developers. taking over a few of these changes could be a nice
way to get started with GNustep. If you are willing to work on this, I
can provide you with all the details you need. Before somebody starts on
this, we need to make sure that we have a copyright assignment from
him/her, otherwise we would have to investigate each change to see if
there was more involved than just copying.


I can see different type of changes that need to be addressed:

1. New MacOSX classes in mySTEP

These could just be taken over to GNUstep. But even that will require a
substantial amount of work.

- Split up into separate files for each class.
- Change the header into the standard GNUstep form.
- Reformat to conform with the GNUstep coding standards. (Richards tool
objctidy may help here)
- Check each method (name, parameters and implementation) and, if
possible, add to the implementation.
- Document the limitations in the header file

Header files in mySTEP:
NSAnimation.h
NSColorSpace.h
NSDatePicker.h
NSDatePickerCell.h
NSFontDescriptor.h
NSGlyphGenerator.h
NSLevelIndicator.h
NSLevelIndicatorCell.h
NSPersistentDocument.h
NSSegmentedCell.h
NSSegmentedControl.h
NSShadow.h
NSSpeechRecognizer.h
NSSpeechSynthesizer.h
NSStatusBar.h
NSStatusItem.h
NSTextList.h
NSTextTable.h
NSTokenField.h
NSTokenFieldCell.h
NSTreeController.h
(I even my have missed a few)



2. New MacOSX methods to existing classes

Quite often it is just possible to directly add these new methods to the
GNUstep header and implementation files. Of course, adopting the
formatting in the process :-)

When adding the method to the header, we have to add the proper version
specific macro around it. That way the new method will only be visible
when the correct version of the AppKit is requested.
In some cases it is advisable to change other methods as well to make
use of the new ones.
When changing ivars or enumerator types we need to make sure to keep
backward compatibility when reading archives.

This kind of methods may exist in almost all classes, even the one I
already went through, although in this case it is less likely.



3. Changes to GNUstep

mySTEP has a few correction and additions to methods that are already
implemented in GNUstep. We should try to extract as much of these as
possible. On the other hand have we fixed a lot of bugs in GNUstep since
the fork. We don't want to loose these fixes. Quite often there are also
two independent implementations of methods in GNUstep and mySTEP, so no
benefit may be gained by merging them.

This surely is the hardest case and should be done very carefully.

I plan to work on NSWindow, NSEvent and NSMenu next (in this order).

Cheers,
Fred


_______________________________________________
Gnustep-dev mailing list
address@hidden
http://lists.gnu.org/mailman/listinfo/gnustep-dev





reply via email to

[Prev in Thread] Current Thread [Next in Thread]