Skip to content

Conversation

@abravalheri
Copy link
Contributor

@abravalheri abravalheri commented Aug 5, 2022

The idea of this PR is just to mark the implementation as "complete enough" / "tested enough" that it can be merged into main.

The main concepts of the implementation were presented in #3265.

The development of this feature was split into several PRs previously submitted.
Anyone interested in checking these smaller PRs can have a look on the following searches:

Several discussions and feedback were collected in:

Hopefully the development was slow enough and the community engagement was broad enough that there were enough chances of involvement for feedback, design changes, etc... 🤞

Instructions for testing the feature before the PR is merged can be found in https://discuss.python.org/t/help-testing-pep-660-support-in-setuptools/16904.

Summary of changes

  • Added editable hooks according with PEP 660
  • Added a "strict" editable installation mode
  • Added a "compat" editable installation mode (this mode is transitional and will be removed in future versions of setuptools - my personal suggestion is to remove this mode after the end of the year).
  • Added mechanisms for custom build sub-commands to tap into the editable install mode and do the necessary adaptions.
  • Updated userguide/development_mode docs.
  • Changed build_py and build_ext to add a mechanism of getting a list of files being packages and to which original files they correspond to.
  • Improved handling of --build-option and --global-option in the config_settings argument of the build_meta hooks (to match the historic pip behaviour)
    • this is, at least in theory, backwards compatible and only warn the user when a given --global-option should actually be a --build-option, but accept it anyway.

Closes #2816

Pull Request Checklist

dholth and others added 30 commits February 4, 2022 15:19
Changes:

- Deprecate the --egg-base parameter for dist_info and add --output-dir as
  replacement

  (Since the egg format is mostly deprecated, it is nice to move away from
  this nomenclature...)
Avoid using the editables dependency
  - The current implementation is using it to simply place .pth file
    pointing to the project directory anyway...
  - Adding a dependency for creating a file with a single line is a bit
    overkill.

Avoid importing pkg_resources directly
- Setuptools wants to move away from pkg_resources

Replace custom wheel build with re-use of bdist_wheel
  - pro: avoid re-implementing the archiving logic and make sure it is
    compatible with the same archive format used by the final wheels.
  - con: the API of wheel is not exactly stable or exported as public.
This change is heavily inspired by the existing develop command

- Use namespaces.Installer to ensure legacy namespaces are handled.
- Improve the skeleton that would allow the separation between different
  editable strategies
- Extract strategy for static .pth files
- Recognise the static .pth file as the primary strategy for src-layout
  packages in a "non"-strict scenario
- Move test_editable_prefix from test_develop to test_editable_install
- Add more tests for editable install focusing on packages using
  namespaces (legacy or PEP 420)
openstack-mirroring pushed a commit to openstack/python-heatclient that referenced this pull request May 7, 2025
pip 23.1 removed the "setup.py install" fallback for projects
that do not have pyproject.toml and now uses a pyproject.toml
which is vendored in pip.
To address that, this change adds the minimal pyproject.toml
to enable pbr to be properly used to build editable wheels.

This is required to support installing devstack on
centos stream 9 and related distros with GLOBAL_VENV=True
Without this change the wsgi scripts are not generated in
editable mode. i.e. pip install -e /opt/stack/keystone

See https://pip.pypa.io/en/stable/news/#v23-1
and pypa/pip#8368 for more
details on the removal of the fallback support.

setuptools v64.0.0 is used to support editable installs
via its PEP-660 implmentation
pypa/setuptools#3488

Co-Authored-By: Sean Mooney <work@seanmooney.info>
Change-Id: I0fd13f34ddeec25161d63437f2ea14f7b3a4c42e
SeanMooney added a commit to SeanMooney/openstack-pyproject-toml that referenced this pull request May 7, 2025
pip 23.1 removed the "setup.py install" fallback for projects
that do not have pyproject.toml and now uses a pyproject.toml
which is vendored in pip.
To address that, this change adds the minimal pyproject.toml
to enable pbr to be properly used to build editable wheels.

This is required to support installing devstack on
centos stream 9 and related distros with GLOBAL_VENV=True
Without this change the wsgi scripts are not generated in
editable mode. i.e. pip install -e /opt/stack/keystone

See https://pip.pypa.io/en/stable/news/#v23-1
and pypa/pip#8368 for more
details on the removal of the fallback support.

setuptools v64.0.0 is used to support editable installs
via its PEP-660 implmentation
pypa/setuptools#3488
openstack-mirroring pushed a commit to openstack/openstack that referenced this pull request May 7, 2025
* Update neutron from branch 'master'
  to 344baa4d4ba821baa8307c22d4cfe6494b19496c
  - add pyproject.toml to support pip 23.1
    
    pip 23.1 removed the "setup.py install" fallback for projects
    that do not have pyproject.toml and now uses a pyproject.toml
    which is vendored in pip.
    To address that, this change adds the minimal pyproject.toml
    to enable pbr to be properly used to build editable wheels.
    
    This is required to support installing devstack on
    centos stream 9 and related distros with GLOBAL_VENV=True
    Without this change the wsgi scripts are not generated in
    editable mode. i.e. pip install -e /opt/stack/keystone
    
    See https://pip.pypa.io/en/stable/news/#v23-1
    and pypa/pip#8368 for more
    details on the removal of the fallback support.
    
    setuptools v64.0.0 is used to support editable installs
    via its PEP-660 implmentation
    pypa/setuptools#3488
    
    Change-Id: Iee3338c1dd583fc35d93a3e6e74f8f71b7f076e0
openstack-mirroring pushed a commit to openstack/neutron that referenced this pull request May 7, 2025
pip 23.1 removed the "setup.py install" fallback for projects
that do not have pyproject.toml and now uses a pyproject.toml
which is vendored in pip.
To address that, this change adds the minimal pyproject.toml
to enable pbr to be properly used to build editable wheels.

This is required to support installing devstack on
centos stream 9 and related distros with GLOBAL_VENV=True
Without this change the wsgi scripts are not generated in
editable mode. i.e. pip install -e /opt/stack/keystone

See https://pip.pypa.io/en/stable/news/#v23-1
and pypa/pip#8368 for more
details on the removal of the fallback support.

setuptools v64.0.0 is used to support editable installs
via its PEP-660 implmentation
pypa/setuptools#3488

Change-Id: Iee3338c1dd583fc35d93a3e6e74f8f71b7f076e0
openstack-mirroring pushed a commit to openstack/neutron-lib that referenced this pull request May 8, 2025
pip 23.1 removed the "setup.py install" fallback for projects
that do not have pyproject.toml and now uses a pyproject.toml
which is vendored in pip.
To address that, this change adds the minimal pyproject.toml
to enable pbr to be properly used to build editable wheels.

This is required to support installing devstack on
centos stream 9 and related distros with GLOBAL_VENV=True
Without this change the wsgi scripts are not generated in
editable mode. i.e. pip install -e /opt/stack/keystone

See https://pip.pypa.io/en/stable/news/#v23-1
and pypa/pip#8368 for more
details on the removal of the fallback support.

setuptools v64.0.0 is used to support editable installs
via its PEP-660 implmentation
pypa/setuptools#3488

Change-Id: I949ce04599a1945b4535506e361d0dc2a701b775
openstack-mirroring pushed a commit to openstack/openstack that referenced this pull request May 8, 2025
* Update neutron-lib from branch 'master'
  to 3a160219ece5dfefa60d6843d4f518f0a313f018
  - add pyproject.toml to support pip 23.1
    
    pip 23.1 removed the "setup.py install" fallback for projects
    that do not have pyproject.toml and now uses a pyproject.toml
    which is vendored in pip.
    To address that, this change adds the minimal pyproject.toml
    to enable pbr to be properly used to build editable wheels.
    
    This is required to support installing devstack on
    centos stream 9 and related distros with GLOBAL_VENV=True
    Without this change the wsgi scripts are not generated in
    editable mode. i.e. pip install -e /opt/stack/keystone
    
    See https://pip.pypa.io/en/stable/news/#v23-1
    and pypa/pip#8368 for more
    details on the removal of the fallback support.
    
    setuptools v64.0.0 is used to support editable installs
    via its PEP-660 implmentation
    pypa/setuptools#3488
    
    Change-Id: I949ce04599a1945b4535506e361d0dc2a701b775
openstack-mirroring pushed a commit to openstack/heat that referenced this pull request May 9, 2025
pip 23.1 removed the "setup.py install" fallback for projects
that do not have pyproject.toml and now uses a pyproject.toml
which is vendored in pip.
To address that, this change adds the minimal pyproject.toml
to enable pbr to be properly used to build editable wheels.

This is required to support installing devstack on
centos stream 9 and related distros with GLOBAL_VENV=True
Without this change the wsgi scripts are not generated in
editable mode. i.e. pip install -e /opt/stack/keystone

See https://pip.pypa.io/en/stable/news/#v23-1
and pypa/pip#8368 for more
details on the removal of the fallback support.

setuptools v64.0.0 is used to support editable installs
via its PEP-660 implmentation
pypa/setuptools#3488

Co-Authored-By: Sean Mooney <work@seanmooney.info>
Change-Id: Iebe24254a74a03d388c2ad768f4bc79945047084
openstack-mirroring pushed a commit to openstack/openstack that referenced this pull request May 9, 2025
* Update heat from branch 'master'
  to 88027a901b49e7c19d8dd11bd70b51b4c6e8d895
  - add pyproject.toml to support pip 23.1
    
    pip 23.1 removed the "setup.py install" fallback for projects
    that do not have pyproject.toml and now uses a pyproject.toml
    which is vendored in pip.
    To address that, this change adds the minimal pyproject.toml
    to enable pbr to be properly used to build editable wheels.
    
    This is required to support installing devstack on
    centos stream 9 and related distros with GLOBAL_VENV=True
    Without this change the wsgi scripts are not generated in
    editable mode. i.e. pip install -e /opt/stack/keystone
    
    See https://pip.pypa.io/en/stable/news/#v23-1
    and pypa/pip#8368 for more
    details on the removal of the fallback support.
    
    setuptools v64.0.0 is used to support editable installs
    via its PEP-660 implmentation
    pypa/setuptools#3488
    
    Co-Authored-By: Sean Mooney <work@seanmooney.info>
    Change-Id: Iebe24254a74a03d388c2ad768f4bc79945047084
openstack-mirroring pushed a commit to openstack/ceilometermiddleware that referenced this pull request May 12, 2025
pip 23.1 removed the "setup.py install" fallback for projects
that do not have pyproject.toml and now uses a pyproject.toml
which is vendored in pip.
To address that, this change adds the minimal pyproject.toml
to enable pbr to be properly used to build editable wheels.

This is required to support installing devstack on
centos stream 9 and related distros with GLOBAL_VENV=True
Without this change the wsgi scripts are not generated in
editable mode. i.e. pip install -e /opt/stack/keystone

See https://pip.pypa.io/en/stable/news/#v23-1
and pypa/pip#8368 for more
details on the removal of the fallback support.

setuptools v64.0.0 is used to support editable installs
via its PEP-660 implmentation
pypa/setuptools#3488

Co-Authored-By: Sean Mooney <work@seanmooney.info>
Change-Id: Iab8fe3cf745741496dfde2fe3ae88d6aada8cf28
openstack-mirroring pushed a commit to openstack/openstack that referenced this pull request May 12, 2025
* Update ceilometermiddleware from branch 'master'
  to 9cf77fd74228de0d4d6929f1fbfa09c1197be751
  - add pyproject.toml to support pip 23.1
    
    pip 23.1 removed the "setup.py install" fallback for projects
    that do not have pyproject.toml and now uses a pyproject.toml
    which is vendored in pip.
    To address that, this change adds the minimal pyproject.toml
    to enable pbr to be properly used to build editable wheels.
    
    This is required to support installing devstack on
    centos stream 9 and related distros with GLOBAL_VENV=True
    Without this change the wsgi scripts are not generated in
    editable mode. i.e. pip install -e /opt/stack/keystone
    
    See https://pip.pypa.io/en/stable/news/#v23-1
    and pypa/pip#8368 for more
    details on the removal of the fallback support.
    
    setuptools v64.0.0 is used to support editable installs
    via its PEP-660 implmentation
    pypa/setuptools#3488
    
    Co-Authored-By: Sean Mooney <work@seanmooney.info>
    Change-Id: Iab8fe3cf745741496dfde2fe3ae88d6aada8cf28
openstack-mirroring pushed a commit to openstack/openstack that referenced this pull request May 16, 2025
* Update swift from branch 'master'
  to 43aa7ec26155ccc72d1213b4b9c61c272f607a2a
  - add pyproject.toml to support pip 23.1
    
    pip 23.1 removed the "setup.py install" fallback for projects
    that do not have pyproject.toml and now uses a pyproject.toml
    which is vendored in pip.
    To address that, this change adds the minimal pyproject.toml
    to enable pbr to be properly used to build editable wheels.
    
    This is required to support installing devstack on
    centos stream 9 and related distros with GLOBAL_VENV=True
    Without this change the wsgi scripts are not generated in
    editable mode. i.e. pip install -e /opt/stack/keystone
    
    See https://pip.pypa.io/en/stable/news/#v23-1
    and pypa/pip#8368 for more
    details on the removal of the fallback support.
    
    setuptools v64.0.0 is used to support editable installs
    via its PEP-660 implmentation
    pypa/setuptools#3488
    
    Change-Id: I82e0c130c4022164bc8e4d1120aae9bdb9a43b5d
openstack-mirroring pushed a commit to openstack/swift that referenced this pull request May 16, 2025
pip 23.1 removed the "setup.py install" fallback for projects
that do not have pyproject.toml and now uses a pyproject.toml
which is vendored in pip.
To address that, this change adds the minimal pyproject.toml
to enable pbr to be properly used to build editable wheels.

This is required to support installing devstack on
centos stream 9 and related distros with GLOBAL_VENV=True
Without this change the wsgi scripts are not generated in
editable mode. i.e. pip install -e /opt/stack/keystone

See https://pip.pypa.io/en/stable/news/#v23-1
and pypa/pip#8368 for more
details on the removal of the fallback support.

setuptools v64.0.0 is used to support editable installs
via its PEP-660 implmentation
pypa/setuptools#3488

Change-Id: I82e0c130c4022164bc8e4d1120aae9bdb9a43b5d
openstack-mirroring pushed a commit to openstack/python-watcherclient that referenced this pull request May 20, 2025
pip 23.1 removed the "setup.py install" fallback for projects
that do not have pyproject.toml and now uses a pyproject.toml
which is vendored in pip.
To address that, this change adds the minimal pyproject.toml
to enable pbr to be properly used to build editable wheels.

This is required to support installing devstack on
centos stream 9 and related distros with GLOBAL_VENV=True
Without this change the wsgi scripts are not generated in
editable mode. i.e. pip install -e /opt/stack/keystone

See https://pip.pypa.io/en/stable/news/#v23-1
and pypa/pip#8368 for more
details on the removal of the fallback support.

setuptools v64.0.0 is used to support editable installs
via its PEP-660 implmentation
pypa/setuptools#3488

Change-Id: Ia68aa799a0c4daaffd59c6faa2b59a5dda4015a8
openstack-mirroring pushed a commit to openstack/openstack that referenced this pull request May 20, 2025
* Update python-watcherclient from branch 'master'
  to 3fa37f817ea9680a304a7393b1d89aea5761ed9b
  - add pyproject.toml to support pip 23.1
    
    pip 23.1 removed the "setup.py install" fallback for projects
    that do not have pyproject.toml and now uses a pyproject.toml
    which is vendored in pip.
    To address that, this change adds the minimal pyproject.toml
    to enable pbr to be properly used to build editable wheels.
    
    This is required to support installing devstack on
    centos stream 9 and related distros with GLOBAL_VENV=True
    Without this change the wsgi scripts are not generated in
    editable mode. i.e. pip install -e /opt/stack/keystone
    
    See https://pip.pypa.io/en/stable/news/#v23-1
    and pypa/pip#8368 for more
    details on the removal of the fallback support.
    
    setuptools v64.0.0 is used to support editable installs
    via its PEP-660 implmentation
    pypa/setuptools#3488
    
    Change-Id: Ia68aa799a0c4daaffd59c6faa2b59a5dda4015a8
openstack-mirroring pushed a commit to openstack/watcher-tempest-plugin that referenced this pull request May 20, 2025
pip 23.1 removed the "setup.py install" fallback for projects
that do not have pyproject.toml and now uses a pyproject.toml
which is vendored in pip.
To address that, this change adds the minimal pyproject.toml
to enable pbr to be properly used to build editable wheels.

This is required to support installing devstack on
centos stream 9 and related distros with GLOBAL_VENV=True
Without this change the wsgi scripts are not generated in
editable mode. i.e. pip install -e /opt/stack/keystone

See https://pip.pypa.io/en/stable/news/#v23-1
and pypa/pip#8368 for more
details on the removal of the fallback support.

setuptools v64.0.0 is used to support editable installs
via its PEP-660 implmentation
pypa/setuptools#3488

Change-Id: I46d3905209a39fb17c563911b5c0ff1df21f9c4d
openstack-mirroring pushed a commit to openstack/openstack that referenced this pull request May 20, 2025
* Update watcher-tempest-plugin from branch 'master'
  to cae42d194c2550b2d44046c9650ef58e2b70a428
  - Merge "add pyproject.toml to support pip 23.1"
  - add pyproject.toml to support pip 23.1
    
    pip 23.1 removed the "setup.py install" fallback for projects
    that do not have pyproject.toml and now uses a pyproject.toml
    which is vendored in pip.
    To address that, this change adds the minimal pyproject.toml
    to enable pbr to be properly used to build editable wheels.
    
    This is required to support installing devstack on
    centos stream 9 and related distros with GLOBAL_VENV=True
    Without this change the wsgi scripts are not generated in
    editable mode. i.e. pip install -e /opt/stack/keystone
    
    See https://pip.pypa.io/en/stable/news/#v23-1
    and pypa/pip#8368 for more
    details on the removal of the fallback support.
    
    setuptools v64.0.0 is used to support editable installs
    via its PEP-660 implmentation
    pypa/setuptools#3488
    
    Change-Id: I46d3905209a39fb17c563911b5c0ff1df21f9c4d
openstack-mirroring pushed a commit to openstack/watcher-dashboard that referenced this pull request May 20, 2025
pip 23.1 removed the "setup.py install" fallback for projects
that do not have pyproject.toml and now uses a pyproject.toml
which is vendored in pip.
To address that, this change adds the minimal pyproject.toml
to enable pbr to be properly used to build editable wheels.

This is required to support installing devstack on
centos stream 9 and related distros with GLOBAL_VENV=True
Without this change the wsgi scripts are not generated in
editable mode. i.e. pip install -e /opt/stack/keystone

See https://pip.pypa.io/en/stable/news/#v23-1
and pypa/pip#8368 for more
details on the removal of the fallback support.

setuptools v64.0.0 is used to support editable installs
via its PEP-660 implmentation
pypa/setuptools#3488

Change-Id: I28715183ae9c1f9b75d6d68d6a8a0d554bffd9ce
openstack-mirroring pushed a commit to openstack/openstack that referenced this pull request May 20, 2025
* Update watcher-dashboard from branch 'master'
  to 29be9daeccfd462b1be176378cb2ab90bfc584df
  - Merge "add pyproject.toml to support pip 23.1"
  - add pyproject.toml to support pip 23.1
    
    pip 23.1 removed the "setup.py install" fallback for projects
    that do not have pyproject.toml and now uses a pyproject.toml
    which is vendored in pip.
    To address that, this change adds the minimal pyproject.toml
    to enable pbr to be properly used to build editable wheels.
    
    This is required to support installing devstack on
    centos stream 9 and related distros with GLOBAL_VENV=True
    Without this change the wsgi scripts are not generated in
    editable mode. i.e. pip install -e /opt/stack/keystone
    
    See https://pip.pypa.io/en/stable/news/#v23-1
    and pypa/pip#8368 for more
    details on the removal of the fallback support.
    
    setuptools v64.0.0 is used to support editable installs
    via its PEP-660 implmentation
    pypa/setuptools#3488
    
    Change-Id: I28715183ae9c1f9b75d6d68d6a8a0d554bffd9ce
openstack-mirroring pushed a commit to openstack/python-aodhclient that referenced this pull request May 28, 2025
pip 23.1 removed the "setup.py install" fallback for projects
that do not have pyproject.toml and now uses a pyproject.toml
which is vendored in pip.
To address that, this change adds the minimal pyproject.toml
to enable pbr to be properly used to build editable wheels.

This is required to support installing devstack on
centos stream 9 and related distros with GLOBAL_VENV=True
Without this change the wsgi scripts are not generated in
editable mode. i.e. pip install -e /opt/stack/keystone

See https://pip.pypa.io/en/stable/news/#v23-1
and pypa/pip#8368 for more
details on the removal of the fallback support.

setuptools v64.0.0 is used to support editable installs
via its PEP-660 implmentation
pypa/setuptools#3488

Co-Authored-By: Sean Mooney <work@seanmooney.info>
Change-Id: Iabcea21af84e1664030d421561c9d166290dc860
openstack-mirroring pushed a commit to openstack/openstack that referenced this pull request May 28, 2025
* Update python-aodhclient from branch 'master'
  to f83e495968d14ac497abdbdc773635e6f9f1f5e5
  - Merge "add pyproject.toml to support pip 23.1"
  - add pyproject.toml to support pip 23.1
    
    pip 23.1 removed the "setup.py install" fallback for projects
    that do not have pyproject.toml and now uses a pyproject.toml
    which is vendored in pip.
    To address that, this change adds the minimal pyproject.toml
    to enable pbr to be properly used to build editable wheels.
    
    This is required to support installing devstack on
    centos stream 9 and related distros with GLOBAL_VENV=True
    Without this change the wsgi scripts are not generated in
    editable mode. i.e. pip install -e /opt/stack/keystone
    
    See https://pip.pypa.io/en/stable/news/#v23-1
    and pypa/pip#8368 for more
    details on the removal of the fallback support.
    
    setuptools v64.0.0 is used to support editable installs
    via its PEP-660 implmentation
    pypa/setuptools#3488
    
    Co-Authored-By: Sean Mooney <work@seanmooney.info>
    Change-Id: Iabcea21af84e1664030d421561c9d166290dc860
openstack-mirroring pushed a commit to openstack/aodh that referenced this pull request Jun 5, 2025
pip 23.1 removed the "setup.py install" fallback for projects
that do not have pyproject.toml and now uses a pyproject.toml
which is vendored in pip.
To address that, this change adds the minimal pyproject.toml
to enable pbr to be properly used to build editable wheels.

This is required to support installing devstack on
centos stream 9 and related distros with GLOBAL_VENV=True
Without this change the wsgi scripts are not generated in
editable mode. i.e. pip install -e /opt/stack/keystone

See https://pip.pypa.io/en/stable/news/#v23-1
and pypa/pip#8368 for more
details on the removal of the fallback support.

setuptools v64.0.0 is used to support editable installs
via its PEP-660 implmentation
pypa/setuptools#3488

Co-Authored-By: Sean Mooney <work@seanmooney.info>
Change-Id: I07ac70065b276aa70eea5d5f1a5a0ac1a94f1242
openstack-mirroring pushed a commit to openstack/openstack that referenced this pull request Jun 5, 2025
* Update aodh from branch 'master'
  to a1be40e05e0cbe450503c7fb187763d5731ec6e6
  - Merge "add pyproject.toml to support pip 23.1"
  - add pyproject.toml to support pip 23.1
    
    pip 23.1 removed the "setup.py install" fallback for projects
    that do not have pyproject.toml and now uses a pyproject.toml
    which is vendored in pip.
    To address that, this change adds the minimal pyproject.toml
    to enable pbr to be properly used to build editable wheels.
    
    This is required to support installing devstack on
    centos stream 9 and related distros with GLOBAL_VENV=True
    Without this change the wsgi scripts are not generated in
    editable mode. i.e. pip install -e /opt/stack/keystone
    
    See https://pip.pypa.io/en/stable/news/#v23-1
    and pypa/pip#8368 for more
    details on the removal of the fallback support.
    
    setuptools v64.0.0 is used to support editable installs
    via its PEP-660 implmentation
    pypa/setuptools#3488
    
    Co-Authored-By: Sean Mooney <work@seanmooney.info>
    Change-Id: I07ac70065b276aa70eea5d5f1a5a0ac1a94f1242
openstack-mirroring pushed a commit to openstack/horizon that referenced this pull request Jun 9, 2025
pip 23.1 removed the "setup.py install" fallback for projects
that do not have pyproject.toml and now uses a pyproject.toml
which is vendored in pip.
To address that, this change adds the minimal pyproject.toml
to enable pbr to be properly used to build editable wheels.

This is required to support installing devstack on
centos stream 9 and related distros with GLOBAL_VENV=True
Without this change the wsgi scripts are not generated in
editable mode. i.e. pip install -e /opt/stack/keystone

See https://pip.pypa.io/en/stable/news/#v23-1
and pypa/pip#8368 for more
details on the removal of the fallback support.

setuptools v64.0.0 is used to support editable installs
via its PEP-660 implmentation
pypa/setuptools#3488

addtionally horizon was using a legacy packaging hook
which is removed by this commit.

Change-Id: I904376f05c2ceca8db9dc989909cb05ea65b79f3
openstack-mirroring pushed a commit to openstack/openstack that referenced this pull request Jun 9, 2025
* Update horizon from branch 'master'
  to d2393c333d74da2f21bab0ec50c2a9274efc2dee
  - Merge "add pyproject.toml to support pip 23.1"
  - add pyproject.toml to support pip 23.1
    
    pip 23.1 removed the "setup.py install" fallback for projects
    that do not have pyproject.toml and now uses a pyproject.toml
    which is vendored in pip.
    To address that, this change adds the minimal pyproject.toml
    to enable pbr to be properly used to build editable wheels.
    
    This is required to support installing devstack on
    centos stream 9 and related distros with GLOBAL_VENV=True
    Without this change the wsgi scripts are not generated in
    editable mode. i.e. pip install -e /opt/stack/keystone
    
    See https://pip.pypa.io/en/stable/news/#v23-1
    and pypa/pip#8368 for more
    details on the removal of the fallback support.
    
    setuptools v64.0.0 is used to support editable installs
    via its PEP-660 implmentation
    pypa/setuptools#3488
    
    addtionally horizon was using a legacy packaging hook
    which is removed by this commit.
    
    Change-Id: I904376f05c2ceca8db9dc989909cb05ea65b79f3
openstack-mirroring pushed a commit to openstack/openstack that referenced this pull request Jul 23, 2025
* Update ironic-ui from branch 'master'
  to 488d7003858f18034fcc097bad7be069e2aada38
  - Merge "add pyproject.toml to support pip 23.1"
  - add pyproject.toml to support pip 23.1
    
    pip 23.1 removed the "setup.py install" fallback for projects
    that do not have pyproject.toml and now uses a pyproject.toml
    which is vendored in pip.
    To address that, this change adds the minimal pyproject.toml
    to enable pbr to be properly used to build editable wheels.
    
    See https://pip.pypa.io/en/stable/news/#v23-1
    and pypa/pip#8368 for more
    details on the removal of the fallback support.
    
    setuptools v64.0.0 is used to support editable installs
    via its PEP-660 implmentation
    pypa/setuptools#3488
    
    Co-Authored-By: Sean Mooney <work@seanmooney.info>
    Change-Id: I3db53e52556c017111beb7894957be8364fd8164
openstack-mirroring pushed a commit to openstack/ironic-ui that referenced this pull request Jul 23, 2025
pip 23.1 removed the "setup.py install" fallback for projects
that do not have pyproject.toml and now uses a pyproject.toml
which is vendored in pip.
To address that, this change adds the minimal pyproject.toml
to enable pbr to be properly used to build editable wheels.

See https://pip.pypa.io/en/stable/news/#v23-1
and pypa/pip#8368 for more
details on the removal of the fallback support.

setuptools v64.0.0 is used to support editable installs
via its PEP-660 implmentation
pypa/setuptools#3488

Co-Authored-By: Sean Mooney <work@seanmooney.info>
Change-Id: I3db53e52556c017111beb7894957be8364fd8164
openstack-mirroring pushed a commit to openstack/networking-sfc that referenced this pull request Aug 18, 2025
pip 23.1 removed the "setup.py install" fallback for projects
that do not have pyproject.toml and now uses a pyproject.toml
which is vendored in pip.
To address that, this change adds the minimal pyproject.toml
to enable pbr to be properly used to build editable wheels.

See https://pip.pypa.io/en/stable/news/#v23-1
and pypa/pip#8368 for more
details on the removal of the fallback support.

setuptools v64.0.0 is used to support editable installs
via its PEP-660 implmentation
pypa/setuptools#3488

Co-Authored-By: Sean Mooney <work@seanmooney.info>
Change-Id: Ieeeb059b5d617fe84f60e77defd88a72b5598f0f
openstack-mirroring pushed a commit to openstack/openstack that referenced this pull request Aug 18, 2025
* Update networking-sfc from branch 'master'
  to b7b03bcd34bad6b062853cc745b76b2a6e532144
  - Merge "add pyproject.toml to support pip 23.1"
  - add pyproject.toml to support pip 23.1
    
    pip 23.1 removed the "setup.py install" fallback for projects
    that do not have pyproject.toml and now uses a pyproject.toml
    which is vendored in pip.
    To address that, this change adds the minimal pyproject.toml
    to enable pbr to be properly used to build editable wheels.
    
    See https://pip.pypa.io/en/stable/news/#v23-1
    and pypa/pip#8368 for more
    details on the removal of the fallback support.
    
    setuptools v64.0.0 is used to support editable installs
    via its PEP-660 implmentation
    pypa/setuptools#3488
    
    Co-Authored-By: Sean Mooney <work@seanmooney.info>
    Change-Id: Ieeeb059b5d617fe84f60e77defd88a72b5598f0f
openstack-mirroring pushed a commit to openstack/glance that referenced this pull request Sep 18, 2025
pip 23.1 removed the "setup.py install" fallback for projects
that do not have pyproject.toml and now uses a pyproject.toml
which is vendored in pip.
To address that, this change adds the minimal pyproject.toml
to enable pbr to be properly used to build editable wheels.

This is required to support installing devstack on
centos stream 9 and related distros with GLOBAL_VENV=True
Without this change the wsgi scripts are not generated in
editable mode. i.e. pip install -e /opt/stack/keystone

See https://pip.pypa.io/en/stable/news/#v23-1
and pypa/pip#8368 for more
details on the removal of the fallback support.

setuptools v64.0.0 is used to support editable installs
via its PEP-660 implmentation
pypa/setuptools#3488

Change-Id: I9600d7bf45d48b83c8b066bda20680365bedade7
Signed-off-by: Sean Mooney <work@seanmooney.info>
openstack-mirroring pushed a commit to openstack/openstack that referenced this pull request Sep 18, 2025
* Update glance from branch 'master'
  to 7a21722ecdd349610102ce4ea67705dd0c2c4fb0
  - Add pyproject.toml to support pip 23.1
    
    pip 23.1 removed the "setup.py install" fallback for projects
    that do not have pyproject.toml and now uses a pyproject.toml
    which is vendored in pip.
    To address that, this change adds the minimal pyproject.toml
    to enable pbr to be properly used to build editable wheels.
    
    This is required to support installing devstack on
    centos stream 9 and related distros with GLOBAL_VENV=True
    Without this change the wsgi scripts are not generated in
    editable mode. i.e. pip install -e /opt/stack/keystone
    
    See https://pip.pypa.io/en/stable/news/#v23-1
    and pypa/pip#8368 for more
    details on the removal of the fallback support.
    
    setuptools v64.0.0 is used to support editable installs
    via its PEP-660 implmentation
    pypa/setuptools#3488
    
    Change-Id: I9600d7bf45d48b83c8b066bda20680365bedade7
    Signed-off-by: Sean Mooney <work@seanmooney.info>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FR] Implement PEP 660 -- Editable Installations

5 participants