TIP:            81
Title:          [incr Tcl] Functional Areas for Maintainer Assignments
Version:        $Revision: 1.6 $
Author:         Donal K. Fellows <fellowsd@cs.man.ac.uk>
State:          Deferred
Type:           Process
Vote:           Pending
Created:        07-Jan-2002
Post-History:   

~ Abstract

This document proposes a division of [[incr Tcl]]'s source code into
functional areas so that each area may be assigned to one or more
maintainers.

~ Background

In order for [[incr Tcl]] to be adopted by the Tcl Core Team (see
[50]), it must be managed by the processes already established for
handling source (see [0] and [16] for details and rationale.)

~ Functional Areas

[[incr Tcl]] shall be divided into the following 8 functional units
(the seventh is the obsolete parts of the source tree, and the eighth
is the shared part of the source tree), each to be assigned one or
more maintainers:

 1. ''Objects'' -
      generic/itcl_bicmds.c,
      generic/itcl_class.c,
      generic/itcl_methods.c,
      generic/itcl_objects.c,
      generic/itcl_parse.c,
      doc/body.n,
      doc/class.n,
      doc/configbody.n,
      tests/basic.test,
      tests/body.test,
      tests/info.test,
      tests/inherit.test,
      tests/interp.test,
      tests/methods.test,
      tests/protection.test,

 2. ''Other Commands'' -
      generic/itcl_cmds.c,
      generic/itcl_ensemble.c,
      doc/code.n,
      doc/delete.n,
      doc/ensemble.n,
      doc/find.n,
      doc/local.n,
      doc/scope.n,
      tests/chain.test,
      tests/delete.test,
      tests/ensemble.test,
      tests/import.test,
      tests/local.test,
      tests/namespace.test,
      tests/scope.test

 3. ''Mac Build+Support'' -
      mac/tclMacAppInit.c,
      mac/MW_ItclHeader.pch,
      mac/pkgIndex.tcl,
      mac/itclMacApplication.r,
      mac/itclMacLibrary.r,
      mac/itclMacResource.r,
      mac/itclMacTclCode.r,
      mac/itclStaticApplication.r

 4. ''Unix Build+Support'' -
      unix/tclAppInit.c,
      configure.in ''(to move to unix/configure.in)'',
      aclocal.m4  ''(to move to unix/aclocal.m4 and gain pieces the
                     poorly-named Itcl tcl.m4)'',
      Makefile.in ''(to move to unix/Makefile.in)'',
      itclConfig.sh.in ''(to move to unix/itclConfig.sh.in)'',
      pkgIndex.tcl.in ''(to move to unix/pkgIndex.tcl.in)''

 5. ''Windows Build+Support'' -
      win/dllEntryPoint.c,
      win/makefile.bc,
      win/makefile.vc,
      win/rc/itcl.rc

 6. ''Other'' -
      generic/itcl_util.c,
      generic/itcl_linkage.c,
      doc/itclsh.1,
      library/itcl.tcl,
      tests/mkindex.itcl,
      tests/mkindex.test,
      tests/tclIndex

~ Obsolete Files

These files are all obsolete in one way or another, and will be removed
as part of the migration process.  They are listed here for completeness
only.

 * generic/itcl_obsolete.c,
   generic/itcl_migrate.c,
   doc/man.macros,
   doc/itcl_class.n,
   doc/itcl_info.n
   tests/defs,
   tests/old/AAA.test,
   tests/old/Bar.tcl,
   tests/old/BarFoo.tcl,
   tests/old/Baz.tcl,
   tests/old/Foo.tcl,
   tests/old/FooBar.tcl,
   tests/old/Geek.tcl,
   tests/old/Mongrel.tcl,
   tests/old/VirtualErr.tcl,
   tests/old/all,
   tests/old/basic.test,
   tests/old/inherit.test,
   tests/old/tclIndex,
   tests/old/testlib.tcl,
   tests/old/toaster.test,
   tests/old/uplevel.test,
   tests/old/upvar.test,
   tests/old/toasters/Appliance.tcl,
   tests/old/toasters/Hazard.tcl,
   tests/old/toasters/Outlet.tcl,
   tests/old/toasters/SmartToaster.tcl,
   tests/old/toasters/Toaster.tcl,
   tests/old/toasters/tclIndex,
   tests/old/toasters/usualway.tcl

~ Shared Files

The following files are shared by all of [[incr Tcl]].  Any maintainer
may modify them as necessary to complete changes they are making to
their portion of [[incr Tcl]].  Some of the following files define
[[incr Tcl]]'s API and should be changed only in accordance with TCT
approval.

 * generic/itcl.h,
   generic/itclInt.h,
   generic/itcl.decls,
   generic/itclInt.decls,
   doc/itcl.n,
   doc/itclvars.n,
   tests/all,
   tests/all.tcl

~ Generated Files

The following files are generated, so they don't need maintainers.

 * generic/itclDecls.h,
   generic/itclIntDecls.h,
   generic/itclStubInit.c,
   generic/itclStubLib.c,
   configure ''(moves to unix/configure, trailing configure.in)''

~ Copyright

This document has been placed in the public domain.
