blob: e1a27bbd32625d8178e706cc67061ba3ba80ba96 [file] [log] [blame]
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
This document summarizes the development process of Commons RNG:
1. The "master" branch collects all modifications that will be part
of the next release.
Usually, non trivial changes should not be committed directly to the "master"
branch; they should be merged from a branch specifically created for
that purpose (see next point).
2. Work on an identified issue (bug fix or new feature) must be done in a
new branch named after its corresponding report in the bug-tracking
system (JIRA), e.g. "feature-RNG-123".
After completion, and in the absence of technical objections, the feature
branch is merged into the "master" branch, using the "--no-ff" git
option.
That feature branch is then deleted.
Please note that a contribution that consists in the implementation of a
"reference" generator, i.e. an algorithm described in a scientific paper
or code published by a trusted party (e.g. an expert in the field, or the
standard library of another programming language) will only be accepted
if it comes with
1. a unit test where the output (say, a few hundred numbers) of "Commons RNG"
is compared against another implementation,
2. the outputs of the "RandomStressTester" (Java source is in module
"commons-rng-examples"), piping from the "Dieharder" and "TU01/BigCrush"
actual stress test suites (these software must be installed separately;
the C source of a simple interface to the "TU01" library is in module
"commons-rng-examples").