TIP 710: Development Workflow

Login
Author:	        Steve Landers <[email protected]>
Author:         Jan Nijtmans <[email protected]>
State:          Draft
Type:           Process

Abstract

This TIP proposes a new development workflow to align Tcl and Tk development with modern "feature branch” practices to keep the trunk stable and to make it easier to review, test and manage changes before they are merged. In this workflow all development will take place on branches created from the trunk, with each change reviewed by at least one TCT member before being merged back into the trunk.

Rationale

While all contributions to improving the Tcl and Tk core are encouraged and appreciated, not every change is universally accepted. If an inappropriate change is made directly to the Tcl or Tk trunks it will need to be reverted. Additionally, if a single commit contains both acceptable and unacceptable changes, extra effort is required to separate them and remove only the unapproved modifications. And on occasion some changes have been known to break the trunk.

This TIP attempts to address this situation in two ways - by the adoption of a feature branch development workflow and by introducing the requirement of a TCT member (not the change author) to review the changes.

Guidelines

The new guidelines can be stated as a series of points:

When the release process starts, an "rc0" tag (followed by "rc1", "rc2" ...) is put on the branch being released, that's how the state of the release process can be recognised. The release process ends when the "core-?-?-?" tag is present.

Practical considerations

This workflow has the advantage that release candidate branches will no longer be needed - e.g. core-9-1-branch would itself be the rc branch when a new release is being prepared. This is similar to what is done in the SQLite release process.

Will having a TCT member review the change be a burden? Perhaps but based on recent experience it may actually reduce the overhead in adopting new features. And it will hopefully leave the trunk in a more pristine state which will make it easier for others to test. Should the review load become too great then consideration could be given to expanding the TCT membership.

Copyright

This document has been placed in the public domain.