Contributing to CGAL: Submission, Review, and IntegrationThis document describes the process of integrating a new feature into the CGAL library. A feature is a clearly delimited piece of functionality that is described by
Features may range from small (one new function, for example) up to large (a complex hierarchy of classes). Features may extend existing CGAL packages or form new packages. In order for a feature to become part of CGAL, it must be
submitted to the Editorial Board of CGAL first (*).
SubmissionThis is a two-stage process. The authors of a new feature first need to register it by providing a minimum amount of (mostly non-technical) information. This first stage allows the Editorial Board to check whether the intended feature is suitable for CGAL at all. The goal here is to avoid that the considerable effort of a formal submission (second stage) is wasted on out-of-scope features. RegistrationIn order to register a feature, the corresponding author should send an email to the Editorial Board, using the address cgal-info AT lists-sop.inria.fr. Within this email (or on a website that you linked to from the email), the following information must be provided.
The Review Manager acknowledges the registration. (S)he informs the corresponding author (usually within two weeks) by email whether the feature is invited for a formal submission. In case a feature is not invited, the decision will be explained to the authors. The decision process might involve further discussions with the authors. Formal SubmissionThe formal submission consists of
The user manual contains the motivation, purpose, and intended use of the feature, as well as examples and pictures, and implementation details (which algorithm has been implemented? What is its runtime?). The reference manual contains the precise API of the feature, meaning its concepts, classes, and functions. The formal submission does not involve source code, and its review is based purely on the user and reference manual. Source code will be looked at during the integration phase. Authors whose feature has been invited should send the formal submission to the Editorial Board of CGAL, again under cgal-info AT lists-sop.inria.fr. The Review Manager acknowledges the formal submission and gets back to the corresponding author (usually within six weeks) with the initial reviews. (*) ^ The only exception to these submission rules are for very small features (typically a slight modification in the specifications, like a new function) in an existing package, done by its maintainers. The maintainers of a package can perform such small changes under their own responsibility. However, such changes must still be announced using the wiki page dedicated to this case. Then the Editorial Board may ask for a review or object. ReviewThe review process is initiated by the Review Manager who appoints a primary reviewer for the feature. The primary reviewer is a member of the Editorial Board and responsible for communication with the authors. Besides his/her own review, the primary reviewer organizes at least a secondary review. Initial reviews are neither anonymous nor final; they are expected to be followed by a discussion between authors on the one hand and the reviewers on the other hand, with the goal of efficiently sorting out the critical issues. The whole review process is documented on an appropriate wiki page that is accessible to authors, reviewers, and all CGAL developers. The time frame for the discussion period following the initial reviews is flexible. The Review Manager makes sure that the primary reviewer remains responsive throughout the discussion. It is in the interest of the authors of the feature to remain responsive as well. When the discussion has stabilized, the primary reviewer proposes a decision (the API is accepted or rejected) to the Editorial Board, accompanying the proposal with the main arguments supporting it. The final decision is made accordingly unless there is an objection by an editor within fifteen days. Reasons for rejection may be insurmountable dissensions between authors and reviewers, or irresponsiveness on the side of the authors. The Review Manager will inform the corresponding author about the decision and explain it. In case of major modifications being requested, a second round of reviews may become necessary. A feature whose API (Reference Manual) has been accepted is called a candidate feature. The authors of a candidate feature are expected to become CGAL developers, in order to access the CGAL source code management system. From this point, they must maintain their code within CGAL's source code management system in a dedicated branch referred to as a "feature branch" (aka "topic branch"). Once the feature branch is available, the authors are invited by the Release Manager to integrate their code in the testing process. Every CGAL release has a Feature Freeze date.
A feature can be candidate for integration into a CGAL release only if the authors have done all modifications to the reference manual requested during the review process, and that these modifications have again been checked by the reviewers, before the Feature Freeze of the next release. ![]() IntegrationBefore a package can actually be integrated in a CGAL release, some more steps must be followed. We just sketch these steps in the current document:
Every CGAL release has a Code Freeze date.
The authors of a feature which has gone through the whole process
successfully, before the Code Freeze, are invited by the Release
Manager to merge the feature branch into the main development branch
(the "next" branch).
Last modified on Friday, 13-Feb-2015 11:41:07 CET.
contact information
|