\section{Manual organization} \label{sec:manual_org} This manual is meant to be a resource for developers who wish to contribute to the \cgal\ library either by designing new packages or maintaining or enhancing existing ones. The manual is organized roughly in the order in which a developer will need the information in order to produce a package for the library. We begin in this chapter with a description of the design goals of \cgal\ and the overall design, which should be kept in mind during all stages of development. The remaining chapters describe in more concrete terms the requirements and recommendations for documentation, code writing, and testing that are derived from these goals. We also describe a number of tools that have been created to help in the development process and give pointers to other sources of information. A description of how the specification for a package should be documented is provided along with information about the tools available to help produce the documentation in Chapter~\ref{chap:specification}. Chapter~\ref{chap:cvs} discusses the CVS server on which all \cgal\ source code should be kept. Chapter~\ref{chap:directory_structure} describes the directory structure required for a package and Chapter~\ref{chap:tools} describes a set of tools that may be used to create or modify various files required within this directory structure. Chapters~\ref{chap:code_format} through~\ref{chap:robustness} discuss issues related to the writing of code that is in keeping with the goals of \cgal. Chapter~\ref{chap:portability} describes issues related to the configuration of \cgal\ and discusses portability issues for various platforms. Chapter~\ref{chap:testing} describes the requirements and behaviour of the test suite for a package and Chapter~\ref{chap:debugging} consists of various hints for debugging. Guidelines for the development of example and demo programs are given in Chapter~\ref{chap:examples_and_demos}. Information about how to submit a package's specification to the editorial board for approval and the implementation (and documentation) for inclusion in internal releases is presented in Chapter~\ref{chap:submission}. Chapter~\ref{chap:releases} gives information about the creation of the internal, public, and bug-fix releases. Chapter~\ref{chap:web_site} provides information about the \cgal\ web site and what developers should do to assure that it is kept up to date. Chapters~\ref{chap:addresses} and Chapter~\ref{chap:info} provide information about mailing lists and other information resources developers might find useful.