Skip to content

Commit

Permalink
Fix editable install by unsetting `build_ext.copy_extensions_to_sourc…
Browse files Browse the repository at this point in the history
…e` (google#1710)

This method was the culprit for the recent editable install breakage,
since it just tries to copy the generated extension file without checking
its existence.

Since the `BazelExtension` uses a non-standard location to store the
build artifacts, calling the copy method fails the build since the
extension is not found in the expected location.

But, since we already copy the file into the source tree as part of the
`BazelExtension.bazel_build` method, it's fine - the extension appears
in the right place, and the egg info is generated correctly as well.

This method also does not affect the general install, so it solves the
editable problem without regressing the fixed install.

Co-authored-by: dominic <510002+dmah42@users.noreply.github.com>
  • Loading branch information
nicholasjng and dmah42 authored Dec 7, 2023
1 parent 5056098 commit e2c13db
Showing 1 changed file with 8 additions and 0 deletions.
8 changes: 8 additions & 0 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,14 @@ def run(self):
# explicitly call `bazel shutdown` for graceful exit
self.spawn(["bazel", "shutdown"])

def copy_extensions_to_source(self):
"""
Copy generated extensions into the source tree.
This is done in the ``bazel_build`` method, so it's not necessary to
do again in the `build_ext` base class.
"""
pass

def bazel_build(self, ext: BazelExtension) -> None:
"""Runs the bazel build to create the package."""
with temp_fill_include_path("WORKSPACE"):
Expand Down

0 comments on commit e2c13db

Please sign in to comment.