discuss-gnustep
[Top][All Lists]
Advanced

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

Call for volunteers: Backporting mySTEP changes


From: Fred Kiefer
Subject: Call for volunteers: Backporting mySTEP changes
Date: Sat, 24 Mar 2007 10:59:56 +0100
User-agent: Thunderbird 1.5.0.10 (X11/20060911)

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 for each
of them somebody has to decide what to do best.
>From 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 into GNUstep. But even that will require
a substantial amount of work.

- Split up into separate files one for each class.
- Change the header into the standard GNUstep form. (Including the
copyright statement!)
- Reformat to conform with the GNUstep coding standards. (Richards tool
objctidy may help here, but it is now gone again)
- 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 (Already taken care of by Xavier Glattard)
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 may 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 (GNUstep often has different
values then Cocoa) we need to make sure to keep backward compatibility
when reading archives (initWithCoder: and encodeWithCoder:). See what I
did for NSTabView

This kind of methods may exist in almost all classes, even the ones I
already went through (see Changelog file for recent changes), although
in this case it is less likely.



3. Changes to GNUstep

mySTEP has a few corrections 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), but
don't expect any fast progress as I am working on some fundamental
problems with NSGrahicsContext first.

Cheers,
Fred






reply via email to

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