mirror of https://github.com/CGAL/cgal
198 lines
8.6 KiB
TeX
198 lines
8.6 KiB
TeX
% =============================================================================
|
|
% The CGAL Developers' Manual
|
|
% Chapter: Submitting Packages
|
|
% -----------------------------------------------------------------------------
|
|
% file : submission_process.tex
|
|
% authors: Geert-Jan Giezeman <geert@cs.uu.nl> & Susan Hert <hert@mpi-sb.mpg.de>
|
|
% -----------------------------------------------------------------------------
|
|
% $Revision$
|
|
% $Date$
|
|
% =============================================================================
|
|
|
|
\chapter{Submitting Packages}
|
|
\label{chap:submission}
|
|
\ccChapterRelease{Chapter Version: 1.0} \\
|
|
\ccChapterAuthor{Geert-Jan Giezeman ({\tt geert@cs.uu.nl})
|
|
\& Susan Hert ({\tt hert@mpi-sb.mpg.de})}
|
|
|
|
\section{Editorial board}
|
|
\label{sec:editorial_board}
|
|
\ccIndexMainItemBegin{editorial board}
|
|
|
|
The Editorial Board is in charge of approving the inclusion of new packages
|
|
in the library. This means that they assure that new contributions
|
|
\begin{itemize}
|
|
\item are in keeping with the philosophy of \cgal\ (Chapter~\ref{chap:intro});
|
|
\item are generic and fit seamlessly with other parts of
|
|
the library;
|
|
\item satisfy the coding conventions of \cgal\ (Chapter~\ref{chap:code_format});
|
|
\item carefully and efficiently treat robustness issues
|
|
(Chapter~\ref{chap:robustness});
|
|
\item are designed in a flexible, extensible, and easy-to-use fashion;
|
|
\item and are designed to be technically feasible for the platforms
|
|
supported by \cgal.
|
|
\end{itemize}
|
|
|
|
Software specifications should be submitted to the editorial committee
|
|
for approval. This can be done by sending mail to
|
|
\ccAnchor{mailto:cgal-editor@cs.uu.nl}{\texttt{cgal-editor@cs.uu.nl}}. After
|
|
some reasonable amount of time, you should receive feedback from someone
|
|
on the committee about the specification and what, if anything, needs to
|
|
be changed.
|
|
|
|
One should write a specification for a new package
|
|
(Chapter~\ref{chap:specification}) and submit it to the editorial board for
|
|
approval before submitting the package for inclusion in the internal
|
|
releases (and ideally before implementation of the package). This
|
|
assures that time is not wasted in fixing code that may later be changed
|
|
due to the recommendations of the board.
|
|
However, since it can take some time for the board to process
|
|
submissions, packages that are to become part of the library
|
|
(as opposed to being listed as
|
|
\ccAnchor{http://www.mpi-sb.mpg.de/~hert/CGAL/CEP/requirements.html}{\cgal\ Extension Packages}) can be submitted as detailed in
|
|
Section~\ref{sec:electronic_submission} before approval.
|
|
Inclusion in an internal release does not ensure inclusion in a public
|
|
release. Only after approval by the board will packages be included in new
|
|
public releases.
|
|
|
|
The current members of the editorial board are:
|
|
\begin{itemize}
|
|
\item Stefan Schirra
|
|
\item Remco Veltkamp
|
|
\item Mariette Yvinec.
|
|
\end{itemize}
|
|
\ccIndexMainItemEnd{editorial board}
|
|
|
|
|
|
\section{Electronic submission}
|
|
\label{sec:electronic_submission}
|
|
\ccIndexMainItemBegin{submitting}
|
|
|
|
Whether you produce library code, demos, documentation or something else,
|
|
if you want it to become part of \cgal, you'll have to submit it in the form
|
|
of a package. The directory structure required for a package is described in
|
|
Chapter~\ref{chap:directory_structure}.
|
|
Here we focus on how to submit a package.
|
|
|
|
\ccIndexSubitem{naming scheme}{package}
|
|
A package has a name, which identifies it. This name should obey the same
|
|
rules as for C identifiers: it consists of letters, digits and underscores and
|
|
it does not start with a digit. Choose a name that is descriptive, yet not
|
|
too long (under 25 characters). If a package deals with objects of a
|
|
particular dimension, then use the suffixes \_2, \_3, and \_d, especially if
|
|
there exists (or may exist in the future) a package with similar
|
|
functionality in different dimensions. Examples of good package names are
|
|
\texttt{Triangulation\_2} for a package dealing with triangulations of points
|
|
in the plane and \texttt{Min\_ellipse\_2}, which contains an algorithm that
|
|
finds the minimal enclosing ellipse of a set of points in the plane. The
|
|
package names \texttt{pm} and \texttt{arr} are a bit too terse.
|
|
\texttt{Planar\_map} and \texttt{Arrangement} (or
|
|
\texttt{Arrangement\_2}) would have been better.
|
|
|
|
\ccIndexSubitem{submitting}{file for}
|
|
A submission consists of a single compressed file. The name of this file
|
|
must be the name of the package followed by \texttt{.tar.gz} or \texttt{.tgz}
|
|
if the file is made with \texttt{tar} and \texttt{gzip} or followed by
|
|
\texttt{.zip} if the file is made with \texttt{zip}. This file should
|
|
be put on a WWW server, preferably protected with
|
|
the \cgal\ password.\footnote{If there is demand, it is possible to extend
|
|
this service to submitting via \texttt{ftp}.}
|
|
|
|
When the file is in place, it is time to notify Utrecht that the file
|
|
should be fetched. This is done by sending an email to
|
|
\ccAnchor{mailto:cgal-submit@cs.uu.nl}{\texttt{cgal-submit@cs.uu.nl}}.
|
|
The subject of this email must be \texttt{autohandle}.
|
|
The body of the message must contain a line \verb+ submission::+ followed by a
|
|
line with the URL. The URL must start on a new line, but may itself be
|
|
split over several lines. So, the complete mail could look like
|
|
\begin{verbatim}
|
|
From: Geert-Jan Giezeman <geert@cs.uu.nl>
|
|
To: cgal-submit@cs.uu.nl
|
|
Subject: autohandle
|
|
|
|
submission::
|
|
http://www.cs.uu.nl/people/geert/CGAL
|
|
/Minkowski_2.zip
|
|
\end{verbatim}
|
|
If all goes well, the package is installed and the \ccAnchor{http://www.cs.uu.nl/CGAL/Members/Develop/updates/packages.html}{packages page}
|
|
\begin{ccTexOnly}
|
|
(\path|http://www.cs.uu.nl/CGAL/Members/Develop/updates/packages.html|)
|
|
\end{ccTexOnly}
|
|
is updated.
|
|
The whole process is done without human intervention, so you should follow
|
|
the rules described here precisely.
|
|
|
|
|
|
Within 15 minutes you will receive a confirmation of your
|
|
submission.\footnote{The confirmation goes also to the person responsible
|
|
for the submission procedure.} If this is not the case, send a mail to
|
|
\texttt{cgal-submit} (with a subject other than \texttt{autohandle})
|
|
and ask what went
|
|
wrong. The first time you submit a package, the confirmation message will
|
|
tell you that the package will not go into internal releases. Usually, you
|
|
request \texttt{cgal-submit} to add the package to the internal releases. In a
|
|
perfectly bureaucratic world, the editorial committe would be asked if it
|
|
is OK to add the package. In practice, that is not done.
|
|
|
|
The submission process checks your package for several things. It checks
|
|
if your source files contain a valid header (Section~\ref{sec:file_header})
|
|
and if the lines are not longer
|
|
than 80 characters. Moreover, it is picky about the file
|
|
\ccAnchor{example/version}{\texttt{version}},
|
|
which must be part of your package. See Chapter~\ref{chap:directory_structure}
|
|
for a precise description of the required format for this file.
|
|
\ccIndexMainItemEnd{submitting}
|
|
|
|
|
|
\section{When something goes wrong}
|
|
\label{sec:submission_problems}
|
|
\ccIndexSubitemBegin{submitting}{problems with}
|
|
|
|
There are several reasons why a submission may not succeed.
|
|
In most cases the confirmation message will state that an error occured. In
|
|
some cases, you will not get a confirmation message at all.
|
|
|
|
The following is a list of reasons why a submission might fail.
|
|
\begin{itemize}
|
|
|
|
\item The sender and the URL where the package is retrieved, should both be
|
|
on a \cgal\ member site. If this is not the case, the submission will
|
|
be rejected. This is done as a security measure.
|
|
|
|
\item The submitted file must obey the naming convention mentioned above,
|
|
otherwise the submission is rejected.
|
|
|
|
\item The package must contain a valid \ccAnchor{example/version}{version file}.
|
|
The version must be bigger than the previous version and a maintainer
|
|
should be mentioned.\index{version file@{\tt version} file}
|
|
|
|
\item It may be impossible to get the package from the WWW server.
|
|
This could be due to server failures, wrong permissions, misspellings
|
|
\etc
|
|
|
|
\item Some resources may be exhausted in Utrecht (quota problems, usually).
|
|
|
|
\end{itemize}
|
|
\ccIndexSubitemEnd{submitting}{problems with}
|
|
|
|
|
|
\section{Requirements and recommendations}
|
|
\label{sec:submission_req_and_rec}
|
|
|
|
\noindent
|
|
Requirements:
|
|
\begin{itemize}
|
|
\item Submit specifications to the editorial board before submitting
|
|
packages for internal releases.
|
|
\item Obey the directory structure outlined in Chapter~\ref{chap:directory_structure}.
|
|
\item Format your submission-notification email exactly as detailed above.
|
|
\end{itemize}
|
|
|
|
\noindent
|
|
Recommendations:
|
|
\begin{itemize}
|
|
\item Wait for approval from the editorial board before submitting packages
|
|
for internal releases.
|
|
\end{itemize}
|
|
|