Scilab is available under the GPL License. What does it means? You have the freedom to:
- use the software for any purpose,
- change the software to suit your needs,
- share the software with your friends and neighbors, and
- share the changes you make.
For more detail, you can refer to the quick guide on the GPL License.
How to distribute an application based on Scilab without violating the GPL License?
The toolbox mechanism of Scilab enables you to develop applications on top of Scilab, while applying your own license (proprietary or free).
Scilab is mainly developed by the Scilab team within Dassault Systemes…
but your participation is welcome !
Scilab development tools are hosted on GitLab.
Our quality process is also based on:
- Coding style is defined for all languages used in Scilab (C, C++, Java, XML, Scilab, Makefiles, …)
- Checkstyle is available for Java under Eclipse
- Code must be documented (comments using Javadoc, Doygen, …)
As in the case of new functionality implementation, each modification in Scilab code is reviewed and accepted by another developer.
- Unit tests (~1300): each new functionality is only integrated if it has a corresponding test and this test execution runs properly under all Scilab supported platforms,
- Non-regression tests (~1900): for each bug fix, a test is written to ensure its proper correction and prevent any future regression,
- Code coverage tools are used to check the tests quality.
Binary version generation
- Each commit into Scilab GIT repository launches a continuous integration process based on GitLab CI,
- Daily build of Scilab binary through a nightly build process executes all unitary tests and non-regression tests under all supported platforms,
- Various compilers are supported (Visual Studio, Intel, GCC, Clang, …).
Functionalities can be proposed by the community using the following process:
- Specifications drafting: SEP (Scilab enhancement proposal),
- Respect of Scilab coding style for development,
- Writing of unitary tests are written,
- Writing of corresponding help page.
The functionality is integrated only after being reviewed and validated by another developer.
Useful for development
Build chain/Compilation & Test Chain (GitLab CI)
Coverage/quality analysis (Coverity)
Merge Request (GitLab)
Code repository (GitLab)