Salome HOME
ajout d'infos debug dans l'environnement
[tools/sat.git] / doc / src / release_notes / release_notes_5.7.0.rst
1 *****************
2 SAT version 5.7.0
3 *****************
4
5 Release Notes, November 2020
6 ============================
7
8
9 New features and improvements
10 -----------------------------
11
12
13 **New field build_depend used in product configuration files**
14
15 In order to improve the setting of the environment at run-time and compile-time, a new field was introduced in the product configuration files : *build_depend*.
16 This field allows the user to specify which products are required for the build (use the field *build_depend*) , and which one are used at runtime (use the former field *depend*).
17 If a product is used at both build and runtime it is only declared (like before) in the *depend* field (it is the case for example of graphviz which is used at build-time by doxygen, and at run-time by YACS).
18
19 These two fields are used by sat accordingly to the context for the dependencies evaluation.
20 Here is the example of med prerequisites (medfile.pyconf), which depends at runtime on hdf5 and python, and requires cmake for the compilation: ::
21
22     ...
23     depend : ["hdf5", "Python"]
24     build_depend : ["cmake"]
25
26
27 **New option --update for sat compile**
28
29 The time spent to compile salome and its 60 prerequisites is regularly increasing... and can exceed ten hours on slow computers!
30 It is therefore problematic and expensive in term of resources to recompile completely salome everyday.
31 The **--update** option was introduced to allow compiling only the products which source code has changed.
32 This option is **only implemented for git** (not for svn and cvs).
33 To use the option, one has to call *sat prepare* before. this call will get new sources, and will allow sat checking if the source code was modified since the last compilation.
34 The mechanism is based upon git *log -1* command, and the modification of the source directory date accordingly: ::
35   
36     # update SALOME sources and set the date of the source directories of git 
37     # products accordingly: to the last commit
38     ./sat prepare <application> --properties  is_SALOME_module:yes
39
40     # only compile products that has to be recompiled.                                             
41     sat compile <application> --update
42
43 This option can also be mixed with *--proterties* option, to avoid recompiling salome prerequisites: ::
44
45
46     # only compile SALOME products which source code has changed
47     sat compile <application> --update --properties is_SALOME_module:yes
48
49
50 **sat do not reinitialise PATH, LD_LIBRARY_PATH and PYTHONPATH variables anymore**
51
52 The last versions of sat were reinitialising the PATH, LD_LIBRARY_PATH and PYTHONPATH variables before the compilation.
53 The objective was to avoid bad interaction with the user environment, and ensure that sat environmnent was correctly set for build.
54 Alas this policy causes difficulties, notably on cluster where people sometimes need to use an alternate compiler and have to set it through *module load* command.
55 It was therefore decided to suppress this policy.
56
57 Please note that apart from this use case (set the environment of a specific compiler) it is strongly advised to use sat with a clean environment!
58 Note also that it is possible to manage with sat a compiler as a product, and therefore delegate the setting of this compiler to sat. When you have the choice it is a better option.
59
60 Change log
61 ----------
62
63 This chapter does not provide the complete set of changes included, only the
64 most significant changes are listed.
65
66
67 +-------------+-----------------------------------------------------------------------------------+
68 | Artifact    | Description                                                                       |
69 +=============+===================================================================================+
70 | sat #19888  | suppress at compile time the reinit if PATH, LD_LIBRARY_PATH and PYTHONPATH       |
71 +-------------+-----------------------------------------------------------------------------------+
72 | sat #19894  | use the product configuration file to assert if a product was compiled or not.    |
73 |             | (before sat was using the product directory, which was in some cases error prone) |
74 +-------------+-----------------------------------------------------------------------------------+