Repository navigation
Conversation
6950a4d to
b8076f5
Compare
Test Results0 tests 0 ✅ 0s ⏱️ Results for commit a68bfda. ♻️ This comment has been updated with latest results. |
b8076f5 to
b02753b
Compare
hageboeck
left a comment
There was a problem hiding this comment.
This change probably warrants some info in the release notes.
Also, if it's too much work/noise to flip the logic, leave it.
ef4d149 to
524479e
Compare
524479e to
d714644
Compare
717b645 to
d41aa49
Compare
Add a new option for constructing TEnv that allows to disable the local level. If disabled, configuration cannot be read anymore into the local level, the local level cannot be saved and values cannot be set in the local level. Effectively, the local level is always empty in this mode. By default, new instances of TEnv have the local level _enabled_. Only gEnv has it disabled to prevent environment poisoning. The old behavior can be restored by setting the ROOTENV_USE_LOCAL environment variable to a non-empty string.
| THashList *fTable = nullptr; // hash table containing env records | ||
| TString fRcName; // resource file base name | ||
| Bool_t fIgnoreDup = false; // ignore duplicates, don't issue warning | ||
| Bool_t fIsLocalLevelEnabled = true; //! By default, gEnv does not allow use of the local level |
There was a problem hiding this comment.
SInce it is transient (as it should) but the TEnv can be stored, do we need to take care of setting up with the current value when reading it back?
There was a problem hiding this comment.
I am not sure. I think you can argue either way. One argument for leaving it the way it currently is may be that if you deliberately create a TEnv that should disable the local level, then read "contents" from disk and then save it or re-read things, your behavioral trait of disabling the local level should stay as it was in the beginning. But this is quite hypothetical and you can probably also argue either way.
Overall, I don't see a compelling reason to do anything special.
|
This change would have benefited from being part of master for a while before a release so that it can be tested a bit in the wild (at least through some of the LHC experiments' build) |
I do not intend to rush this into the release if we don't feel confident about the change. |
The custom settings are in the .rootrc file are no longer needed since v6.40.
|
After discussion in the I/O meeting, the consensus was that this change requires further discussion. |
Add a new option for constructing TEnv that allows to disable the local
level. If disabled, configuration cannot be read anymore into the local
level, the local level cannot be saved and values cannot be set in the
local level. Effectively, the local level is always empty in this mode.
By default, new instances of TEnv have the local level enabled. Only
gEnv has it disabled to prevent environment poisoning.
The old behavior can be restored by setting the
ROOTENV_USE_LOCALenvironment variable to a non-empty string.
Note: first two commits submitted as separate PR #22783