sticky-modules.rst (modules-5.1.1.tar.bz2) | : | sticky-modules.rst (modules-5.2.0.tar.bz2) | ||
---|---|---|---|---|
skipping to change at line 14 | skipping to change at line 14 | |||
============== | ============== | |||
Configuration | Configuration | |||
------------- | ------------- | |||
- No specific configuration | - No specific configuration | |||
Specification | Specification | |||
------------- | ------------- | |||
- Once loaded a sticky module cannot be unloaded unless forced or reloaded. | - Once loaded a sticky module cannot be unloaded unless | |||
- forced | ||||
- or reloaded | ||||
- or when restoring a collection | ||||
- or resetting to initial environment state | ||||
- If module is super-sticky instead of sticky, it cannot be unloaded even if for ced, only if it is reloaded afterward | - If module is super-sticky instead of sticky, it cannot be unloaded even if for ced, only if it is reloaded afterward | |||
- Stickiness definition relies on :ref:`module-tags` | - Stickiness definition relies on :ref:`module-tags` | |||
- ``module-tag sticky foo/1.0`` defines module *foo/1.0* as sticky | - ``module-tag sticky foo/1.0`` defines module *foo/1.0* as sticky | |||
- ``module-tag super-sticky foo/1.0`` defines module *foo/1.0* as super-stic | - ``module-tag super-sticky foo/1.0`` defines module *foo/1.0* as super-sticky | |||
ky | ||||
- Stickiness specified over a symbolic version or a module alias has no effect | - Stickiness specified over a symbolic version or a module alias has no effect | |||
- ``module-tag`` allows to specify a symbolic module version or a module ali | - ``module-tag`` allows to specify a symbolic module version or a module alias | |||
as | - but associated tag will apply to the symbolic version or alias only | |||
- but associated tag will apply to the symbolic version or alias only | - as modulefile targeted by symbol or alias does not inherit their tags | |||
- as modulefile targeted by symbol or alias does not inherit their tags | - so a sticky or super-sticky tag set on a symbolic version or alias has no ef | |||
- so a sticky or super-sticky tag set on a symbolic version or alias has no | fect | |||
effect | ||||
- Sticky module can be swapped with another version from same module when sticki ness is defined over module parent name | - Sticky module can be swapped with another version from same module when sticki ness is defined over module parent name | |||
- For instance if stickiness is defined over module *foo*, *foo/1.0* can be | - For instance if stickiness is defined over module *foo*, *foo/1.0* can be sw | |||
swapped with *foo/2.0* | apped with *foo/2.0* | |||
- Such swap could occur from a ``restore`` or a ``switch`` sub-command | - Such swap could occur from a ``restore`` or a ``switch`` sub-command | |||
- As soon as stickiness is defined over a precise module version name (like | - As soon as stickiness is defined over a precise module version name (like *f | |||
*foo/1.0*) such module cannot be swapped by another version of *foo* module | oo/1.0*) such module cannot be swapped by another version of *foo* module | |||
- Stickiness defined over module parent name (like *foo*) means *any version | - Stickiness defined over module parent name (like *foo*) means *any version f | |||
from module foo must be loaded* | rom module foo must be loaded* | |||
- When stickiness is defined for several module versions using advanced vers | - When stickiness is defined for several module versions using advanced versio | |||
ion specifiers like *foo@1:* or *foo@1.0,2.0* | n specifiers like *foo@1:* or *foo@1.0,2.0* | |||
- it means stickiness applies to the module versions | - it means stickiness applies to the module versions | |||
- thus they cannot be swapped by another version | - thus they cannot be swapped by another version | |||
- In case stickiness is defined over module parent name and another ``module -tag`` defines stickiness over specific module version name | - In case stickiness is defined over module parent name and another ``module-t ag`` defines stickiness over specific module version name | |||
- it means stickiness applies to the module version | - it means stickiness applies to the module version | |||
- thus these versions targeted specifically with ``module-tag`` cannot b | - thus these versions targeted specifically with ``module-tag`` cannot be sw | |||
e swapped by another version from same module | apped by another version from same module | |||
- When a super-sticky module depends on a non-super-sticky module | - When a super-sticky module depends on a non-super-sticky module | |||
- If a forced ``purge`` command occurs, the dependent module will be unloade | - If a forced ``purge`` command occurs, the dependent module will be unloaded | |||
d | - Which let the super-sticky module with a missing dependency | |||
- Which let the super-sticky module with a missing dependency | ||||
- Starting Modules 5.2, sticky modules are unloaded | ||||
- On :subcmd:`restore` sub-command | ||||
- On :subcmd:`reset` sub-command if :mconfig:`reset_target_state` is not equal | ||||
to ``__purge__`` | ||||
- No specific error or warning message | ||||
- This is allowed to fully restore the collection in its targeted state | ||||
- No change for super-sticky modules | ||||
- An error is reported when trying to unload a sticky or super-sticky module | - An error is reported when trying to unload a sticky or super-sticky module | |||
- As the expected unload is not performed | - As the expected unload is not performed | |||
- So with the return code and message, user knows that what he/she asked for | - So with the return code and message, user knows that what he/she asked for w | |||
was not done | as not done | |||
- Same goes for the ``purge`` command: user expects no more module loaded | - Same goes for the ``purge`` command: user expects no more module loaded | |||
- so an error is returned as after the command the sticky module is stil l loaded | - so an error is returned as after the command the sticky module is still lo aded | |||
- When the unload is forced a warning message is reported | - When the unload is forced a warning message is reported | |||
- the sticky module is unloaded as expected but a warning message is don | - the sticky module is unloaded as expected but a warning message is done | |||
e | - as the module was tagged not to be unloaded by default | |||
- as the module was tagged not to be unloaded by default | - user should know he/she has done something specific | |||
- user should know he/she has done something specific | ||||
Current limitations | Current limitations | |||
------------------- | ------------------- | |||
- When swapping a sticky module explicitly targeted by the ``module-tag`` comman d and which is the default version | - When swapping a sticky module explicitly targeted by the ``module-tag`` comman d and which is the default version | |||
- For instance ``module-tag sticky foo/1.0`` and ``module-version foo/1.0 de | - For instance ``module-tag sticky foo/1.0`` and ``module-version foo/1.0 defa | |||
fault`` | ult`` | |||
- If specified swapped-on module is the generic module name, for instance *f | - If specified swapped-on module is the generic module name, for instance *foo | |||
oo* | * | |||
- ``switch`` sub-command raises an error even if the sticky module is the de | - ``switch`` sub-command raises an error even if the sticky module is the defa | |||
fault version (either implicit or explicitly set) for this module | ult version (either implicit or explicitly set) for this module | |||
.. vim:set tabstop=2 shiftwidth=2 expandtab autoindent: | ||||
End of changes. 13 change blocks. | ||||
38 lines changed or deleted | 49 lines changed or added |