Skip to content
Snippets Groups Projects
  • Pierre-Yves David's avatar
    9876d536eefb
    cleanup: drop the LIBDIR related code · 9876d536eefb
    Pierre-Yves David authored
    This code is no longer used as the python packaging echo system evolved.
    
    This code was introduced in 10da5a1f25dd, with two feature in mind:
    
    - Mercurial may be installed into a non-standard location without
      having to set PYTHONPATH.
    - Multiple installations can use Mercurial from different locations.
    
    As a side effect it also provided performance improvement at a time where the
    `sys.path` could be greatly inflated from setuptools `.pth` files. And it also
    protected from incompatible directory within the `$PTYHONPATH` variable. Both of
    these benefit has faded overtime as `.pth` are less common and `$PYTHONPATH` is
    less used (as both where creating issue to more than just Mercurial).
    
    The initial motivation (easily install Mercurial anywhere), can now be handled
    by a new generation of tool like pipx or uv, so it is less of a concern.
    
    Regardless of all the above, the current code is no longer used. The evolution
    of python packaging means that installation always go through first building a
    location agnostic "wheel" that cannot update LIBDIR to a proper location.
    Upstream packaging (debian, redhat, etc…) does not seems to adjust this variable
    themself. So it is safer to drop this dead code that pretend we could be doing
    something with it.
    9876d536eefb
    History
    cleanup: drop the LIBDIR related code
    Pierre-Yves David authored
    This code is no longer used as the python packaging echo system evolved.
    
    This code was introduced in 10da5a1f25dd, with two feature in mind:
    
    - Mercurial may be installed into a non-standard location without
      having to set PYTHONPATH.
    - Multiple installations can use Mercurial from different locations.
    
    As a side effect it also provided performance improvement at a time where the
    `sys.path` could be greatly inflated from setuptools `.pth` files. And it also
    protected from incompatible directory within the `$PTYHONPATH` variable. Both of
    these benefit has faded overtime as `.pth` are less common and `$PYTHONPATH` is
    less used (as both where creating issue to more than just Mercurial).
    
    The initial motivation (easily install Mercurial anywhere), can now be handled
    by a new generation of tool like pipx or uv, so it is less of a concern.
    
    Regardless of all the above, the current code is no longer used. The evolution
    of python packaging means that installation always go through first building a
    location agnostic "wheel" that cannot update LIBDIR to a proper location.
    Upstream packaging (debian, redhat, etc…) does not seems to adjust this variable
    themself. So it is safer to drop this dead code that pretend we could be doing
    something with it.