When should a technical change to OpenACS be approved by the TIP process, and when can someone with access make the change directly? Here is my proposal:
A proposed change must be approved by TIP when
- It changes the core data model
- It will change the behavior of any core package in a way that affects existing code.
- It is a non-backwards-compatible change to any core or standard package.
We don't have a firm list of standard packages so I propose for now that any package in dotlrn-prereq is a standard package.
A proposed change need not be TIPped IF
- it adds a new function to a core package in a way that
- does not change any existing API functions
- does not change the data model
- has no negative impact on performance
- OR it is a change to a non-standard package
Ie, adding a new API wouldn't require a TIP, and even changing an existing API function wouldn't require a TIP if the new behavior only occured if a flag were selected, and the flag is optional and off by default.
The place where these rules fall down is ad_form, which wouldn't require a TIP by these rules but clearly would have benefitted from group review of the syntax and names before it was implemented or modified.