This page is an ongoing effort to document current release process, gather important discussions points from the dev mailing list and progress toward a fully fledged release procedure with as much automation as possible. = Versioning scheme = Versions are numbered according to [http://semver.org semantic versioning], starting with 8.4.0. Tentative interface definition is defined by the standards supported in the [wiki:Features features matrix] and the command line tools parameters. = Initial process = A single main repository is maintained (as we already have). The repository contains two types of ''branches'' on it: * '''master''' -- the currently available branch, which will be the main development branch; * '''release''' -- on every final release (but not beta, rc, and other testing releases), a ''release'' branch is created with name '''release_vn.n.n'''. These branches will allow maintenance of past releases, while development continues in the master branch. A branch can be checked out {{{ git checkout release_vn.n.n }}} Every release, both testing and final, is marked by a ''tag'' '''vn.n.n''' in the repo, which can be checked out by {{{ git checkout vn.n.n }}} Releases can only be made if the [http://rasdaman.eecs.jacobs-university.de/trac/rasdaman/build build status] is successful for the latest commit. = Open issues = == Testing time == We should estabilish some time frame to advance in the release process: now we wait one week before advancing -rc if bugfixes come in. == Patch manager with branches == Patch manager will be updated to support the branching model.