1. Scilab branch policies
Scilab is using a classical way of release. We use a 3 digit numeration system:
X.Y.Z
Incrementing X is considered as a major release
Y as a medium
Z as a minor
1.1. Major releases
We have some major families:
- 4 - Old release
5 - New GUI, new rendering system, new building system under GNU/Linux, Mac OS X & Unix, modularization of the code
6 - (Future) New kernel - YaSp
Major/medium releases are done when important modifications are done in the code and they could influence toolboxes, existing codes... Any major evolution of the Scilab language are done through a major release, especially if it introduces compatibility issues.
1.2. Medium releases
In a major family, many medium versions are released. Medium releases introduce some important changes, new module, new feature, etc. Some changes in the function profile can also occurs but Scilab language must remains compatible with previous release.
1.3. Minor releases
Versions fixing bugs which don't involve big or tricky changes in the code. For example, 5.0.1, 5.0.2 ...
2. Purpose of each branch
Since we are using git, it is pretty easy to manage the different versions.
The list of branches can be seen on GitWeb.
2.1. Main development branches
YaSp - Development branch for the new kernel called YaSp (base of Scilab 6). Don't expect this version to work on a daily basis.
master - Main development branch. For the time being, it is used for the bleeding edge Scilab that will become version 5.4.
5.3 - Branch for the family 5.3.X, only bug fixes are done in this branch.
5.2 - This branch is now closed since Scilab 5.2.X is no longer maintain.
5.1 - This branch is now closed since Scilab 5.1.X is no longer maintain.
5.0 - This branch is now closed since Scilab 5.0.X is no longer maintain.
2.2. Temporary development branches
Some other branches are used to avoid disruption while a specific feature is under development. These branches are not supposed to live forever. Once the development they are hosting is completed, they will be merged into the master branch. More information about the purpose of each such temporary branch:
graphic - Testing branch for tests for the problem described in Graphical issues with Scilab 5.0
2.3. Any other branch
All other branches are dead (no longer used). These are:
scilab-macosx - This branch was used between Scilab 5.0 and 5.1 to prepare the MacOsX version. After Scilab 5.1, this branch is deprecated since development on MacOsX happens in 5.1 or master branches
charencoding - This branch was temporarily used to analyze the impacts of a patch for localization in the fileio module
OpenMP - Enables OpenMP options and provides some HPC features.
sas - This working branch is used as a transition branch in the gateway rewrite process (separation of the stack function/numerical function). See SASsification for more information.
scicos - Scicos to Xcos merging branch
2.4. Working with branches
2.4.1. Checkout a specific branch
The case does matter.
git clone git@git.scilab.org:scilab -b 5.3 5.3
2.4.2. Fixing a bug
See: How to close a bug in Scilab
2.4.3. Commands
See these pages :