Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Windows Gitbash Support Fixes #1302 #1475

Open
wants to merge 124 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
124 commits
Select commit Hold shift + click to select a range
9f0d5ee
Add pathing options to shells
amorphousWaste Aug 20, 2022
bfc99e2
Add pathing options for cmd
amorphousWaste Aug 20, 2022
8eb7f5a
Add pathing options to gitbash
amorphousWaste Aug 20, 2022
7d66f00
Add slash expansion
amorphousWaste Aug 20, 2022
1e1d4b2
Conform drive start letters
amorphousWaste Aug 20, 2022
ff7a11c
Quote executable
amorphousWaste Aug 20, 2022
0ce60ab
Use new pathing option for shell paths
amorphousWaste Aug 20, 2022
a91a4c5
Add pathing options to rex
amorphousWaste Aug 20, 2022
f3e2b68
Use new path option
amorphousWaste Aug 20, 2022
744e8f9
Add shell_pathed_env_vars to config
amorphousWaste Sep 22, 2022
7aaaecb
Add classmethod to check for shell pathed keys
amorphousWaste Sep 22, 2022
640e44c
Add is_shell_path arg to escape_string
amorphousWaste Sep 22, 2022
c55ee1b
Add is_shell_path arg to escape_string overrides
amorphousWaste Sep 22, 2022
a9d4de5
Update call to escape_string with is_shell_path arg
amorphousWaste Sep 22, 2022
7057632
Capitalize drive letter on windows path conversion
amorphousWaste Sep 22, 2022
2a51e0c
Fix docstring
amorphousWaste Sep 24, 2022
7f20c9e
Change "cygwin" to "cygpath"
amorphousWaste Sep 24, 2022
e37e7f2
Change "cygwin" to "cygpath"
amorphousWaste Sep 24, 2022
bb3bb0d
Fix call
amorphousWaste Oct 3, 2022
51d9af0
Add description to shell_pathed_env_vars
amorphousWaste Oct 3, 2022
e997c9e
Add convert_path wrapper
amorphousWaste Oct 3, 2022
f9607b5
Update to_posix_path
amorphousWaste Oct 3, 2022
6834fb2
Update to_windows_path
amorphousWaste Oct 3, 2022
1e5b3f2
Use new convert_path function
amorphousWaste Oct 3, 2022
4976105
Replace as_shell_path with as_path
amorphousWaste Oct 4, 2022
e12ef77
Add to_windows_path function
amorphousWaste Oct 4, 2022
af69b8d
Revert erroneous change
amorphousWaste Oct 4, 2022
489b7bc
Swap if statement for better readability
amorphousWaste Oct 14, 2022
0b5594c
Update normalize_paths replacement
amorphousWaste Oct 14, 2022
c7e7454
Correct capitalization
amorphousWaste Oct 14, 2022
42e37f9
Change `as_shell_path` with `as_path`
amorphousWaste Oct 14, 2022
267c3e3
Update implicit package value expansion
amorphousWaste Oct 14, 2022
9d0bdde
Add special regex for mixed drive letters
amorphousWaste Oct 25, 2022
db30108
Fix path slashes
amorphousWaste Oct 25, 2022
688337a
Conform strings
amorphousWaste Oct 25, 2022
3b6b3c5
Fix path conversions
amorphousWaste Oct 25, 2022
a92bdc6
Add special logic for implicit keys and values
amorphousWaste Oct 25, 2022
3683a78
Merge with 2.112.0 changes
amorphousWaste Nov 18, 2022
3f3ed75
Add disable_normalization flag to config
amorphousWaste Nov 24, 2022
b3a76f5
Add disable normalization test
amorphousWaste Nov 24, 2022
3d5d5bb
Create shell utils tests
amorphousWaste Nov 24, 2022
cd97e30
Add logic for skipping path normalization
amorphousWaste Nov 24, 2022
d828b2e
Add debugging output to path conversion
amorphousWaste Nov 24, 2022
8d79945
Add beginnings of e2e shell tests
Jawabiscuit Apr 21, 2023
ff5c1f5
Make copyright checker happy
Jawabiscuit May 12, 2023
9ee6346
Make linter happy
Jawabiscuit May 12, 2023
f5e9b7a
Set root loglevel to INFO
Jawabiscuit May 12, 2023
a9aeb94
Consolidate logging messages into shell normalization processes
Jawabiscuit May 12, 2023
9fa4af6
Remove unused imports
Jawabiscuit May 15, 2023
c13efbd
Fix Linux unittest
Jawabiscuit May 15, 2023
8a2040c
Fix unicode decode error
Jawabiscuit May 31, 2023
a8f2f7d
Fix rez selftest error on ubuntu using bash
Jawabiscuit May 31, 2023
5a62599
Remove commented code
Jawabiscuit May 31, 2023
af4365d
Remove debug code
Jawabiscuit May 31, 2023
9bde403
Fix bash.exe for gitbash not being found
Jawabiscuit Jun 1, 2023
f7f06b1
Revert sourcecode.py
Jawabiscuit Jun 12, 2023
ee0e0bd
Back to normalizing slash to backslash in cmd and powershell
Jawabiscuit Jun 12, 2023
ff743db
Revert log level to debug
Jawabiscuit Jun 10, 2023
0ec2eed
Configurable shell logging
Jawabiscuit Jun 12, 2023
0ef8df0
Fix rez bind python-2 on Windows
Jawabiscuit Jun 10, 2023
0186176
Rename disable_normalization -> enable_path_normalization
Jawabiscuit Jun 12, 2023
d894bb3
Formatting and cleaning up diffs w/ master
Jawabiscuit Jun 12, 2023
c3e6ce5
Temporary fix for normalizing PYTHONPATH
Jawabiscuit Jun 12, 2023
685ff34
Add shell_pathed_env_vars setting
Jawabiscuit Jun 13, 2023
e3df9b6
Implement shell env var sep settings
Jawabiscuit Jun 13, 2023
41e3aa3
Remove wildcard from pathed env vars setting
Jawabiscuit Jun 13, 2023
3ddcfd7
Change function signature
Jawabiscuit Jun 13, 2023
b119326
Extend cygpath convert to handle more scenarios
Jawabiscuit Jun 13, 2023
c8463ff
Refactor to remove unnecessary force fwd slashes
Jawabiscuit Jun 14, 2023
d5510de
Refactor cygpath to posix path
Jawabiscuit Jun 14, 2023
332a19f
Platform dependent test decorator
Jawabiscuit Jun 14, 2023
75a904a
Remove to windows path conversion
Jawabiscuit Jun 14, 2023
d05e752
Refactor cygpath to mixed path
Jawabiscuit Jun 15, 2023
519c462
Extend functionality of posix and mixed path conversion
Jawabiscuit Jun 16, 2023
89fa4ac
Backwards compat unittest regex assertions
Jawabiscuit Jun 16, 2023
5fab1ce
More UNC path handling and unittests
Jawabiscuit Jun 16, 2023
5a28572
Revert gitbash.py style changes
Jawabiscuit Jun 20, 2023
4213333
Extend rez bind hello_world for unittests and cli
Jawabiscuit Jun 20, 2023
1c54516
Use single quotes to format executable
Jawabiscuit Jun 22, 2023
cfd8846
Keep unittests DRY, override `default_shell` in test decorator
Jawabiscuit Jun 21, 2023
32cb146
Fix rez suites test
Jawabiscuit Jun 21, 2023
a34dc14
Fix typo
Jawabiscuit Jun 22, 2023
d6d0efe
Add more e2e shell tests
Jawabiscuit Jun 22, 2023
08b77e9
Use shell startup setting to enable warnings or errors
Jawabiscuit Jun 22, 2023
6fcf1d1
Skip parts of tests in certain shells in CI for now
Jawabiscuit Jun 23, 2023
4c5f1ec
Handle relative paths more gracefully
Jawabiscuit Jun 24, 2023
2b83e8b
Enable use of a small list of included shells per test
Jawabiscuit Jun 25, 2023
fbc6e7f
Reinstate wildcard pathed env vars setting
Jawabiscuit Jun 25, 2023
574190d
Test root path normalization
Jawabiscuit Jun 25, 2023
c16568a
Test path convert with empty paths as is the case with variant subpaths
Jawabiscuit Jun 25, 2023
143cbad
Fixup diff with master
Jawabiscuit Jun 25, 2023
c01d569
Enable path normalization and default shell consistency
Jawabiscuit Jun 25, 2023
5c9b251
Drive letter case consistency with canonical paths
Jawabiscuit Jun 25, 2023
2599cbf
Handle `~` string expansion on windows
Jawabiscuit Jun 25, 2023
0c8380b
Use cygpath convert in GitBash normalize_paths
Jawabiscuit Jun 26, 2023
38a6211
Per available shell tests consistency
Jawabiscuit Jun 26, 2023
89b5119
Remove debugging artifact
Jawabiscuit Jun 26, 2023
d851bea
Remove check for implicit paths in string escape
Jawabiscuit Jun 26, 2023
04a8673
Inline documentation
Jawabiscuit Jun 26, 2023
de40018
Make linter happy
Jawabiscuit Jun 26, 2023
ce42276
Workaround CI test error in certain shells.
Jawabiscuit Jun 26, 2023
626cbc6
Tweaking rezconfig documentation
Jawabiscuit Jun 26, 2023
38ab2e5
Fix character encoding error
Jawabiscuit Jun 26, 2023
595c9e8
Do not raise an error if converting an unmapped UNC path
Jawabiscuit Jul 28, 2023
07c762a
Cleanup unnecessary per available shell config override
Jawabiscuit Jul 29, 2023
4fe7417
Add cmake module path default config and e2e test for gitbash
Jawabiscuit Aug 1, 2023
a36adcc
Fix UNC path expansion for custom builds
Jawabiscuit Aug 1, 2023
63d1fe6
Normalize paths used in cmake build command
Jawabiscuit Aug 2, 2023
f5920fc
Fix python env path prepends in gitbash
Jawabiscuit Aug 3, 2023
c2cac0e
Change CI detection
Jawabiscuit Aug 5, 2023
049070b
Per shell config overrides are handled by test decorator
Jawabiscuit Aug 5, 2023
868cfde
Newer versions of chocolatey & .NET 4.8 require restart
Jawabiscuit Aug 5, 2023
ee46d3c
Env var seps weren't actually being overridden here
Jawabiscuit Aug 6, 2023
9d55dec
Consolidate and make more meaningful e2e shell tests
Jawabiscuit Aug 6, 2023
544272a
Remove extra import
Jawabiscuit Aug 6, 2023
3da8f11
Address sonarcube bug and code smells
Jawabiscuit Aug 6, 2023
ac3ff37
This partially addresses #1321 because it only fixes the issue in cmd…
Jawabiscuit Aug 11, 2023
d0958cd
Add cmake build test and path normalization test for Windows
Jawabiscuit Aug 10, 2023
76cb8cb
Address cmake build failures on Windows in powershell and pwsh
Jawabiscuit Aug 10, 2023
c6fc1da
Fix e2e test for py ver < 3.3
Jawabiscuit Aug 27, 2023
ae11f37
Add Sphinx syntax where appropriate
Jawabiscuit Sep 15, 2023
3ff62e9
Enforce consistency between *pendenv methods
Jawabiscuit Sep 15, 2023
25665f5
Merge branch 'main' into fixes_#1302
JeanChristopheMorinPerso Jan 27, 2024
1778f57
Fix test_shells after merge
JeanChristopheMorinPerso Jan 27, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 7 additions & 2 deletions src/rez/bind/python.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
make_dirs, log, run_python_command
from rez.package_maker import make_package
from rez.system import system
from rez.utils.lint_helper import env
from rez.utils.lint_helper import env, this
from rez.utils.platform_ import platform_
import shutil
import os.path
Expand Down Expand Up @@ -71,7 +71,12 @@ def bind(path, version_range=None, opts=None, parser=None):
def make_root(variant, root):
binpath = make_dirs(root, "bin")
link = os.path.join(binpath, "python")
platform_.symlink(exepath, link)
# Symlinks to python2 on windows break python, so we copy the exe
if platform_.name == "windows" and str(version.major) == "2":
link += ".exe"
shutil.copy(exepath, link)
else:
platform_.symlink(exepath, link)

if builtin_paths:
pypath = make_dirs(root, "python")
Expand Down
2 changes: 1 addition & 1 deletion src/rez/cli/selftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ def setup_parser(parser, completions=False):
parser.add_argument(
"-s", "--only-shell", metavar="SHELL",
help="limit shell-dependent tests to the specified shell. Note: This "
"flag shadowed pytest 'capture=no' shorthand '-s', so the long "
"flag shadowed pytest '-capture=no' shorthand '-s', so the long "
"name must be used for disabling stdout/err capturing in pytest."
)
parser.add_argument(
Expand Down
5 changes: 5 additions & 0 deletions src/rez/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -384,6 +384,8 @@ def _parse_env_var(self, value):
"release_hooks": StrList,
"context_tracking_context_fields": StrList,
"pathed_env_vars": StrList,
"shell_pathed_env_vars": OptionalDict,
"enable_path_normalization": OptionalBool,
"prompt_release_message": Bool,
"critical_styles": OptionalStrList,
"error_styles": OptionalStrList,
Expand Down Expand Up @@ -481,6 +483,8 @@ def _parse_env_var(self, value):
"debug_memcache": Bool,
"debug_resolve_memcache": Bool,
"debug_context_tracking": Bool,
"debug_shells": Bool,
"debug_cygpath": Bool,
"debug_all": Bool,
"debug_none": Bool,
"quiet": Bool,
Expand All @@ -501,6 +505,7 @@ def _parse_env_var(self, value):
"read_package_cache": Bool,
"write_package_cache": Bool,
"env_var_separators": Dict,
"shell_env_var_separators": OptionalDict,
"variant_select_mode": VariantSelectMode_,
"package_filter": OptionalDictOrDictList,
"package_orderers": OptionalDictOrDictList,
Expand Down
4 changes: 3 additions & 1 deletion src/rez/data/tests/builds/packages/foo/1.1.0/package.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,9 @@

@include("late_utils")
def commands():
env.PYTHONPATH.append('{root}/python')
# Test prepends by throwing in an extra python path
env.PYTHONPATH.prepend('{root}/python')
env.PYTHONPATH.append('{root}/noexist')
env.FOO_IN_DA_HOUSE = "1"

late_utils.add_eek_var(env)
Expand Down
24 changes: 24 additions & 0 deletions src/rez/data/tests/builds/packages/winning/9.6/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
cmake_minimum_required(VERSION 2.8)

# On Linux defining a project name is usually not necessary for rez packages which simply use cmake
# as a Makefile recipe generator, however to be cross-compatible with Windows we can define it to
# get the same functionality.
#
# Here we are telling cmake this is not a compiled project by providing NONE for the second argument.
#
# The project function is only being used in this in case because we are on Windows and want to use
# the gnu make utility provided by a `make` rez package or configuring a path to `make.exe` in rez config.
# This bypasses having to use the default `nmake` on Windows which requires the Windows compiler and
# linker and attempts to build a simple c++ executable during a build.
#
project($ENV{REZ_BUILD_PROJECT_NAME}, NONE)

include(RezBuild)

file(GLOB_RECURSE py_files "python/*.py")

# Not using rez_install_python b/c we don't want to require python for this test package
rez_install_files(
${py_files}
DESTINATION .
)
15 changes: 15 additions & 0 deletions src/rez/data/tests/builds/packages/winning/9.6/package.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
name = "winning"
version = "9.6"
description = (
"Test cmake builds especially on Windows with Unix Makefiles generator. "
"This is a handy workflow to have on Windows b/c it supports rez + cmake with "
"minimal effort and w/o the overhead of Visual Studio. "
"Note: Using cmake on Windows requires path normalization to be enabled. "
)

build_requires = [
# make and cmake need to be installed locally for this test to build and succeed
]

def commands():
env.PYTHONPATH.append("{root}/python")
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# This file is intentionally left blank
14 changes: 14 additions & 0 deletions src/rez/data/tests/packages/shell/1.0.0/package.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# pyright: reportUndefinedVariable=false
name = "shell"

version = "1.0.0"


def commands():
import os

env.PATH.append("{root}")
env.PYTHONPATH.append(os.path.join("{root}", "src"))
env.PYTHONPATH.append(os.path.join("{root}", "python"))
env.CMAKE_MODULE_PATH.append(os.path.join(this.root, "foo.cmake"))
env.CMAKE_MODULE_PATH.append(os.path.join(this.root, "bar.cmake"))
1 change: 1 addition & 0 deletions src/rez/data/tests/packages/shell/1.0.0/src/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@

89 changes: 86 additions & 3 deletions src/rez/rex.py
Original file line number Diff line number Diff line change
Expand Up @@ -234,7 +234,13 @@ def get_public_methods(self):
('undefined', self.undefined)]

def _env_sep(self, name):
return self._env_sep_map.get(name, self.interpreter.pathsep)
return self.interpreter.env_sep_map.get(
name,
self._env_sep_map.get(
name,
self.interpreter.pathsep
)
)

def _is_verbose(self, command):
if isinstance(self.verbose, (list, tuple)):
Expand All @@ -261,7 +267,23 @@ def _expand(self, value):
def _fn(str_):
str_ = expandvars(str_, self.environ)
str_ = expandvars(str_, self.parent_environ)
return os.path.expanduser(str_)
if platform_.name != "windows":
return os.path.expanduser(str_)
else:
if os.path.exists(os.path.expanduser(str_)):
return os.path.expanduser(str_)

# Expand user only if the str is path-like
# otherwise it could potentially be a weak reference `~`
# in a request string which python on windows will expand
# regardless if the user exists or not
matches = re.findall(r"[\\/]?", str_)
matches = list(set(matches))
matches.remove("")
if matches:
return os.path.expanduser(str_)
else:
return str_

return EscapedString.promote(value).formatted(_fn)

Expand Down Expand Up @@ -479,6 +501,12 @@ class ActionInterpreter(object):
#
pathsep = os.pathsep

# Path separator mapping. There are cases (eg gitbash - git for windows) where
# the path separator changes based on the variable
# (eg "PATH": ":", and "PYTHONPATH": ";")
#
env_sep_map = {}

# RegEx that captures environment variables (generic form).
# Extend/override to regex formats that can capture environment formats
# in other interpreters like shells if needed
Expand Down Expand Up @@ -544,7 +572,7 @@ def shebang(self):

# --- other

def escape_string(self, value, is_path=False):
def escape_string(self, value, is_path=False, is_shell_path=False):
"""Escape a string.

Escape the given string so that special characters (such as quotes and
Expand All @@ -562,6 +590,7 @@ def escape_string(self, value, is_path=False):
Args:
value (str or `EscapedString`): String to escape.
is_path (bool): True if the value is path-like.
is_shell_path (bool): True if the value is a shell-path.

Returns:
str: The escaped string.
Expand All @@ -572,6 +601,16 @@ def escape_string(self, value, is_path=False):
def _is_pathed_key(cls, key):
return any(fnmatch(key, x) for x in config.pathed_env_vars)

@classmethod
def _is_shell_pathed_key(cls, key):
shell_name = cls.name()
if shell_name not in config.shell_pathed_env_vars:
return False

return any(
fnmatch(key, x) for x in config.shell_pathed_env_vars[shell_name]
)

def normalize_path(self, path):
"""Normalize a path.

Expand All @@ -598,6 +637,9 @@ def normalize_paths(self, value):

Note that `value` may be more than one pathsep-delimited paths.
"""
# Prevent path conversion if normalization is disabled in the config.
if not config.enable_path_normalization:
return value
paths = value.split(self.pathsep)
paths = [self.normalize_path(x) for x in paths]
return self.pathsep.join(paths)
Expand Down Expand Up @@ -802,6 +844,45 @@ def _add_systemroot_to_env_win32(self, env):

env['SYSTEMROOT'] = os.environ['SYSTEMROOT']

def as_path(self, path):
"""
Return the given path as a system path.
Used if the path needs to be reformatted to suit a specific case.
Args:
path (str): File path.

Returns:
(str): Transformed file path.
"""
return path

def as_shell_path(self, path):
"""
Return the given path as a shell path.
Used if the shell requires a different pathing structure.

Args:
path (str): File path.

Returns:
(str): Transformed file path.
"""
return path

def normalize_path(self, path):
"""
Normalize the path to fit the environment.
For example, POSIX paths, Windows path, etc. If no transformation is
necessary, just return the path.

Args:
path (str): File path.

Returns:
(str): Normalized file path.
"""
return path


#===============================================================================
# String manipulation
Expand Down Expand Up @@ -1360,6 +1441,8 @@ def normalize_path(self, path):
Returns:
str: The normalized path.
"""
if not config.enable_path_normalization:
return path
return self.interpreter.normalize_path(path)

@classmethod
Expand Down
2 changes: 1 addition & 1 deletion src/rez/rex_bindings.py
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ def root(self):
root = self.__cached_root or self.__variant.root

if self.__interpreter:
root = self.__interpreter.normalize_path(root)
root = self.__interpreter.as_path(root)

return root

Expand Down
65 changes: 61 additions & 4 deletions src/rez/rezconfig.py
Original file line number Diff line number Diff line change
Expand Up @@ -567,14 +567,65 @@
}

# This setting identifies path-like environment variables. This is required
# because some shells need to apply path normalization. For example, the command
# ``env.PATH.append("{root}/bin")`` will be normalized to (eg) ``C:\...\bin`` in a
# ``cmd`` shell on Windows. Note that wildcards are supported. If this setting is
# not correctly configured, then your shell may not work correctly.
# because some path vars need platform normalization. For example, a setting
# such as ``["PATH"]`` with the command ``env.PATH.append("{root}/bin")`` will cause
# ``{root}`` to be normalized to (eg) ``C:\...\bin`` in a ``cmd`` shell on Windows.
#
# Note that wildcards are supported, ``[*PATH]`` for example. Like the previous
# example, a setting like this means ``env.PYTHONPATH.append("{root}/python")``
# would similarly normalize to ``C:\...\python`` in a ``cmd`` shell on Windows.
#
# Conversely to path-like variables, it should be obvious that this setting is
# not applied to variables that are not path-like. For example, if you set
# ``env.FOO = "{root}/foo"``, then ``{root}`` will not be normalized and on the same
# token ``this.root`` in ``foo = os.path.join(this.root, "foo")`` will also expand
# to the platform native path.
#
# Use caution if experimenting with this setting, if it is not correctly
# configured, then your shell may not work correctly. Also see
# :data:`shell_pathed_env_vars` below for more more control over how shells handle
# these path variables.
pathed_env_vars = [
"*PATH"
]

# Much like :data:`env_var_separators` and companion to :data:`shell_pathed_env_vars`,
# this setting provides control over separators for list-like env vars on a per-shell
# basis. Each shell has it's own pathsep but this provides more explicit control
# and flexibility.
shell_env_var_separators = {
"gitbash": {
"PATH": ":",
"PYTHONPATH": ";",
}
}

# Some shells may require finer grained control over how path variables are
# handled. Similar to :data:`pathed_env_vars`, this option provides a way to define
# variables the shell should handle, but on a per-shell basis. This setting can
# be used in addition to the platform pathing strategy provided by
# :data:`pathed_env_vars` to override or disable it if that is desired.
#
# A path-like variable defined in this setting should correspond to a pathsep
# setting in either :data:`env_var_separators` or :data:`shell_env_var_separators`.
# It can be both, but only one is necessary. A corresponding pathsep setting informs
# the shell plugin how to join paths of that type.
#
# Note that, similar to :data:`pathed_env_vars`, wildcards are supported.
shell_pathed_env_vars = {

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe env_vars_to_convert or something like that?

"gitbash": [
"PYTHONPATH",
"CMAKE_MODULE_PATH",
]
}

# Global toggle to perform path normalization to path-like environment variables.
# Applies the :data:`pathed_env_vars` and :data:`shell_pathed_env_vars` setting to all
# shells. If :data:`shell_pathed_env_vars` setting is configured then it overrides
# :data:`pathed_env_vars` if the keys are the same. Setting this to ``False`` disables
# all normalization.
enable_path_normalization = False

# Defines what suites on ``$PATH`` stay visible when a new rez environment is resolved.
# Possible values are:
#
Expand Down Expand Up @@ -750,6 +801,12 @@
# Turn off all warnings. This overrides :data:`warn_all`.
warn_none = False

# Print debugging info for shells
debug_shells = False

# Print debugging info for the cygpath module
debug_cygpath = False

# Print info whenever a file is loaded from disk, or saved to disk.
debug_file_loads = False

Expand Down
Loading