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. 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 [email protected] http://lists.gnu.org/mailman/listinfo/gnustep-dev
