Tests can break when ran in user environments if the output is
customized, either by config options (like aliases) or extensions.
Details
- Reviewers
ardumont - Group Reviewers
Reviewers - Commits
- rDLDHGef3a2ba79ea9: Make Mercurial's behavior predictable for scripts
rDLDHG09b3c6daa7dd: Filter `hg` subprocess environment to the minimum
rDLDHG70dcbb67e6f5: Sort imports according to `isort` rules
rDLDHG8c81de02c9b3: Disable user customization in Mercurial tests - Required Signatures
L3 Software Heritage Contributor License Agreement, version 1.0
Diff Detail
- Repository
- rDLDHG Mercurial loader
- Branch
- mercurial-plain
- Lint
No Linters Available - Unit
No Unit Test Coverage - Build Status
Buildable 19408 Build 30102: Phabricator diff pipeline on jenkins Jenkins console · Jenkins Build 30101: arc lint + arc unit
Event Timeline
Build is green
Patch application report for D5124 (id=18323)
Rebasing onto d8f28b70fa...
Current branch diff-target is up to date.
Changes applied before test
commit 728c56c46373113217a8dc0caea1de6e849a2879 Author: Raphaël Gomès <rgomes@octobus.net> Date: Mon Feb 22 11:49:21 2021 +0100 Disable user customization in Mercurial tests Tests can break when ran in user environments if the output is customized, either by config options (like aliases) or extensions.
See https://jenkins.softwareheritage.org/job/DLDHG/job/tests-on-diff/152/ for more details.
My reasonning for only adding this to tests is that I'm assuming whatever machine is doing the loading may have a good reason to load extensions/have some sort of config and that it should be isolated enough from developpers. But it wouldn't hurt to be proactive about it either.
I am not sure where this change would need to be done, though.
Possibly this should be scope="session"? Since this trickles down to all subprocesses. That's a minor optimization, but might as well not be wasteful for no reason.
But that's not good if it changes the output format; and it may make hg behave differently, doesn't it?
I am not sure where this change would need to be done, though.
When calling subprocess function, there is an env attribute. We could use the opportunity to filter out the entire env except $PATH
- Disable user customization in Mercurial tests
- Sort imports according to isort rules
- Filter hg subprocess environment to the minimum
- Make Mercurial's behavior predictable for scripts
Build has FAILED
Patch application report for D5124 (id=18348)
Rebasing onto d8f28b70fa...
Current branch diff-target is up to date.
Changes applied before test
commit cea44f672ead5fa4bb198b341d40c0d55cac7eed Author: Raphaël Gomès <rgomes@octobus.net> Date: Tue Feb 23 15:54:54 2021 +0100 Make Mercurial's behavior predictable for scripts This change adds two environment variables that have been supported for 10+ years by Mercurial to make its output predictable for use in scripts. This was already done by a previous patch in tests, but it is also (even more?) useful here. commit d2dad04d27d795eda33cb02a9706b8286bb28f1e Author: Raphaël Gomès <rgomes@octobus.net> Date: Tue Feb 23 15:50:26 2021 +0100 Filter `hg` subprocess environment to the minimum We don't want the user's environment to affect `hg`'s behavior. The bare minimum is the `PATH`. In the next patch, we add the Mercurial-specific variables to ensure a "vanilla" behavior. commit 58abf7790a7bad36c067e9e6a067ad53abc49bd7 Author: Raphaël Gomès <rgomes@octobus.net> Date: Tue Feb 23 15:48:07 2021 +0100 Sort imports according to `isort` rules The next patch will add an import and `isort` was complaining. It appears that this file hasn't been changed since the `isort` change. commit 4805abbb440ef151caf2e68db448424dc5d41c31 Author: Raphaël Gomès <rgomes@octobus.net> Date: Mon Feb 22 11:49:21 2021 +0100 Disable user customization in Mercurial tests Tests can break when ran in user environments if the output is customized, either by config options (like aliases) or extensions.
Link to build: https://jenkins.softwareheritage.org/job/DLDHG/job/tests-on-diff/154/
See console output for more information: https://jenkins.softwareheritage.org/job/DLDHG/job/tests-on-diff/154/console
- Disable user customization in Mercurial tests
- Sort imports according to isort rules
- Filter hg subprocess environment to the minimum
- Make Mercurial's behavior predictable for scripts
Build is green
Patch application report for D5124 (id=18350)
Rebasing onto d8f28b70fa...
Current branch diff-target is up to date.
Changes applied before test
commit ef3a2ba79ea9646a69af8683f26d51a0173189e5 Author: Raphaël Gomès <rgomes@octobus.net> Date: Tue Feb 23 15:54:54 2021 +0100 Make Mercurial's behavior predictable for scripts This change adds two environment variables that have been supported for 10+ years by Mercurial to make its output predictable for use in scripts. This was already done by a previous patch in tests, but it is also (even more?) useful here. commit 09b3c6daa7ddf270894302c8501ef9a6ce17102c Author: Raphaël Gomès <rgomes@octobus.net> Date: Tue Feb 23 15:50:26 2021 +0100 Filter `hg` subprocess environment to the minimum We don't want the user's environment to affect `hg`'s behavior. The bare minimum is the `PATH`. In the next patch, we add the Mercurial-specific variables to ensure a "vanilla" behavior. commit 70dcbb67e6f5169dffdeaf5aed03c462b448baf8 Author: Raphaël Gomès <rgomes@octobus.net> Date: Tue Feb 23 15:48:07 2021 +0100 Sort imports according to `isort` rules The next patch will add an import and `isort` was complaining. It appears that this file hasn't been changed since the `isort` change. commit 8c81de02c9b3dfb25c1751a947665694ad7ebd6b Author: Raphaël Gomès <rgomes@octobus.net> Date: Mon Feb 22 11:49:21 2021 +0100 Disable user customization in Mercurial tests Tests can break when ran in user environments if the output is customized, either by config options (like aliases) or extensions.
See https://jenkins.softwareheritage.org/job/DLDHG/job/tests-on-diff/155/ for more details.