This is not necessarily the current version of this TIP.
| TIP: | 23 |
| Title: | Tk Toolkit Functional Areas for Maintainer Assignments |
| Version: | $Revision: 1.24 $ |
| Authors: |
Kevin Kenny <kennykb at acm dot org> Jim Ingham <jingham at apple dot com> Don Porter <dgp at users dot sourceforge dot net> Daniel A. Steffen <das at users dot sourceforge dot net> |
| State: | Accepted |
| Type: | Process |
| Vote: | Done |
| Created: | Monday, 22 January 2001 |
This document proposes a division of the Tk toolkit's source code into functional areas so that each area may be assigned to one or more maintainers.
TCT procedures (see TIP #0) call for each maintainer to be responsible for a portion of the Tk toolkit's source code. Certain portions of the Tk toolkit's source code are naturally associated with certain other portions. (For example, the implementation of a command is intimately related to the documentation for that command.) Establishing a natural division of the Tk toolkit's source code into units needing maintainers is a useful preliminary effort toward a public call for volunteer maintainers.
See TIP #30 for the mapping of these functional areas to maintainers.
TIP #16 provides a convincing rationale for establishing a simple mapping from source files to maintainers. It also breaks out maintainers' functional areas for the Tcl core. This document attempts to develop a similar mapping for the Tk toolkit.
Just as with TIP #16, this document attempts to divide the Tk toolkit into a set of the smallest sensible functional units.
One other factor, which was not addressed in TIP #16, is that there is considerably more platform dependent code in Tk than in Tcl, and it is unreasonable to expect people to take ownership for pieces of code that run on platforms they don't have access to. However, we want to make sure that the maintainer structure supports the cross-platform nature of Tk.
To that end, in any area where there is both generic code, and platform specific code, we propose that maintainers can sign up for the generic code and code for one or more platforms. By overlapping the generic code, we ensure that the public interfaces to Tk will stay consistent among the platforms, while not forcing maintainers to presume expertise in code they can't even compile, much less test or understand fully.
The Tk toolkit shall be divided into the following functional units, each to be assigned one or more maintainers. Each area will also be a Category in the SourceForge Tracker for Tk:
Bindings - library/tk.tcl
Appearance - generic/default.h, macosx/tkMacOSXDefault.h, unix/tkUnixDefault.h, win/tkWinDefault.h
[*button] and [label] - doc/button.n, doc/checkbutton.n, doc/label.n, doc/radiobutton.n, generic/tkButton.c, generic/tkButton.h, library/button.tcl, macosx/tkMacOSXButton.c, unix/tkUnixButton.c, tests/butGeom.tcl, tests/butGeom2.tcl, tests/button.test, tests/unixButton.test, tests/winButton.test, win/rc/buttons.bmp, win/tkWinButton.c
Canvas Basics - doc/CanvPsY.3, doc/CanvTxtInfo.3, doc/CanvTkwin.3, doc/CrtItemType.3, doc/GetDash.3, doc/canvas.n, generic/tkCanvUtil.c, generic/tkCanvas.c, generic/tkCanvas.h, tests/canvas.test
Canvas Items - generic/tkCanvArc.c, generic/tkCanvBmap.c, generic/tkCanvImg.c, generic/tkCanvLine.c, generic/tkCanvPoly.c, generic/tkCanvText.c, generic/tkCanvWind.c, generic/tkRectOval.c, tests/arc.tcl, tests/canvImg.test, tests/canvRect.test, tests/canvText.test, tests/canvWind.test
Canvas PostScript - generic/prolog.ps, generic/tkCanvPs.c, library/prolog.ps, tests/canvPs.test, tests/canvPsArc.tcl, tests/canvPsBmap.tcl, tests/canvPsGrph.tcl, tests/canvPsImg.tcl, tests/canvPsText.tcl
[entry] - doc/entry.n, generic/tkEntry.c, library/entry.tcl, tests/entry.test
[frame], [toplevel] and [labelframe] (see TIP #18) - doc/frame.n, doc/labelframe.n, doc/toplevel.n, generic/tkFrame.c, tests/frame.test
[listbox] - doc/listbox.n, generic/tkListbox.c, library/listbox.tcl, tests/listbox.test
Generic Menus - doc/menu.n, doc/menubutton.n, doc/popup.n, generic/tkMacWinMenu.c, generic/tkMenu.c, generic/tkMenu.h, generic/tkMenuDraw.c, generic/tkMenubutton.c, generic/tkMenubutton.h, library/menu.tcl, library/tearoff.tcl, tests/menu.test, tests/menuDraw.test, tests/menubut.test
Mac OS X Menus - macosx/tkMacOSXMenu.c, macosx/tkMacOSXMenu.r, macosx/tkMacOSXMenubutton.c, macosx/tkMacOSXMenus.c
Unix Menus - tests/unixMenu.test, unix/tkUnixMenu.c, unix/tkUnixMenubu.c
Win Menus - tests/winMenu.test, win/tkWinMenu.c
[message] - doc/message.n, generic/tkMessage.c, tests/message.test
[scale] - doc/scale.n, generic/tkScale.c, generic/tkScale.h, library/scale.tcl, macosx/tkMacOSXScale.c, tests/scale.test, unix/tkUnixScale.c
[scrollbar] - doc/scrollbar.n, generic/tkScrollbar.c, generic/tkScrollbar.h, library/scrlbar.tcl, macosx/tkMacOSXScrlbr.c, tests/scrollbar.test, unix/tkUnixScrlbr.c, win/tkWinScrlbr.c
[spinbox] - doc/spinbox.n, library/spinbox.tcl, tests/spinbox.test
[text] - doc/text.n, generic/tkText.c, generic/tkText.h, generic/tkTextBTree.c, generic/tkTextDisp.c, generic/tkTextImage.c, generic/tkTextIndex.c, generic/tkTextMark.c, generic/tkTextTag.c, generic/tkTextWind.c, library/text.tcl, tests/text.test, tests/textBTree.test, tests/textDisp.test, tests/textImage.test, tests/textIndex.test, tests/textMark.test, tests/textTag.test, tests/textWind.test
Menubars (obsolete) - doc/menubar.n, library/obsolete.tcl
[tk_optionMenu] - doc/optionMenu.n, library/optMenu.tcl
[panedwindow] (see TIP #41) - doc/panedwindow.n, generic/tkPanedWindow.c, library/panedwindow.tcl, tests/panedwindow.test
Style Engine (see TIP #48) - generic/tkStyle.c
Option Parsing - doc/ConfigWidg.3, doc/SetOptions.3, generic/tkConfig.c, generic/tkOldConfig.c, macosx/tkMacOSXConfig.c, unix/tkUnixConfig.c, tests/config.test, win/tkWinConfig.c
Relief - doc/3DBorder.3, doc/GetRelief.3, generic/tk3d.c, generic/tk3d.h, unix/tkUnix3d.c, tests/bevel.tcl, tests/border.test, win/tkWin3d.c
Built-in Bitmaps - bitmaps/error.bmp, bitmaps/gray12.bmp, bitmaps/gray25.bmp, bitmaps/gray50.bmp, bitmaps/gray75.bmp, bitmaps/hourglass.bmp, bitmaps/info.bmp, bitmaps/questhead.bmp, bitmaps/question.bmp, bitmaps/warning.bmp, doc/GetBitmap.3, generic/tkBitmap.c, macosx/tkMacOSXBitmap.c, tests/bitmap.test
Conversions From String - doc/GetAnchor.3, doc/GetCapStyl.3, doc/GetJoinStl.3, doc/GetJustify.3, doc/GetPixels.3, doc/GetUid.3, generic/tkGet.c, tests/get.test
Objects - generic/tkObj.c, tests/obj.test
Utility Functions - doc/DrawFocHlt.3, doc/GetScroll.3, generic/tkUtil.c, tests/util.test
Colormaps and Visuals - doc/GetClrmap.3, doc/GetVisual.3, generic/tkVisual.c, tests/visual.test
Color Names - doc/GetColor.3, doc/colors.n, generic/tkColor.c, generic/tkColor.h, macosx/tkMacOSXColor.c, unix/tkUnixColor.c, tests/cmap.tcl, tests/color.test, win/tkWinColor.c, xlib/xcolors.c
Cursor Names - doc/GetCursor.3, doc/cursors.n, generic/tkCursor.c, macosx/tkMacOSXCursor.c, macosx/tkMacOSXCursors.r, macosx/tkMacOSXXCursors.r, unix/tkUnixCursor.c, tests/cursor.test, win/rc/cursor*.cur, win/tkWinCursor.c, xlib/X11/cursorfont.h
Key Symbols - doc/keysyms.n, macosx/tkMacOSXKeyboard.c, unix/tkUnixKey.c, win/tkWinKey.c, xlib/X11/keysym.h, xlib/X11/keysymdef.h
Generic Dialog Support - library/comdlg.tcl
[tk_chooseColor] - doc/chooseColor.n, library/clrpick.tcl, tests/clrpick.test
[tk_dialog] - doc/dialog.n, library/dialog.tcl, macosx/tkMacOSXDialog.c, tests/dialog.test, tests/winDialog.test, unix/tkUnixDialog.c, win/tkWinDialog.c
[tk_chooseDirectory] - doc/chooseDirectory.n, library/choosedir.tcl, tests/choosedir.test
[tk_get*File] - doc/getOpenFile.n, generic/tkFileFilter.c, generic/tkFileFilter.h, library/tkfbox.tcl, library/xmfbox.tcl, tests/filebox.test, tests/xmfbox.test
[tk_messageBox] - doc/messageBox.n, library/msgbox.tcl, tests/msgbox.test
Image Basics - doc/CrtImgType.3, doc/DeleteImg.3, doc/GetImage.3, doc/ImgChanged.3, doc/NameOfImg.3, doc/image.n, generic/tkImage.c, generic/tkImgUtil.c, generic/tkStubImg.c, tests/image.test
Bitmap Images - doc/bitmap.n, generic/tkImgBmap.c, tests/imgBmap.test
Photo Images - doc/CrtPhImgFmt.3, doc/FindPhoto.3, doc/photo.n, generic/tkImgPhoto.c, tests/imgPhoto.test
Photo Image|GIF - generic/tkImgGIF.c
Photo Image|PPM - generic/tkImgPPM.c, tests/imgPPM.test
Generic Fonts - doc/FontId.3, doc/GetFont.3, doc/MeasureChar.3, doc/TextLayout.3, doc/font.n, generic/tkFont.c, generic/tkFont.h, tests/font.test
Mac OS X Fonts - macosx/tkMacOSXFont.c
Unix Fonts - tests/unixFont.test, unix/tkUnixFont.c, unix/tkUnixRFont.c
Win Fonts - tests/winFont.test, win/tkWinFont.c
Geometry Management - doc/GeomReq.3, doc/MaintGeom.3, doc/ManageGeom.3, generic/tkGeometry.c, tests/geometry.test
[grid] - doc/grid.n, generic/tkGrid.c, tests/grid.test
[pack] - doc/pack-old.n, doc/pack.n, generic/tkPack.c, tests/oldpack.test, tests/pack.test
[place] - doc/place.n, generic/tkPlace.c, tests/place.test
[clipboard] - doc/Clipboard.3, doc/clipboard.n, generic/tkClipboard.c, macosx/tkMacOSXClipboard.c, tests/clipboard.test, tests/unixSelect.test, tests/winClipboard.test, unix/tkUnixSelect.c, win/tkWinClipboard.c
[selection] - doc/ClrSelect.3, doc/CrtSelHdlr.3, doc/GetSelect.3, doc/OwnSelect.3, doc/selection.n, generic/tkSelect.c, generic/tkSelect.h, tests/select.test
[console] - doc/console.n, generic/tkConsole.c, library/console.tcl
[focus] - doc/focus.n, generic/tkFocus.c, tests/focus.test
[grab] - doc/Grab.3, doc/grab.n, generic/tkGrab.c, tests/grab.test
[option] - doc/AddOption.3, doc/GetOption.3, doc/option.n, generic/tkOption.c, tests/option.file1, tests/option.file2, tests/option.test
[send] - doc/SetAppName.3, doc/send.n, macosx/tkMacOSXSend.c, tests/send.test, tests/unixSend.test, tests/winSend.test, unix/tkUnixSend.c, win/tkWinSend.c
[tk_focus*] - doc/focusNext.n, library/focus.tcl, tests/focusTcl.test
[tk_setPalette] - doc/palette.n, library/palette.tcl
Safe Tk - doc/loadTk.n, library/safetk.tcl, tests/safe.test
Geometry Functions - generic/tkTrig.c
Tk_Win Functions - doc/ConfigWind.3, doc/CrtWindow.3, doc/IdToWindow.3, doc/MainWin.3, doc/MapWindow.3, doc/Name.3, doc/Restack.3, doc/SetClass.3, doc/SetClassProcs.3, doc/SetVisual.3, doc/StrictMotif.3, doc/Tk_Init.3, doc/WindowId.3, generic/tkWindow.c, tests/window.test
Graphic Contexts - doc/GetGC.3, generic/tkGC.c
Generic Window Operations - doc/CoordToWin.3, doc/FreeXId.3, doc/GetHINSTANCE.3, doc/GetHWND.3, doc/GetPixmap.3, doc/GetRootCrd.3, doc/GetVRoot.3, doc/HWNDToWindow.3, doc/MoveToplev.3, doc/SetCaret.3, doc/SetGrid.3, doc/bell.n, doc/bind.n, doc/bindtags.n, doc/destroy.n, doc/lower.n, doc/raise.n, doc/tk.n, doc/tkwait.n, doc/winfo.n, doc/wm.n, generic/tkCmds.c, generic/tkPointer.c, tests/bell.test, tests/cmds.test, tests/embed.test, tests/id.test, tests/raise.test, tests/tk.test, tests/winfo.test, tests/wm.test, xlib/xgc.c
Mac OS X Window Operations - macosx/tkMacOSXDraw.c, macosx/tkMacOSXEmbed.c, macosx/tkMacOSXHLEvents.c, macosx/tkMacOSXRegion.c, macosx/tkMacOSXSubwindows.c, macosx/tkMacOSXWm.c, macosx/tkMacOSXWm.h, macosx/tkMacOSXXStubs.c
Unix Window Operations - tests/unixEmbed.test, tests/unixWm.test, unix/tkUnix.c, unix/tkUnixDraw.c, unix/tkUnixEmbed.c, unix/tkUnixEvent.c, unix/tkUnixFocus.c, unix/tkUnixWm.c, unix/tkUnixXId.c
Win Window Operations - tests/winWm.test, win/stubs.c, win/tkWinDraw.c, win/tkWinEmbed.c, win/tkWinImage.c, win/tkWinPixmap.c, win/tkWinPointer.c, win/tkWinRegion.c, win/tkWinWindow.c, win/tkWinWm.c, win/tkWinX.c
Events - doc/BindTable.3, doc/event.n, generic/tkBind.c, tests/bind.test
Event Loop - doc/CrtCmHdlr.3, doc/CrtGenHdlr.3, doc/EventHndlr.3, doc/HandleEvent.3, doc/MainLoop.3, doc/QWinEvent.3, doc/RestrictEv.3, generic/tkEvent.c, tests/event.test
Error Handling - doc/CrtErrHdlr.3, doc/tkerror.n, generic/tkError.c, library/bgerror.tcl, tests/bgerror.test
Atoms - doc/InternAtom.3, generic/tkAtom.c, xlib/X11/Xatom.h
Argv Parsing - doc/ParseArgv.3, generic/tkArgv.c
Application Embedding - doc/Tk_Main.3, generic/tkInitScript.h, generic/tkMain.c, macosx/tkMacOSXInit.c, unix/tkUnixInit.c, win/tkWin32Dll.c, win/tkWinInit.c, tests/main.test
wish - doc/wish.1, macosx/tkMacOSXAppInit.c, unix/tkAppInit.c, win/winMain.c
Widget Tour - library/demos/arrow.tcl, library/demos/bind.tcl, library/demos/bitmap.tcl, library/demos/button.tcl, library/demos/check.tcl, library/demos/clrpick.tcl, library/demos/colors.tcl, library/demos/cscroll.tcl, library/demos/ctext.tcl, library/demos/dialog1.tcl, library/demos/dialog2.tcl, library/demos/entry1.tcl, library/demos/entry2.tcl, library/demos/entry3.tcl, library/demos/filebox.tcl, library/demos/floor.tcl, library/demos/form.tcl, library/demos/hscale.tcl, library/demos/icon.tcl, library/demos/image1.tcl, library/demos/image2.tcl, library/demos/items.tcl, library/demos/label.tcl, library/demos/labelframe.tcl, library/demos/menu.tcl, library/demos/menubu.tcl, library/demos/msgbox.tcl, library/demos/paned1.tcl, library/demos/paned2.tcl, library/demos/plot.tcl, library/demos/puzzle.tcl, library/demos/radio.tcl, library/demos/ruler.tcl, library/demos/sayings.tcl, library/demos/search.tcl, library/demos/spin.tcl, library/demos/states.tcl, library/demos/style.tcl, library/demos/text.tcl, library/demos/twind.tcl, library/demos/vscale.tcl, library/demos/widget, library/demos/images/earth.gif, library/demos/images/earthris.gif, library/demos/images/face.bmp, library/demos/images/flagdown.bmp, library/demos/images/flagup.bmp, library/demos/images/gray25.bmp, library/demos/images/letters.bmp, library/demos/images/noletter.bmp, library/demos/images/pattern.bmp, library/demos/images/tcllogo.gif, library/demos/images/teapot.ppm
Square Demo - generic/tkSquare.c, library/demos/square
Other Demos - library/demos/browse, library/demos/hello, library/demos/ixset, library/demos/rmt, library/demos/rolodex, library/demos/tcolor, library/demos/timer
L10N - library/msgs/cs.msg, library/msgs/de.msg, library/msgs/el.msg, library/msgs/en.msg, library/msgs/en_gb.msg, library/msgs/es.msg, library/msgs/fr.msg, library/msgs/it.msg, library/msgs/nl.msg, library/msgs/ru.msg
Release Notes - README, */README, */*/README, changes, license.terms, doc/options.n, doc/tk4.0.ps, tests/bugs.tcl
Portability - compat/limits.h, compat/stdlib.h, compat/unistd.h
X11 Emulation - xlib/X11/X.h, xlib/X11/Xfuncproto.h, xlib/X11/Xlib.h, xlib/X11/Xutil.h, xlib/xbytes.h, xlib/xdraw.c, xlib/ximage.c, xlib/xutil.c
Mac OS X Build - macosx/Makefile, macosx/buildTkConfig.tcl, macosx/tkAboutDlg.r, macosx/tkMacOSX.h, macosx/tkMacOSXAETE.r, macosx/Wish.pbproj/project.pbxproj
Unix Build - unix/Makefile.in, unix/aclocal.m4, unix/configure.in, unix/install-sh, unix/tcl.m4, unix/tk.spec, unix/tkConfig.sh.in
Win Build - win/Makefile.in, win/aclocal.m4, win/buildall.vc.bat, win/configure.in, win/makefile.vc, win/mkd.bat, win/nmakehlp.c, win/rc/tkc, win/rc/tk_base.rc, win/rc/wish.exe.manifest, win/rc/wish.rc, win/rmd.bat, win/rules.vc, win/tcl.m4, win/tkConfig.sh.in, win/tkWin.h
Test Tools - generic/tkTest.c, macosx/tkMacOSXTest.c, win/tkWinTest.c, tests/all.tcl, tests/defs.tcl, tests/visual_bb.test
Logos - library/images/logo.eps, library/images/logo100.gif, library/images/logo64.gif, library/images/logoLarge.gif, library/images/logoMed.gif, library/images/pwrdLogo.eps, library/images/pwrdLogo100.gif, library/images/pwrdLogo150.gif, library/images/pwrdLogo175.gif, library/images/pwrdLogo200.gif, library/images/pwrdLogo75.gif, library/images/tai-ku.gif, macosx/Wish.icns, win/lamp.bmp, win/rc/tk.ico, win/rc/wish.ico
The following files are shared by all of Tk. Any maintainer may modify them as necessary to complete changes they are making to their portion of Tk. Some of the following files define Tk's API and should be changed only with TCT approval.
ChangeLog, doc/tkvars.n, doc/TkInitStubs.3, doc/man.macros, generic/tk.decls, generic/tk.h, generic/tkInt.decl