{"size": 1104, "ext": "scrbl", "max_stars_repo_path": "scribblings/guidelines.scrbl", "max_stars_repo_name": "v-for-vincent/racket-control-compiler", "max_stars_repo_stars_event_min_datetime": "2017-06-03T19:55:16.000Z", "max_stars_repo_stars_event_max_datetime": "2017-06-03T19:55:16.000Z", "max_issues_repo_path": "scribblings/guidelines.scrbl", "max_issues_repo_name": "v-nys/cclp", "max_issues_repo_issues_event_min_datetime": "2017-04-11T08:13:36.000Z", "max_issues_repo_issues_event_max_datetime": "2018-04-18T13:16:06.000Z", "max_forks_repo_path": "scribblings/guidelines.scrbl", "max_forks_repo_name": "v-for-vincent/racket-control-compiler", "max_forks_repo_forks_event_min_datetime": null, "max_forks_repo_forks_event_max_datetime": null}
{"max_stars_count": 1, "max_issues_count": 58, "max_forks_count": null, "avg_line_length": 48.0, "max_line_length": 119, "alphanum_fraction": 0.7880434783}
#lang scribble/manual
@title{Guidelines for the CCLP codebase}
The following are conventions I try to stick to for the CCLP code base.
I have not always been consistent, which is part of the reason why I'm writing them down.
They may contradict some more common Racket guidelines that I am not aware of.

@section{Closing issues}
Before any issue (i.e. a feature, bug or other atomic modification) is closed,
the following checks are required:
@itemlist[
 @item{Is the principle behind the code reasonably elegant?}
 @item{Is every public function documented?}
 @item{Is every public function properly tested?}
 @item{Is the interface compact and testable?}]

@section{Ordering @racket[require] forms}
Forms that involve @racket[require] are organized as follows:
@itemlist[
 @item{By phase: expansion before runtime before documentation time}
 @item{By origin: libraries included in the Racket distribution, then external dependencies, then files in the project}
 @item{Alphabetically, by collection}]

All @racket[require] forms relating to the same phase are grouped in a single @racket[require] form.