wiki:WorkflowPolicy

Workflow Policy

This policy governs how source code changes eventually end up as packages in the production repository.

Adopted by release-team, 15 October 2010.

Committing Code

  • Prereq: Changes tested by committer.
  • TTL: 2 business days

Anyone with repository access may commit code changes. When appropriate, new Changelog entries should be created. If you do not intend to immediately upload the package, the Distribution should be listed as "UNRELEASED".

Each commit generates mail to source-commits@…. Discussion of the commit can happen over e-mail or zephyr. If discussion happens over zephyr and any agreed-upon modifications are not immediately committed, a summary of the discussion should be sent by replying to the source-commits e-mail.

Commits should be reviewed within 2 business days. Code should be ACK'd by at least 1 member of debathena-root who is not the committer. The ACK should occur by e-mail (replying to the original commit mail). If an ACK does not occur at the end of 2 business days, the change is deemed to be approved and may be uploaded to Alpha.

Uploading to Alpha (development)

  • Prereq: Explicit ACK or commit TTL exceeded.
  • TTL: n/a

Once code has been approved or the TTL has exceeded, it may be built and uploaded to the alpha (development) repository. At this point, it should be tested by as many developers as possible. Code requires 2 explicit ACKs (one of which can be the original author) to proceed to the next stage. An ACK may occur in a Trac comment; a reply to a Trac e-mail, or a zephyr to debathena,apt,* with a body indicating the ACK and the package name and version.

Active developers should have easy access to a machine in the Alpha cluster. IS&T-public Alpha machines are located in N42 (cheshire-cat.mit.edu) and the W92 test cluster ({breakout|gorf}.mit.edu).

Uploading to Beta (proposed)

  • Prereq: Two explicit ACKs while in alpha stage.
  • TTL: 3 business days

Once the changes have been approved in Alpha, the package is moved to the beta (proposed) repository. At this point, it is now available to the general public (e.g. beta machines in W20). Any developers who have not already tested the package should do so. A package must remain in proposed for up to 3 business days, unless it receives explicit approval from IS&T development and support.

Upload to Production

  • Prereq: (Explicit approval OR beta TTL expiration) AND (today = business_day ) AND ( tomorrow = business_day)

Once the beta TTL has expired or approval has been obtained, the package may be moved to the production repository. This should happen on business days that are not Fridays or days before Insitute holidays. With prior e-mail discussion, release-team can override the calendar requirements.