Summer Of Code 2009

From GNUstepWiki

(Difference between revisions)
Revision as of 13:07, 10 March 2009
Qmathe (Talk | contribs)
Added David Chisnall as a mentor
← Previous diff
Revision as of 09:00, 11 March 2009
Rfm (Talk | contribs)

Next diff →
Line 23: Line 23:
** Windows support ** Windows support
** Compare current API with Leopard's (Mac OS X 10.5) API, indicate which classes are missing, and summarize the current status of the existing ones, then work to complete them... ;) The best would be to have a tool which parses all headers (both from Cocoa and GNUstep) and outputs differences in HTML (XML probably too by the way). This would summarize missing classes, missing or partially implementated methods in existing classes and GNUstep-specific extensions. Eventually we should include links to the related documentation on both GNUstep and Cocoa web sites. ** Compare current API with Leopard's (Mac OS X 10.5) API, indicate which classes are missing, and summarize the current status of the existing ones, then work to complete them... ;) The best would be to have a tool which parses all headers (both from Cocoa and GNUstep) and outputs differences in HTML (XML probably too by the way). This would summarize missing classes, missing or partially implementated methods in existing classes and GNUstep-specific extensions. Eventually we should include links to the related documentation on both GNUstep and Cocoa web sites.
 +** Garbage Collection ... get this working reliably for all classes in the base library (mostly done already) and then make the gui and back libraries support garbage collection too.
** Craft a system which allows to distribute GNUstep to the various packaging systems (rpm, debian, ports, etc.) on various distributions (Ubuntu, Red Hat, FreeBSD, etc.) with a snap and without knowledge of the specific packaging system. This system should be able to distribute GNUstep libraries, and existing or new applications written with it. The user should be able to choose how often this is done: on request, on each release, on in regular intervals, tracking a source code repository. Ideally, changes to the library/app's sources are minimized and/or calculated at runtime. ** Craft a system which allows to distribute GNUstep to the various packaging systems (rpm, debian, ports, etc.) on various distributions (Ubuntu, Red Hat, FreeBSD, etc.) with a snap and without knowledge of the specific packaging system. This system should be able to distribute GNUstep libraries, and existing or new applications written with it. The user should be able to choose how often this is done: on request, on each release, on in regular intervals, tracking a source code repository. Ideally, changes to the library/app's sources are minimized and/or calculated at runtime.
 +
 +* '''Foundation'''
 +** Update the main class/API coverage to match OSX 10.5 by implementing the missing NSXML classes (for tree-based XML processing and XSLT etc) and the NSOperation class (leave the scripting classes as a separate task).
 +** CoreFoundation ... implement the CoreFoundation API as an extension of the base library so that Apple code which uses it can easily be ported.
 +** Implement the apple scripting classes and produce example/test programs and utilities/tools for scripting using those classes from applescript and/or an objective-c like scripting language. Supporting applescript would be good for OSX compatibility. Supporting objective-c scripting would be great for GNUstepWeb.
 +** Implement a version of distributed objects binary compatible with the Apple implementation by using keyed archiving (work on NIB support means that the keyed archiving is now basically binary compatible) and my using Nicolas' work on NSSocketPort etc in mySTEP (he says that his port implementation is binary compatible with OSX). This would let GNUstep applications communicate directly with cocoa applications.
* '''AppKit''' * '''AppKit'''
-** Themes for GNUstep. This includes coming up with a general concept for the handling of AppKit subclasses in themes, the moving of all drawing code from the GUI classes into theme methods, replacing all hard coded panels with Gorm/NIB files and as the prove of the concept a native Windows theme (Or at least one theme that looks sufficiently different from standard GNUstep).+** Themes for GNUstep. This includes coming up with a general concept for the handling of AppKit subclasses in themes, the moving of all drawing code from the GUI classes into theme methods, replacing all hard coded panels with Gorm/NIB files and as the proof of the concept a native Windows theme (Or at least one theme that looks sufficiently different from standard GNUstep).
Line 57: Line 64:
* Quentin Mathé * Quentin Mathé
* David Chisnall * David Chisnall
 +* Richard Frith-Macdonald

Revision as of 09:00, 11 March 2009

Contents

Summer Of Code 2009

The Summer Of Code is a Google program that offers student developers stipends to create new freely available programs or to help currently established projects. It would be an excellent opportunity for GNUstep to fund some developments.

We need more mentor(s) to manage the volunteers… More infos on the SoC FAQ


Joint Application

The idea of a joint application for GNUstep, Étoilé, GAP and OpenGroupware.org has been brought up. A lot of the projects that were accepted last year were joint applications (e.g. GNU, GNOME, KDE), so it might improve our chances. Please discuss!


GNUstep Ideas

Here are some ideas -- Feel free to add more


  • General Improvements
    • Windows support
    • Compare current API with Leopard's (Mac OS X 10.5) API, indicate which classes are missing, and summarize the current status of the existing ones, then work to complete them... ;) The best would be to have a tool which parses all headers (both from Cocoa and GNUstep) and outputs differences in HTML (XML probably too by the way). This would summarize missing classes, missing or partially implementated methods in existing classes and GNUstep-specific extensions. Eventually we should include links to the related documentation on both GNUstep and Cocoa web sites.
    • Garbage Collection ... get this working reliably for all classes in the base library (mostly done already) and then make the gui and back libraries support garbage collection too.
    • Craft a system which allows to distribute GNUstep to the various packaging systems (rpm, debian, ports, etc.) on various distributions (Ubuntu, Red Hat, FreeBSD, etc.) with a snap and without knowledge of the specific packaging system. This system should be able to distribute GNUstep libraries, and existing or new applications written with it. The user should be able to choose how often this is done: on request, on each release, on in regular intervals, tracking a source code repository. Ideally, changes to the library/app's sources are minimized and/or calculated at runtime.


  • Foundation
    • Update the main class/API coverage to match OSX 10.5 by implementing the missing NSXML classes (for tree-based XML processing and XSLT etc) and the NSOperation class (leave the scripting classes as a separate task).
    • CoreFoundation ... implement the CoreFoundation API as an extension of the base library so that Apple code which uses it can easily be ported.
    • Implement the apple scripting classes and produce example/test programs and utilities/tools for scripting using those classes from applescript and/or an objective-c like scripting language. Supporting applescript would be good for OSX compatibility. Supporting objective-c scripting would be great for GNUstepWeb.
    • Implement a version of distributed objects binary compatible with the Apple implementation by using keyed archiving (work on NIB support means that the keyed archiving is now basically binary compatible) and my using Nicolas' work on NSSocketPort etc in mySTEP (he says that his port implementation is binary compatible with OSX). This would let GNUstep applications communicate directly with cocoa applications.
  • AppKit
    • Themes for GNUstep. This includes coming up with a general concept for the handling of AppKit subclasses in themes, the moving of all drawing code from the GUI classes into theme methods, replacing all hard coded panels with Gorm/NIB files and as the proof of the concept a native Windows theme (Or at least one theme that looks sufficiently different from standard GNUstep).




Étoilé Ideas

Take a look at Étoilé Open Projects page.


GAP Ideas

Feel to add ideas…


OpenGroupware.org Ideas

Feel free to add ideas…


Mentors

  • Quentin Mathé
  • David Chisnall
  • Richard Frith-Macdonald


Students

- t.b.a.