diff --git a/src/poetry/installation/executor.py b/src/poetry/installation/executor.py index a22d21e16b2..d8b658461f0 100644 --- a/src/poetry/installation/executor.py +++ b/src/poetry/installation/executor.py @@ -653,7 +653,8 @@ def _prepare_git_archive(self, operation: Install | Update) -> Path: ) archive = self._prepare_archive(operation, output_dir=output_dir) - package._source_url = original_url + if not package.develop: + package._source_url = original_url if output_dir is not None and output_dir.is_dir(): # Mark directories with cached git packages, to distinguish from @@ -893,12 +894,12 @@ def _save_url_reference(self, operation: Operation) -> None: url_reference: dict[str, Any] | None = None - if package.source_type == "git": + if package.source_type == "git" and not package.develop: url_reference = self._create_git_url_reference(package) + elif package.source_type in ("directory", "git"): + url_reference = self._create_directory_url_reference(package) elif package.source_type == "url": url_reference = self._create_url_url_reference(package) - elif package.source_type == "directory": - url_reference = self._create_directory_url_reference(package) elif package.source_type == "file": url_reference = self._create_file_url_reference(package) diff --git a/tests/installation/test_executor.py b/tests/installation/test_executor.py index 1401ffec981..0ac7f78e2cd 100644 --- a/tests/installation/test_executor.py +++ b/tests/installation/test_executor.py @@ -1058,12 +1058,8 @@ def test_executor_should_write_pep610_url_references_for_editable_git( tmp_venv, package, { - "vcs_info": { - "vcs": "git", - "requested_revision": "master", - "commit_id": "123456", - }, - "url": package.source_url, + "dir_info": {"editable": True}, + "url": Path(package.source_url).as_uri(), }, )