[Pythonmac-SIG] Fixing the documentation...

has hengist.podd at virgin.net
Wed Apr 19 15:38:22 CEST 2006


Bill Janssen wrote:

>1) We should no longer point people to Jack's site, we point them to
>   the python.org Mac download page instead.

Agree. Having links to the old MacPython site in places where folk expect to find up-to-date information doesn't help.

Also, if there's somewhere to provide a list of highly respected Python contributors, make sure Jack's name is up there accompanied by his site link for posterity. Wouldn't want the removal of obsolete links from the main body of documentation to look like a writing out of history of the Jack and his terrific contribution to Mac Python over the years.


>Just looking at the docs, I'm trying to figure out what's good and
>what's bad.
>
>2) references to PythonIDE and PackageManager should go.

Sounds fine to me. They're related products, not part of the core Python distribution, so shouldn't be any problem eliminating mention of those from the documentation. Might need to put in a short page about IDLE to replace the old Python IDE section.

In addition, all mentions of OS 9 should either be expunged (e.g. the 'using Python on Mac OS 9' chapter) or changed to 'not supported' (should they still need to be documented for any reason).


>3) What about the following:
>
>   2. MacPython Modules

Well, it feels tempting at times just do a straight delete on this too. <g>

However: these modules are all part of the official distribution, so I would imagine that any to be dropped needs to go through the full deprecation procedure first.


>        2.1 macpath -- MacOS path manipulation functions

Deprecate. Also note that the 2.4.3 documentation now says "It can be used to manipulate old-style Macintosh pathnames on Mac OS X (or any other platform)." which is incorrect (it uses POSIX-style paths), so delete that sentence.


>        2.2 macfs -- Various file system services

Already deprecated as of 2.3.  Delete yet?


>        2.3 ic -- Access to Internet Config

No idea about this. Anyone else know if this is still working/relevant?


>        2.4 MacOS -- Access to Mac OS interpreter features

Get/SetCreatorAndType should really be fixed or deprecated as they don't appear to work for bundle-based files.


>        2.5 macostools -- Convenience routines for file manipulation

Not sure about this. It's pretty ancient and crusty though, so I'd be inclined to deprecate.


>        2.6 findertools -- The finder's Apple Events interface

Deprecate.


>        2.7 EasyDialogs -- Basic Macintosh dialogs

It's ancient and very crusty, but until there's an up-to-date replacement I guess it has to stay as-is for now, alas. Might be a good idea to check functions for unicode compatibility, long string support, etc. and add notes on any limitations found.


>        2.8 FrameWork -- Interactive application framework

Deprecate.


>        2.9 autoGIL -- Global Interpreter Lock handling in event loops

No idea. Anyone?


>        3. MacPython OSA Modules

Deprecate.


>        4. MacOS Toolbox Modules

These are just wrappers around the existing Carbon APIs. So as long as those APIs are themselves relevant, so are the wrappers. You can get background info, including a list of which APIs are legacy-only at:

<http://developer.apple.com/documentation/Carbon/Conceptual/newtocarbon/chapter_1_section_1.html>


>        4.1 Carbon.AE -- Apple Events

Ronald's been thinking it might be best to deprecate both Carbon.AE and Carbon.OSA and keep all the AE/OSA/appscript stuff together. Dunno if he's got any further on that yet; you could ask.


>        4.2 Carbon.AH -- Apple Help

Do nothing.


>        4.3 Carbon.App -- Appearance Manager

Apple's docs describe AM as 'the older QuickDraw-centric version of HITheme', but don't note it as being superceded/deprecated so I guess it should stay as-is.


>        4.4 Carbon.CF -- Core Foundation
>        4.5 Carbon.CG -- Core Graphics
>        4.6 Carbon.CarbonEvt -- Carbon Event Manager

Do nothing.


>        4.7 Carbon.Cm -- Component Manager

According to Apple's docs CM is largely historical; modern apps should use Core Foundation's Plug-in Services. Other Carbon APIs still rely on it though, so do nothing.


>        4.8 Carbon.Ctl -- Control Manager

According to Apple's docs, HIView is superseding the older Control Manager. For now though, do nothing.


>        4.9 Carbon.Dlg -- Dialog Manager

According to Apple's docs, Interface Builder and Carbon event handlers mostly supersede the Dialog Manager, except in the cases where you want to put up a standard alert dialog box or sheet. For now though, do nothing.


>        4.10 Carbon.Evt -- Event Manager

Deprecate, or at least add note to use modern alternative. Superceded by CarbonEvt.


>        4.11 Carbon.Fm -- Font Manager
>        4.12 Carbon.Folder -- Folder Manager
>        4.13 Carbon.Help -- Help Manager

Do nothing.


>        4.14 Carbon.List -- List Manager

Deprecate, or at least add note to use modern alternative. Superceded by Control Manager.


>        4.15 Carbon.Menu -- Menu Manager
>        4.16 Carbon.Mlte -- MultiLingual Text Editor

Do nothing.


>        4.17 Carbon.Qd -- QuickDraw

Deprecate. QD is already deprecated in OS X 10.4.


>        4.18 Carbon.Qdoffs -- QuickDraw Offscreen

Deprecate. QD is already deprecated in OS X 10.4.


>        4.19 Carbon.Qt -- QuickTime

Do nothing.


>        4.20 Carbon.Res -- Resource Manager and Handles

According to Apple's docs, RM is historical, but I'm not sure about alternatives; need to check out Bundle Services. For now, probably do nothing.


>        4.21 Carbon.Scrap -- Scrap Manager

According to Apple's docs, Scrap Manager is superceded by Pasteboard Manager in OS X. We don't have a wrapper for that though, so probably do nothing.


>        4.22 Carbon.Snd -- Sound Manager

Do nothing.


>        4.23 Carbon.TE -- TextEdit

Deprecate/add note. Superceded by Mlte, which has unicode support, etc..


>        4.24 Carbon.Win -- Window Manager
>        4.25 ColorPicker -- Color selection dialog

Do nothing.


>        5. Undocumented Modules
>        5.1 applesingle -- AppleSingle decoder

No idea. Anyone?


>        5.2 buildtools -- Helper module for BuildApplet and Friends

Deprecate, or at least add a note that py2app is the modern alternative and strongly recommended.


>        5.3 cfmfile -- Code Fragment Resource module

Probably deprecate. Anyone?


>        5.4 icopen -- Internet Config replacement for open()

Presumably in the same boat as '2.3 ic'. Anyone?


>        5.5 macerrors -- Mac OS Errors

Do nothing.


>        5.6 macresource -- Locate script resources

Presumably in same boat as '4.20 Carbon.Res'. Anyone?


>        5.7 Nav -- NavServices calls

Do nothing.


>        5.8 PixMapWrapper -- Wrapper for PixMap objects

Deprecate. (Since QD is deprecated on OS 10.4.)


>        5.9 videoreader -- Read QuickTime movies

No idea. Anyone?


>        5.10 W -- Widgets built on FrameWork

Deprecate.

>        5.11 waste -- non-Apple TextEdit replacement

Deprecate? (ISTR it's not in the universal build.)


>My inclination is to delete them all :-).  Except for ones where
>someone pipes up and tells me it still works.  Let folks use the Wiki
>to find modules.

Your inclination is understandable, but I don't think it'd be wisest. :)

Personally I really dislike the 'deprecate in-place' approach that seems to be used in the Python docs. It'd be much clearer and easier on readers if all the crud were moved into a 'Deprecated modules' chapter. That way it wouldn't force readers to wade through piles of irrelevant cruft and junk each time that want to look up current info, but it could still be found when needed. Perhaps you could negotiate to do something like that?


>4)  Should we document some of the newer stuff?

Carbon.LaunchServices, which is part of the standard library as of 2.4. It should be added to the 'Carbon' section as another placeholder page.

There's also Carbon.OSA, which is part of the standard library as of 2.4 (though it's buggy and incomplete), which can be added to the 'Carbon' section as another placeholder page. It may or may not be deprecated, depending on what happens with the Carbon.AE module.

plistlib probably ought to be mentioned. I suspect it's evil, as it's not using the Property List Services API, but am not familiar enough with it to really say anything more with confidence.


>py2app comes to mind.

For external projects I'd suggest adding placeholder pages that simply link to external sites (i.e. quick and simple for now; anyone with an urge to expand them can do so in their own time). PyObjC, py2app and appscript are the three obvious ones that I can think of.

The PyObjC link is obvious <pyobjc.sourceforge.net>. I imagine you'd link to Bob's site for py2app. At some poing I'd like to shift appscript off my personal webspace to a proper permanent home (sourceforge??), so maybe point to the wiki page for that for now.


HTH

has
-- 
http://freespace.virgin.net/hamish.sanderson/


More information about the Pythonmac-SIG mailing list