IMAP Developer Guide
********************


Getting Started
===============

* Development Process

* Overview of Cyrus development environment

* GitHub guide

* Compiling

* Installing Cyrus

* Developer Test Environment

* Test Coverage

* JMAP support


System files and Databases
==========================

* Namespaces: a developer view


Resources
=========

* Developer Libraries


Releasing
=========

* Releasing Cyrus IMAP - normal releases

  * Prerequisites

  * Order of operations

  * Release notes

  * Pre-release testing

  * Linking up release notes

  * Version tagging

  * Inter-version website consistency

  * Uploading

  * Tell the world

* Releasing Cyrus IMAP - major releases

  * Prerequisites

  * Feature freeze

  * Make sure master is good

  * Forking the new series branch

  * Updating the master branch

  * Github updates

  * Revert anything that's not yet ready

  * Tell the website builder about the new branch

  * First beta

  * Subsequent betas

  * Release candidates

  * Release

  * Post-release

* Releasing Cyrus IMAP - developer snapshots

  * Prerequisites

  * Make sure master is good

  * Mixed-version Cassandane testing

  * lib/imapoptions

  * Release notes

  * docsrc/conf.py

  * check documentation

  * PR and/or commit

  * Tag

  * Tell the world

  * Update this document

* Releasing new builds of ancient Cyrus IMAP versions

  * Introduction

  * Prerequisites

  * Release notes and version update

  * Pre-release testing

  * Cross-pollination of release notes

  * Building the release

  * Finishing up
