Commits

Ronald Oussoren  committed 1fbc964

More prerelease documentation work:
- Merge what's left of BUGS and FIXME into Doc/TODO
- INSTALL -> Install.txt, with some updates
- Rewrite ReadMe.txt, move older readmes to HISTORIC.txt (that used to be
README-OLD.txt)
- Rewrite ReadMe in the installer, modified version of the main ReadMe.
- Update version in Description.plist
- make_distrib.py makes sure that we'll install the HTML version of the
documentation and includes HTML version of the documentation in the
source tarball.
- Doc/{warts, libffi, architecture}.txt: Minor updates for 0.9.

  • Participants
  • Parent commits 82b75ff
  • Branches pyobjc-ancient

Comments (0)

Files changed (19)

File BUGS

-THIS LIST DOES NOT CLAIM COMPLETENESS.
-
-==> Status indicators: (-) not fixed; (*) fixed; (?) not sure.
-
-What?!? You have the solution for one of these points? Run the Mailer!
-======================================================================
-
-Problems that are difficult to solve
-------------------------------------
-
-(-) Does not handle calls with variable number of arguments.  (This is
-actually impossible to completely fix without reimplementing *all* of
-the logic behind the methods that take varargs;  i.e. reimplementing
-everything necessary to deal with +stringWithFormat: or
-+arrayWithObjects: type API-- two very different beasts [bbum]). 
-
-Known portability problems
---------------------------
-
-(?) GNU runtime support is currently non-existant.  We need volunteers
-with GNU runtime expertise to move this forward.  Either that, or a
-recipe for working with the pure-GNU runtime on OS X.
-
-(?) When WITH_FOUNDATION is not defined (it is only when using the GNU
-Runtime, and will be on OpenStep), Objective-C objects are not
-retained nor released, so the code may access freed objects.
-
-(?) GNUstep Base wants the main function of the application be
-``gnustep_base_user_main''. NSProcessInfo implements its own ``main''
-function to initialize internal copies of arguments and environ,
-then calls gnustep_base_user_main(). We have to patch pythonrun.c for
-this. 
-
-Others
-------
-
-(-) Sending ObjC messages from multiple threads does not currently work.
-    See Docs/TODO.
-
-Missing
--------
-
-(-) It is impossible to pass a reference to an NSString object into
-    the python runtime such that the fact that it remains an
-    NSString.  As such, it is impossible to invoke NSString specific
-    methods directly.
 Support beyond that requires someone that actually tries to perform the 
 port to GNUstep (and after that maintains it). 
 
+Support for MacOS X 10.1
+.......................
+
+We also do not support MacOS X 10.1, again because nobody seems to care enough
+to perform (and maintain) the port. 
+
 Support for libFFI
 ..................
 
 It might be usefull to add default implementations of ``encodeWithCoder:`` and
 ``initWithCoder:`` methods to Python subclasses of Objective-C classes that 
 implement these.
+
+Build cleanups
+..............
+
+The contents of MANIFEST are no longer valid. We should move to a generated 
+MANIFEST (using MANIFEST.in).
+
+Known issues
+............
+
+It is impossible to support methods with a variable number of arguments in the
+generic code (you have to reimplement allmost all of the logic of these 
+methods in order to know how many and which types of arguments are expected).
+Luckily there are not many varargs methods and most (if no all) of them can
+be easily avoided.
+
+
+

File Doc/architecture.txt

 ------------
 
 This document gives a (brief) description of how the PyObjc package is 
-structured.
+structured. Too bad this document is outdated and incomplete...
 
 Objective-C classes and objects
 -------------------------------

File Doc/coding-style.txt

 :URL: http://pyobjc.sourceforge.net/
 :copyright: 2002 The PyObjC Project
 
-.. note:: This document is a work in progress and does *not* describe the existing
-   code.
-
 .. contents::
 
 Introduction
 
         # Author: David Goodger
         # Contact: goodger@users.sourceforge.net
-        # Revision: $Revision: 1.2 $
-        # Date: $Date: 2003/01/10 12:20:34 $
+        # Revision: $Revision: 1.3 $
+        # Date: $Date: 2003/04/03 20:20:43 $
         # Copyright: This module has been placed in the public domain.
 
 (2) Add a module level variable that indicates that ReST is used to format

File Doc/libffi.txt

-============
-Using LibFFI
-============
+========================
+Using LibFFI with PyObjC
+========================
 
 :author: Ronald Oussoren
 
-PyObjC can optionally use libffi to dynamicly call into Objective-C. This is
-an experimental extention. It is expected that a future version of the bridge
-will require the use of libffi.
+PyObjC uses libffi to dynamicly call into Objective-C. We use libffi instead of
+NSInvocation because the former makes it possible to call superclass methods,
+and to generate stubs for use in Objective-C method tables on the fly.
 
-LibFFI makes it unnecessary to build lists of method signatures that might be
-used, and significantly reduces the size of the PyObjC extension. In the 
-future libFFI may also be used to replace existing method defitions on pure 
-Objective-C classes and to add new methods to existing pure Objective-C classes.
-
-To enable libFFI support:
-
-- Build and install libffi 2.x, this is only available from a source
-  distribution of GCC.  Do **NOT** use the version from sources.redhat.com,
-  it doesn't support MacOS X at all.  The version I used (december 2002) 
-  doesn't allow you to build a shared library on MacOSX. This is not a 
-  problem, we don't want one anyway.
-
-- Edit setup.py:
-
-  * Change the 'if 0:' before a definition of LIBFFI_CFLAGS to 'if 1:'.
-
-  * Change the definition of 'LIBFFI_BASE' to the proper value 
-    (probably /usr/local)
-
-- Remove the directory 'build'
-
-- Rebuild PyObjC.
+It is currently possible to build a non-ffi build of PyObjC, but that is not
+supported and will be removed as we use features from libffi to further 
+improve the brigde.

File Doc/warts.txt

 Odd features
 ============
 
+.. :author: Ronald Oussoren
+
 The mapping from Objective-C onto Python is almost complete, but the following
 things should be kept in mind:
 
 - Objective-C only has single inheritance. You can use multiple inheritance in
-  the python code, but only to mix in 'fully python' classes.
+  the python code, but only to mix in 'fully python' classes. Do *not* use 
+  multiple inheritance, this feature may not survive beyond 0.9.
 
 - In objective-C it is valid to call methods on nil, these calls will be
   ignored. The nil 'object' is mapped to None and None will not ignore method

File Doc/wrapping.txt

 How to wrap an Objective-C class library
 ========================================
 
-.. This file is formatted using the rules for StructuredText
+.. :author: Ronald Oussoren
 
 Introduction
 ------------
 
 The code for loading a framework and exporting its classes is pretty simple::
 
-   import Foundation
-   _clslist = Foundation.load_bundle('/path/to/MyFramework.framework')
-   _gl = globals()
-   for _cls in _clslist:
-   	gl[_cls.__name__] = _cls 
-   del _clslist, _cls, _gl, Foundation
+   import objc
+   objc.loadBundle("MyFramework", globals(), 
+      bundle_path='/path/to/MyFramework.framework')
+   del objc
 
 If your class library does not require helper functions for some methods this
 is all that is needed.

File FIXME

-* [ronald] MallocDebug.app causes a crash in pyobjc (Try running TableModel in
-   MallocDebug)
-
-* [ronald] Restructure header files in Modules/objc
-
-* [ronald] Contents MANIFEST is no longer valid
-  [bbum] Anyway to move to a MANIFEST.in and have most of MANIFEST be
-  autogenerated?  It is a nightmare to maintain, as is.
-
-* [ronald] NSAutoreleasePool raises an exception when you use
-  'retain'. NSInvocation    calls 'retain' on the receiver (at least in
-  the way we use it...)
-
-  Luckily users normally don't have to create an autorelease pool.
-
-  [bbum] Not true.  Anyone using PyObjC to build shell script like
-  functionality will need to   create an autorelease pool at the
-  beginning of the script to avoid lots of warnings about leaking
-  objects.
-
-* [ronald] pyobjc-0.6.1 and earlier contain some code that is questionable in
-  newer releases of Python. Need to check if all code, and repair where 
-  necessary.

File HISTORIC.txt

+This file contains the contents of some older README files and is mostly of
+historic interest. Sometime we'll convert this into a more interesting read.
+
+
+
+
+If you are reading this from the PyObjC disk image that contains the Installer
+package, simply Install the package and look in /Developer/Examples/PyObjC.
+
+Documentation is pretty imcomplete at the moment, look in 
+/Developer/Documentation/PyObjC for the documentation we have.
+
+The PyObjC package provides the glue needed to interface the Python interpreter with the Objective-C language. The 'objc' module makes Objective-C objects and classes available as first-class Python citizens, it is not only possible to use Objective-C objects but you can also subclass Objective-C classes.
+
+If you are installing from the Installer package, it also installs a Project Builder template for building Python based Cocoa applications.  Once installed, create a new "Cocoa-Python Application" project in Project Builder.  The newly created project includes an application delegate implementation and a simple set of Cocoa controls-- i.e. it provides a complete example of how to build a Cocoa application using Python and the PyObjC bridge.
+
+The latest information can always be found at:
+
+    http://pyobjc.sourceforge.net/
+
+b.bum
+bbum@codefab.com
+12-Oct-2002
+
+History:
+
+Ronald Oussoren <oussoren@cistron.nl> rewrote most of the module in 2002.  Ronald made it possible to subclass Objective-C classes from Python and added nearly complete support for the Foundation, the AppKit and the AddressBook frameworks.
+
+In the fall of 2002, Bill Bumgarner<bbum@codefab.com> added support for non-Framework builds of python.  Ronald and Bill subsequently added support for the Apple supplied build of Python.   Bill created the Project Builder template that allows for building standalone Cocoa applications that are implemented in Project Builder.
+
+Steve Majewski <sdm7g@minsky.med.virginia.edu> and Bill Bumgarner <bbum@codefab.com> picked up Lele's work in early November, 2000. Steve significanlty improved compatibility with OS X.
+
+Lele Gaifax built the original module which dates back to September 1996.  Lele's original list of contributors/motivators was as follows:
+
+I should say "Grazie" to many persons that made this possible, but to some in particular:
+
+Guido van Rossum <guido@CNRI.Reston.VA.US>:
+  Long list of motivation omitted ;-)
+
+Thomas Breuel <tmb@best.com>:
+  He first inspired me with good ideas.
+
+Ted Horst <ted_horst@il.us.swissbank.com>:
+  His own ObjC module and kind comments helped me a lot.
+
+Bill Bumgarner <bbum@friday.com>:
+        He contribuited the standalone packaging setup, good comments and his own implementation of the Streams and Pasteboards support. He  maintained also several Python-related packages for NeXTSTEP: see <ftp://ftp.thoughtport.net/pub/next/lang> [long gone;  see http://www.friday.com/software/python/]
+
+...and of course to the entire ObjC-SIG community.
+
+Older README
+------------
+
+The PyObjC package provides the glue needed to interface the Python
+interpreter with the Objective-C language. The 'objc' module makes Objective-C
+objects and classes available as first-class Python citizens, it is not only
+possible to use Objective-C objects but you can also subclass Objective-C 
+classes.
+
+The package maintainers currently only work on supporting MacOS X, the GNU
+runtime and GnuStep are not supported at the moment (patches to change that 
+are welcome).
+
+The python situation on MacOS X is a bit vague at the moment, PyObjC is known
+to work using the following versions of python:
+- Fink's python 2.2 
+  Building GUI applications requires some manual work, mostly because I
+  (ronald) primary use a private build of a development snapshot of Python 2.3
+- Python 2.3 (from CVS)
+  If you use a framework build it is easy to build python based standalone 
+  GUI applications (see Examples/iClass).
+- Apple's python 2.2 on 10.2
+  Same issues as Finks's python 2.2. 
+
+----
+Older README:
+
+Steve Majewski <sdm7g@minsky.med.virginia.edu> picked up Lele's work
+in early November, 2000 and revived an otherwise stagnant project.
+
+Steve and I have since collaborated-- working out several kinks in
+building the module on OSX,OSX Server under with Python 2.0.
+
+This is, by no means, a work that is anywhere near complete!
+
+There will be a SourceForge process as soon as possible.  Until then,
+send me-- bbum@codefab.com-- email to find the latest statest and be
+added to a mailing list if SourceForge doesn't come through soon.
+
+b.bum
+bbum@codefab.com
+
+----
+
+Original README:
+
+The ObjC package provides the glue needed to interface the Python
+interpreter with the Objective-C language.
+
+My effort went in two direction: first of all, let the user use a
+syntax similar to the Objective-C native one: x.alloc().init() is
+the Python way of doing [[x alloc] init]; secondly, the module should
+support the GNU Objective-C runtime as well as the NeXTSTEP one.
+The first is there, the second... almost: it needs to be tested,
+since my current situation does not let me try it.
+
+The current implementation has bugs, the major of them in the handling
+of methods returning big structures by value. See BUGS.
+
+Wanna cooperate? Starts from FIXME.
+
+You can find visible user changes in NEWS For more
+details, consult ChangeLog. 
+
+For build instructions, read INSTALL. It contains instruction
+to build the manual section too.
+
+The package comes with some examples/demos: you can find them in the
+Demo/ directory.
+
+
+I should say "Grazie" to many persons that made this possible, but to
+some in particular:
+
+Guido van Rossum <guido@CNRI.Reston.VA.US>:
+        Long list of motivation omitted ;-)
+
+Thomas Breuel <tmb@best.com>:
+        He first inspired me with good ideas.
+
+Ted Horst <ted_horst@il.us.swissbank.com>:
+        His own ObjC module and kind comments helped me a lot.
+
+Bill Bumgarner <bbum@friday.com>:
+        He contribuited the standalone packaging setup, good comments and
+        his own implementation of the Streams and Pasteboards support. He
+        maintains also several Python-related packages for NeXTSTEP: see
+        <ftp://ftp.thoughtport.net/pub/next/lang>.
+
+and of course to the entire ObjC-SIG community.
+
+Copyright (C) 1996,97,98 by Lele Gaifax <lele@seldati.it>
+

File INSTALL

-=========================
-Installation Instructions
-=========================
-
-.. :author: Bill Bumgarner
- 
-Building the Module
-===================
-
-The module uses the distutils package included with Python 2.0 and
-beyond.   This package provides a single interface for building and
-packaging the module.   To see usage documentation for the module,
-issue the ``--help`` command::
-
-  % python setup.py --help
-
-To see an inventory of building and packaging commands, issue the
-command::
-
-  % python setup.py --help-commands
-
-The following command will build and install the pyobjc module::
-
-  % python setup.py install
-
-The setup.py system can also be used to create source and binary
-distribution archives automatically.
-
-Use ``sudo`` to install the pyobjc module into a the Apple supplied
-python's site-packages directory on OS X 10.2 and greater:
-
-% sudo python setup.py install
-
-If you have multiple versions of python installed on your system, the
-above will only install pyobjc for whatever version of python is the
-default on the command line.   Make sure you are installing python
-against the correct version of python.
-
-This package makes use of a recent version libffi (
-http://sources.redhat.com/libffi). You'll have to install that first. A version
-of libffi that is known to work is available from the files section of PyObjC
-at sourceforge.net.
-
-Examples
-========
-
-The examples directory contains a number of projects that demonstrate
-various features of the PyObjC bridge. The scripts at the top level of
-the examples directory were mostly written to test a particular
-feature of the bridge (or document a bug until a fix could be found).
-
-CurrencyConverter and TableModel are both examples of standalone
-Cocoa-Python applications.  To build and execute::
-
-  % cd TableModel
-  % python buildapp.py build
-
-The WebServicesTool and TableModel2 are both examples of Cocoa-Python
-applications created via the Cocoa-Python project template found in
-the ``Project Templates`` directory.  Use Project Builder to build the
-applications.
-
-Project Templates
-=================
-
-The ``Project Templates`` directory contains project templates for
-project builder.  Currently, there is one project builder template;  a
-Cocoa-Python Application project template.   When installed, this adds
-a project to Project Builder's project menu that allows new Cocoa
-applications implemented entirely in Python to be created from within
-Project Builder (in the same fashion as any other project).
-
-To install, simply copy the project template into the Project Builder
-project templates directory (or create a symlink).
-
-More information on project templates can be found in the Project
-Builder documentation and/or release notes.
+=========================
+Installation Instructions
+=========================
+
+.. :authors: Bill Bumgarner, Ronald Oussoren
+ 
+Building the package
+====================
+
+If you're using the sources from CVS you should first download a copy of 
+libffi from `the PyObjC download site`_.  Extract this in a convenient location
+and update the variable ``LIBFF_SOURCES`` at the top of setup.py.  The released
+version of PyObjC includes a compatible version of libffi.
+
+.. _`the PyObjC download site`: http://sourceforge.net/project/showfiles.php?group_id=14534
+
+
+PyObjC is build and installed using the distutils package included with Python
+2.0 and beyond.  This package provides a single interface for building and
+packaging the module.   To see usage documentation for the module,
+issue the ``--help`` command::
+
+  % python setup.py --help
+
+To see an inventory of building and packaging commands, issue the
+command::
+
+  % python setup.py --help-commands
+
+The following command will build and install the pyobjc module::
+
+  % python setup.py install
+
+The setup.py system can also be used to create source and binary
+distribution archives automatically.
+
+Use ``sudo`` to install the pyobjc module into a the Apple supplied
+python's site-packages directory on OS X 10.2 and greater:
+
+% sudo python setup.py install
+
+If you have multiple versions of python installed on your system, the
+above will only install pyobjc for whatever version of python is the
+default on the command line.   Make sure you are installing python
+against the correct version of python.
+
+Examples
+========
+
+The examples directory contains a number of projects that demonstrate
+various features of the PyObjC bridge. The scripts at the top level of
+the examples directory were mostly written to test a particular
+feature of the bridge (or document a bug until a fix could be found).
+
+CurrencyConverter and TableModel are both examples of standalone
+Cocoa-Python applications.  To build and execute::
+
+  % cd TableModel
+  % python buildapp.py build
+
+The WebServicesTool and TableModel2 are both examples of Cocoa-Python
+applications created via the Cocoa-Python project template found in
+the ``Project Templates`` directory.  Use Project Builder to build the
+applications.
+
+Project Templates
+=================
+
+The ``Project Templates`` directory contains project templates for
+project builder.  Currently, there is one project builder template;  a
+Cocoa-Python Application project template.   When installed, this adds
+a project to Project Builder's project menu that allows new Cocoa
+applications implemented entirely in Python to be created from within
+Project Builder (in the same fashion as any other project).
+
+To install, simply copy the project template into the Project Builder
+project templates directory (or create a symlink).
+
+More information on project templates can be found in the Project
+Builder documentation and/or release notes.

File Installer Package/Resources/Description.plist

 	<key>IFPkgDescriptionTitle</key>
 	<string>PyObjC</string>
 	<key>IFPkgDescriptionVersion</key>
-	<string>0.7.0</string>
+	<string>0.9</string>
 </dict>
 </plist>

File Installer Package/Resources/License.txt

 (This is the MIT license)
 
-Copyright 2002 - Bill Bumgarner, Ronald Oussoren, Steve Majewski, Lele Gaifax, et.al.
+Copyright 2002, 2003 - Bill Bumgarner, Ronald Oussoren, Steve Majewski, Lele Gaifax, et.al.
 
  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
 

File Installer Package/Resources/ReadMe.txt

 The PyObjC package provides the glue needed to interface the Python interpreter with the Objective-C language. The 'objc' module makes Objective-C objects and classes available as first-class Python citizens, it is not only possible to use Objective-C objects but you can also subclass Objective-C classes.
 
-If you are installing from the Installer package, it also installs a Project Builder template for building Python based Cocoa applications.  Once installed, create a new "Cocoa-Python Application" project in Project Builder.  The newly created project includes an application delegate implementation and a simple set of Cocoa controls-- i.e. it provides a complete example of how to build a Cocoa application using Python and the PyObjC bridge.
+This package also installs modules that provide convenient access to (most of)
+the Foundation and AppKit frameworks. This makes it easy to build Cocoa 
+applications in Python. 
+
+Other than the python modules the installer also installs Project Builder templates, some examples (in /Developer/Examples/PyObjC) and documentation (in /Developer/Documentation/PyObjC).
 
 The latest information can always be found at:
 
     http://pyobjc.sourceforge.net/
 
-b.bum
-bbum@codefab.com
-12-Oct-2002
-
-History:
-
-Ronald Oussoren <oussoren@cistron.nl> rewrote most of the module in 2002.  Ronald made it possible to subclass Objective-C classes from Python and added nearly complete support for the Foundation, the AppKit and the AddressBook frameworks.
-
-In the fall of 2002, Bill Bumgarner<bbum@codefab.com> added support for non-Framework builds of python.  Ronald and Bill subsequently added support for the Apple supplied build of Python.   Bill created the Project Builder template that allows for building standalone Cocoa applications that are implemented in Project Builder.
-
-Steve Majewski <sdm7g@minsky.med.virginia.edu> and Bill Bumgarner <bbum@codefab.com> picked up Lele's work in early November, 2000. Steve significanlty improved compatibility with OS X.
-
-Lele Gaifax built the original module which dates back to September 1996.  Lele's original list of contributors/motivators was as follows:
-
-I should say "Grazie" to many persons that made this possible, but to some in particular:
-
-Guido van Rossum <guido@CNRI.Reston.VA.US>:
-  Long list of motivation omitted ;-)
-
-Thomas Breuel <tmb@best.com>:
-  He first inspired me with good ideas.
-
-Ted Horst <ted_horst@il.us.swissbank.com>:
-  His own ObjC module and kind comments helped me a lot.
-
-Bill Bumgarner <bbum@friday.com>:
-        He contribuited the standalone packaging setup, good comments and his own implementation of the Streams and Pasteboards support. He  maintained also several Python-related packages for NeXTSTEP: see <ftp://ftp.thoughtport.net/pub/next/lang> [long gone;  see http://www.friday.com/software/python/]
-
-...and of course to the entire ObjC-SIG community.
-
+b.bum			Ronald Oussoren
+bbum@codefab.com	oussoren@cistron.nl
 (This is the MIT license)
 
-Copyright 2002 - Bill Bumgarner, Ronald Oussoren, Steve Majewski, Lele Gaifax, et.al.
+Copyright 2002, 2003 - Bill Bumgarner, Ronald Oussoren, Steve Majewski, Lele Gaifax, et.al.
 
  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
 
-BUGS
 ChangeLog
+Doc/index.txt
+Doc/index.html
 Doc/architecture.txt
+Doc/architecture.html
 Doc/classes.txt
+Doc/classes.html
 Doc/coding-style.txt
+Doc/coding-style.html
 Doc/intro.txt
+Doc/intro.html
 Doc/libffi.txt
+Doc/libffi.html
 Doc/structure.txt
-Doc/TODO
+Doc/structure.html
+Doc/TODO.txt
+Doc/TODO.html
 Doc/users.txt
+Doc/users.html
 Doc/warts.txt
+Doc/warts.html
 Doc/website.lst
 Doc/wrapping.txt
+Doc/wrapping.html
 Examples/00ReadMe.txt
 Examples/addressbook.m
 Examples/addressbook.py
 Examples/WebServicesTool/WST.png
 Examples/WebServicesTool/WSTApplicationDelegateClass.py
 Examples/WebServicesTool/WSTConnectionWindowControllerClass.py
-FIXME
-INSTALL
+Install.txt
+Install.html
 Installer Package/Resources/Description.plist
 Installer Package/Resources/License.txt
 Installer Package/Resources/ReadMe.txt
 Project Templates/Cocoa-Python-ObjC Application/HueView.h
 Project Templates/Cocoa-Python-ObjC Application/HueView.m
 Project Templates/Cocoa-Python-ObjC Application/MyAppDelegate.py
-README-OLD.txt
+HISTORIC.txt
 ReadMe.txt
+ReadMe.html
 Scripts/buildpkg.py
 Scripts/clean-install
 Scripts/CodeGenerators/00README.txt
 libffi-src/src/x86/unix64.S
 libffi-src/src/x86/win32.S
 libffi-src/stamp-h.in
+Doc/tutorial
+Doc/tutorial/step12-src
+Doc/tutorial/step12-src/CurrencyConverter.py
+Doc/tutorial/step12-src/MainMenu.nib
+Doc/tutorial/step12-src/MainMenu.nib/classes.nib
+Doc/tutorial/step12-src/MainMenu.nib/info.nib
+Doc/tutorial/step12-src/MainMenu.nib/objects.nib
+Doc/tutorial/step3-MainMenu.nib
+Doc/tutorial/step3-MainMenu.nib/classes.nib
+Doc/tutorial/step3-MainMenu.nib/info.nib
+Doc/tutorial/step3-MainMenu.nib/objects.nib
+Doc/tutorial/step4-CurrencyConverter.py
+Doc/tutorial/step5-CurrencyConverter.py
+Doc/tutorial/step8-CurrencyConverter.py
+Doc/tutorial/tutorial.txt
+Doc/tutorial/tutorial.html

File README-OLD.txt

-The PyObjC package provides the glue needed to interface the Python
-interpreter with the Objective-C language. The 'objc' module makes Objective-C
-objects and classes available as first-class Python citizens, it is not only
-possible to use Objective-C objects but you can also subclass Objective-C 
-classes.
-
-The package maintainers currently only work on supporting MacOS X, the GNU
-runtime and GnuStep are not supported at the moment (patches to change that 
-are welcome).
-
-The python situation on MacOS X is a bit vague at the moment, PyObjC is known
-to work using the following versions of python:
-- Fink's python 2.2 
-  Building GUI applications requires some manual work, mostly because I
-  (ronald) primary use a private build of a development snapshot of Python 2.3
-- Python 2.3 (from CVS)
-  If you use a framework build it is easy to build python based standalone 
-  GUI applications (see Examples/iClass).
-- Apple's python 2.2 on 10.2
-  Same issues as Finks's python 2.2. 
-
-----
-Older README:
-
-Steve Majewski <sdm7g@minsky.med.virginia.edu> picked up Lele's work
-in early November, 2000 and revived an otherwise stagnant project.
-
-Steve and I have since collaborated-- working out several kinks in
-building the module on OSX,OSX Server under with Python 2.0.
-
-This is, by no means, a work that is anywhere near complete!
-
-There will be a SourceForge process as soon as possible.  Until then,
-send me-- bbum@codefab.com-- email to find the latest statest and be
-added to a mailing list if SourceForge doesn't come through soon.
-
-b.bum
-bbum@codefab.com
-
-----
-
-Original README:
-
-The ObjC package provides the glue needed to interface the Python
-interpreter with the Objective-C language.
-
-My effort went in two direction: first of all, let the user use a
-syntax similar to the Objective-C native one: x.alloc().init() is
-the Python way of doing [[x alloc] init]; secondly, the module should
-support the GNU Objective-C runtime as well as the NeXTSTEP one.
-The first is there, the second... almost: it needs to be tested,
-since my current situation does not let me try it.
-
-The current implementation has bugs, the major of them in the handling
-of methods returning big structures by value. See BUGS.
-
-Wanna cooperate? Starts from FIXME.
-
-You can find visible user changes in NEWS For more
-details, consult ChangeLog. 
-
-For build instructions, read INSTALL. It contains instruction
-to build the manual section too.
-
-The package comes with some examples/demos: you can find them in the
-Demo/ directory.
-
-
-I should say "Grazie" to many persons that made this possible, but to
-some in particular:
-
-Guido van Rossum <guido@CNRI.Reston.VA.US>:
-        Long list of motivation omitted ;-)
-
-Thomas Breuel <tmb@best.com>:
-        He first inspired me with good ideas.
-
-Ted Horst <ted_horst@il.us.swissbank.com>:
-        His own ObjC module and kind comments helped me a lot.
-
-Bill Bumgarner <bbum@friday.com>:
-        He contribuited the standalone packaging setup, good comments and
-        his own implementation of the Streams and Pasteboards support. He
-        maintains also several Python-related packages for NeXTSTEP: see
-        <ftp://ftp.thoughtport.net/pub/next/lang>.
-
-and of course to the entire ObjC-SIG community.
-
-Copyright (C) 1996,97,98 by Lele Gaifax <lele@seldati.it>
-
-If you are reading this from the PyObjC disk image that contains the Installer
-package, simply Install the package and look in /Developer/Examples/PyObjC.
+=================
+Welcome to PyObjC
+=================
 
-Documentation is pretty imcomplete at the moment, look in 
-/Developer/Documentation/PyObjC for the documentation we have.
+.. :authors: Ronald Oussoren, Bill Bumgarner
 
-The PyObjC package provides the glue needed to interface the Python interpreter with the Objective-C language. The 'objc' module makes Objective-C objects and classes available as first-class Python citizens, it is not only possible to use Objective-C objects but you can also subclass Objective-C classes.
+The PyObjC package provides the glue needed to interface the Python interpreter with the Objective-C language. At its core is the ``objc`` module makes 
+Objective-C objects and classes available as first-class Python citizens, it is 
+not only possible to use Objective-C objects but you can also subclass 
+Objective-C classes.
 
-If you are installing from the Installer package, it also installs a Project Builder template for building Python based Cocoa applications.  Once installed, create a new "Cocoa-Python Application" project in Project Builder.  The newly created project includes an application delegate implementation and a simple set of Cocoa controls-- i.e. it provides a complete example of how to build a Cocoa application using Python and the PyObjC bridge.
+To make it easier to use the core ``objc`` module this package also provides 
+a number of modules that are wrappers for the Cocoa frameworks Foundation and
+AppKit. These modules not only give you access to the classes in these 
+frameworks but also to the functions and constants in those modules.
+
+Read `the documentation`_ for more information on how to use this package. The
+`installation manual`_ describes how to install this package.
+
+.. _`the documentation`: Doc/index.html
+
+.. _`installation manual`: Install.html
 
 The latest information can always be found at:
 
     http://pyobjc.sourceforge.net/
 
-b.bum
-bbum@codefab.com
-12-Oct-2002
-
-History:
-
-Ronald Oussoren <oussoren@cistron.nl> rewrote most of the module in 2002.  Ronald made it possible to subclass Objective-C classes from Python and added nearly complete support for the Foundation, the AppKit and the AddressBook frameworks.
-
-In the fall of 2002, Bill Bumgarner<bbum@codefab.com> added support for non-Framework builds of python.  Ronald and Bill subsequently added support for the Apple supplied build of Python.   Bill created the Project Builder template that allows for building standalone Cocoa applications that are implemented in Project Builder.
-
-Steve Majewski <sdm7g@minsky.med.virginia.edu> and Bill Bumgarner <bbum@codefab.com> picked up Lele's work in early November, 2000. Steve significanlty improved compatibility with OS X.
-
-Lele Gaifax built the original module which dates back to September 1996.  Lele's original list of contributors/motivators was as follows:
-
-I should say "Grazie" to many persons that made this possible, but to some in particular:
-
-Guido van Rossum <guido@CNRI.Reston.VA.US>:
-  Long list of motivation omitted ;-)
-
-Thomas Breuel <tmb@best.com>:
-  He first inspired me with good ideas.
-
-Ted Horst <ted_horst@il.us.swissbank.com>:
-  His own ObjC module and kind comments helped me a lot.
-
-Bill Bumgarner <bbum@friday.com>:
-        He contribuited the standalone packaging setup, good comments and his own implementation of the Streams and Pasteboards support. He  maintained also several Python-related packages for NeXTSTEP: see <ftp://ftp.thoughtport.net/pub/next/lang> [long gone;  see http://www.friday.com/software/python/]
-
-...and of course to the entire ObjC-SIG community.
-
+b.bum                Ronald Oussoren
+bbum@codefab.com     oussoren@cistron.nl

File Scripts/make_distrib.py

 
 PYTHON=sys.executable
 
+def rest2HTML(irrelevant, dirName, names):
+    for aName in names:
+        if aName.endswith('.txt'):
+            anInputPath = os.path.join(dirName, aName)
+            anOutputPath = anInputPath[:-4] + '.html'
+            os.system("docarticle.py '%s' > '%s' || rm '%s'"%(
+                escquotes(anInputPath), escquotes(anOutputPath), 
+                escquotes(anOutputPath)))
+
 def package_version():
 	fp = open('Modules/objc/pyobjc.h', 'r')  
 	for ln in fp.readlines():
 	sys.stderr.write("%s: Cannot determine basedir\n"%(sys.argv[0]))
 	sys.exit(1)
 
+print "Generateing HTML documentation"
+os.path.walk('Doc', rest2HTML, None)
+rest2HTML(None, '.', ['Install.txt', 'ReadMe.txt'])
+
 print "Running: '%s' setup.py sdist -d '%s'"%(
 			escquotes(PYTHON), escquotes(OUTPUTDIR))
 fd = os.popen("'%s' setup.py sdist -d '%s'"%(
 
 print "Setting up developer templates"
 
+
+
+
 nastyFiles = ['.DS_Store', '.gdb_history']
+
 def killNasties(irrelevant, dirName, names):
         for aName in names:
                 if aName in nastyFiles:
 docsDestination = os.path.join(basedir, 'Developer', 'Documentation', 'PyObjC')
 shutil.copytree('Doc', docsDestination)
 
+
 os.path.walk(templateDestination, killNasties, None)
 os.path.walk(examplesDestination, killNasties, None)
 os.path.walk(docsDestination, killNasties, None)
+os.path.walk(docsDestination, rest2HTML, None)
 
 print 'Building package'
 pm = buildpkg.PackageMaker('PyObjC', package_version(),