Summer Of Code Ideas

From GNUstepWiki

(Difference between revisions)
Revision as of 07:39, 22 March 2008
Rfm (Talk | contribs)
General Improvements
← Previous diff
Revision as of 22:18, 30 March 2008
Qmathe (Talk | contribs)
Updated SoC ideas to take in account progresses done in the past year
Next diff →
Line 25: Line 25:
* We need NSTypeSetter, NSGlyphStorage, NSGlyphInfo, and NSGlyphGenerator implementations. If NSTypeSetter and NSLayoutManager were implemented, they would probably be used in Etoile. (Quentin Mathe) * We need NSTypeSetter, NSGlyphStorage, NSGlyphInfo, and NSGlyphGenerator implementations. If NSTypeSetter and NSLayoutManager were implemented, they would probably be used in Etoile. (Quentin Mathe)
* NSTextTable, NSTextTableBlock, NSTextList, & NSTextBlock implementations would also bring the GNUstep text system in line with that of Cocoa as of Mac OS 10.4. The classes could be useful to build a powerful word processor. (Quentin Mathe) * NSTextTable, NSTextTableBlock, NSTextList, & NSTextBlock implementations would also bring the GNUstep text system in line with that of Cocoa as of Mac OS 10.4. The classes could be useful to build a powerful word processor. (Quentin Mathe)
-* NSOpenGL Classes could be improved, made compatible with current Cocoa implementations, and further tested (Quentin Mathe)+* NSOpenGL Classes could be improved, made compatible with current Cocoa implementations, and further tested. Note sure about that anymore. Feedback from people using these classes would be useful? (Quentin Mathe)
-* NSBitmapImageRep formats: Currenly, we support only reading and writing for TIFF, read-only for GIF, JPEG, PNG, PNM. We would like to have write support for these NSBitmapImageRep categories. Afterwards, SVG reading, then write support, would be nice. (Quentin Mathe)+* NSBitmapImageRep formats: Currently, we support reading and writing for TIFF, GIF, JPEG, PNG, PNM (reading-only). We would like to complete NSEPSImageRep and NSPDFImageRep (with Cairo?). SVG reading and writing support, would be nice too. (Quentin Mathe)
-* NSDatePicker, NSLevelIndicator (and obligatory companion NSCell subclasses) implementations.+* NSDatePicker (and obligatory companion NSCell subclass) implementation.
-* NSFormatter isn't working very well at this time (Quentin Mathe)+* NSFormatter isn't working very well at this time. Not sure anymore about this one… (Quentin Mathe)
* Backend: especially xlib but also art could use performance improvements. NSImageView scrolling on xlib comes to my mind for example. (shouldn't improvements focus on the preferred, cairo backend rather than the deprecated ones?) * Backend: especially xlib but also art could use performance improvements. NSImageView scrolling on xlib comes to my mind for example. (shouldn't improvements focus on the preferred, cairo backend rather than the deprecated ones?)
* improve our RTF parser, to be able to correctly load OO and MS-Office created RTFs. Add support for reading NeXT RTFDs. Correct loading of Apple RTFs including char encoding * improve our RTF parser, to be able to correctly load OO and MS-Office created RTFs. Add support for reading NeXT RTFDs. Correct loading of Apple RTFs including char encoding
Line 34: Line 34:
=== Base === === Base ===
* Improve testsuite to have regression tests cover much more of base library. * Improve testsuite to have regression tests cover much more of base library.
-* NSDateComponents implementation.+* NSDateComponents & NSCalendar implementation.
-* NSCalendar implementation.+
-* Finish the NSPredicate implementation. This was partially done by Quentin Mathe, but is untested. The most important part is not done, which is to write a parser and lexer for the custom language used by NSPredicate. Also needed for this are NSComparisonPredicate, NSCompoundPredicate, and NSExpression implementations.+
* Test the NSXMLParser Cocoa class (both the native ObjC implementation and the wrapper around GSXML), (Nicola: it seems to work fine, but it would be nice to have regression tests). Once this is thoroughly tested, NSXMLDocument, NSXMLDTD, and NSXMLDTDNode, and NSXMLElement, and NSXMLNode implementations would be useful for compatibility. * Test the NSXMLParser Cocoa class (both the native ObjC implementation and the wrapper around GSXML), (Nicola: it seems to work fine, but it would be nice to have regression tests). Once this is thoroughly tested, NSXMLDocument, NSXMLDTD, and NSXMLDTDNode, and NSXMLElement, and NSXMLNode implementations would be useful for compatibility.
* Implement Apple's scripting/apple-events classes as a subproject of the base library. * Implement Apple's scripting/apple-events classes as a subproject of the base library.
Line 45: Line 43:
=== Core Data === === Core Data ===
-* Saso Kiselkov started implementing this [http://gscoredata.nongnu.org/ framework]. However, NSManagedObjectContext & NSPersistentStoreCoordinator have yet to be tackled according to his web page. Presumably NSPersistentDocument also needs to be implemented.+* Saso Kiselkov started implementing this [http://gscoredata.nongnu.org/ framework] and now hosted here [http://svn.gna.org/viewcvs/gnustep/libs/gscoredata/] as part of GNUstep. However, NSManagedObjectContext & NSPersistentStoreCoordinator have yet to be tackled according to his web page. Presumably NSPersistentDocument also needs to be implemented.

Revision as of 22:18, 30 March 2008

These are the ideas that were proposed as projects. This section is maintained for historical interest, and to aid planning for the Summer of Code 2008 (if it happens again). If you have a project that would be interesting for next year, feel free to add it here.


Contents

Porting

  • Port WebKit (using GCC 4.x with ObjC++ support). The WebKit team is willing to help whoever wants to take on this project, please see this email.
  • Fix ms-windows integration issues (in conjunction with general gui theming) ... focus and app activation/deactivation, taskbar integration (when an app is hidden/deactivated it should be represented as a single item in the taksbar), implementation of menus within each window. New features as dynamically selectable options.
  • Support for ms-windows native theming ... have a subclass of GSTheme for windows which detects changes in the native theme and matches them within gnustep apps.

General Improvements

  • Printing Support (make printing work consistantly. Test.)
  • MS Windows support (better integration in the MS Windows look and feel, especially the in-window-menu support, file dialogs, etc)
  • Finish input server support
  • Finish project center
  • Revamp Objective-C garbage collection and make it compatible with the Apple implementation
  • Cross-compilation from GNU/Linux to embedded devices
  • GNUstepWeb (add script language support, etc)
  • SimpleWebKit help development (event handling, better renderer, parsing quirks)
  • Screen change support ... handle resizing of the screen etc. It's now common to run in virtual machines or with multiple displays with different sizes, so we need to gracefully handle changes of screen size while an application is running.

AppKit

  • Complete theming support ... go through each control in the gui and make sure it draws itsself using the theming engine, adding methods to the theming engine as required. Update/improve Thematic.app to match by providing wysiwyg editine/cretion of themes for each control.
  • Modify save and open panel, and perhaps browsers, to support multiple roots as needed on ms-windows where the filesystem has multiple roots (eg D:\... or //host/...)
  • Fix focusing bugs/issues making sure GNUstep apps can be used with all window managers
  • Text System should be cleaned, profiled and finished. Many methods in NSLayoutManager are unfinished or unimplemented, so we currently cannot tweak the test system as much as the one provided by Cocoa. (Quentin Mathe)
  • We need NSTypeSetter, NSGlyphStorage, NSGlyphInfo, and NSGlyphGenerator implementations. If NSTypeSetter and NSLayoutManager were implemented, they would probably be used in Etoile. (Quentin Mathe)
  • NSTextTable, NSTextTableBlock, NSTextList, & NSTextBlock implementations would also bring the GNUstep text system in line with that of Cocoa as of Mac OS 10.4. The classes could be useful to build a powerful word processor. (Quentin Mathe)
  • NSOpenGL Classes could be improved, made compatible with current Cocoa implementations, and further tested. Note sure about that anymore. Feedback from people using these classes would be useful? (Quentin Mathe)
  • NSBitmapImageRep formats: Currently, we support reading and writing for TIFF, GIF, JPEG, PNG, PNM (reading-only). We would like to complete NSEPSImageRep and NSPDFImageRep (with Cairo?). SVG reading and writing support, would be nice too. (Quentin Mathe)
  • NSDatePicker (and obligatory companion NSCell subclass) implementation.
  • NSFormatter isn't working very well at this time. Not sure anymore about this one… (Quentin Mathe)
  • Backend: especially xlib but also art could use performance improvements. NSImageView scrolling on xlib comes to my mind for example. (shouldn't improvements focus on the preferred, cairo backend rather than the deprecated ones?)
  • improve our RTF parser, to be able to correctly load OO and MS-Office created RTFs. Add support for reading NeXT RTFDs. Correct loading of Apple RTFs including char encoding

Base

  • Improve testsuite to have regression tests cover much more of base library.
  • NSDateComponents & NSCalendar implementation.
  • Test the NSXMLParser Cocoa class (both the native ObjC implementation and the wrapper around GSXML), (Nicola: it seems to work fine, but it would be nice to have regression tests). Once this is thoroughly tested, NSXMLDocument, NSXMLDTD, and NSXMLDTDNode, and NSXMLElement, and NSXMLNode implementations would be useful for compatibility.
  • Implement Apple's scripting/apple-events classes as a subproject of the base library.
  • Complete separation of gnustep specific extensions from Apple APIs and implement new Apple methods missing from existing classes for compatibility.
  • Complete implementation of Apple's latest URL handling classes based on NSStream... testing on mswindows as well as unix.
  • Implement CoreFoundation on Base
  • Now that Apple have XML based keyed coding, implement a version of Distributed Objects to talk directly to Apple applications (Nicolaus has done some work towards this in mGSTEP).

Core Data

  • Saso Kiselkov started implementing this framework and now hosted here [1] as part of GNUstep. However, NSManagedObjectContext & NSPersistentStoreCoordinator have yet to be tackled according to his web page. Presumably NSPersistentDocument also needs to be implemented.


Misc

  • Create a AJAX Framework for GNUstepWeb
  • There's a truck load of stuff in WO 5.4.1 that GNUstepWeb is missing: [5]
  • Create Objective-C bindings for DBUS