cloudconsolelink 4.2.0__tar.gz → 4.3.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. {cloudconsolelink-4.2.0/cloudconsolelink.egg-info → cloudconsolelink-4.3.0}/PKG-INFO +1 -1
  2. {cloudconsolelink-4.2.0 → cloudconsolelink-4.3.0/cloudconsolelink.egg-info}/PKG-INFO +1 -1
  3. {cloudconsolelink-4.2.0 → cloudconsolelink-4.3.0}/setup.py +11 -2
  4. {cloudconsolelink-4.2.0 → cloudconsolelink-4.3.0}/tests/test_packaging.py +29 -0
  5. {cloudconsolelink-4.2.0 → cloudconsolelink-4.3.0}/LICENSE +0 -0
  6. {cloudconsolelink-4.2.0 → cloudconsolelink-4.3.0}/MANIFEST.in +0 -0
  7. {cloudconsolelink-4.2.0 → cloudconsolelink-4.3.0}/README.md +0 -0
  8. {cloudconsolelink-4.2.0 → cloudconsolelink-4.3.0}/cloudconsolelink/__init__.py +0 -0
  9. {cloudconsolelink-4.2.0 → cloudconsolelink-4.3.0}/cloudconsolelink/clouds/__init__.py +0 -0
  10. {cloudconsolelink-4.2.0 → cloudconsolelink-4.3.0}/cloudconsolelink/clouds/aws/__init__.py +0 -0
  11. {cloudconsolelink-4.2.0 → cloudconsolelink-4.3.0}/cloudconsolelink/clouds/aws/errors.py +0 -0
  12. {cloudconsolelink-4.2.0 → cloudconsolelink-4.3.0}/cloudconsolelink/clouds/aws/links.py +0 -0
  13. {cloudconsolelink-4.2.0 → cloudconsolelink-4.3.0}/cloudconsolelink/clouds/azure/__init__.py +0 -0
  14. {cloudconsolelink-4.2.0 → cloudconsolelink-4.3.0}/cloudconsolelink/clouds/gcp/__init__.py +0 -0
  15. {cloudconsolelink-4.2.0 → cloudconsolelink-4.3.0}/cloudconsolelink/clouds/gcp/links.py +0 -0
  16. {cloudconsolelink-4.2.0 → cloudconsolelink-4.3.0}/cloudconsolelink/clouds/git/__init__.py +0 -0
  17. {cloudconsolelink-4.2.0 → cloudconsolelink-4.3.0}/cloudconsolelink/clouds/oci/__init__.py +0 -0
  18. {cloudconsolelink-4.2.0 → cloudconsolelink-4.3.0}/cloudconsolelink/clouds/oci/links.py +0 -0
  19. {cloudconsolelink-4.2.0 → cloudconsolelink-4.3.0}/cloudconsolelink/clouds/registry/__init__.py +0 -0
  20. {cloudconsolelink-4.2.0 → cloudconsolelink-4.3.0}/cloudconsolelink.egg-info/SOURCES.txt +0 -0
  21. {cloudconsolelink-4.2.0 → cloudconsolelink-4.3.0}/cloudconsolelink.egg-info/dependency_links.txt +0 -0
  22. {cloudconsolelink-4.2.0 → cloudconsolelink-4.3.0}/cloudconsolelink.egg-info/requires.txt +0 -0
  23. {cloudconsolelink-4.2.0 → cloudconsolelink-4.3.0}/cloudconsolelink.egg-info/top_level.txt +0 -0
  24. {cloudconsolelink-4.2.0 → cloudconsolelink-4.3.0}/requirements-dev.txt +0 -0
  25. {cloudconsolelink-4.2.0 → cloudconsolelink-4.3.0}/requirements.txt +0 -0
  26. {cloudconsolelink-4.2.0 → cloudconsolelink-4.3.0}/setup.cfg +0 -0
  27. {cloudconsolelink-4.2.0 → cloudconsolelink-4.3.0}/tests/test_aws.py +0 -0
  28. {cloudconsolelink-4.2.0 → cloudconsolelink-4.3.0}/tests/test_azure.py +0 -0
  29. {cloudconsolelink-4.2.0 → cloudconsolelink-4.3.0}/tests/test_gcp.py +0 -0
  30. {cloudconsolelink-4.2.0 → cloudconsolelink-4.3.0}/tests/test_git.py +0 -0
  31. {cloudconsolelink-4.2.0 → cloudconsolelink-4.3.0}/tests/test_oci.py +0 -0
  32. {cloudconsolelink-4.2.0 → cloudconsolelink-4.3.0}/tests/test_provider_coverage.py +0 -0
  33. {cloudconsolelink-4.2.0 → cloudconsolelink-4.3.0}/tests/test_registry_link.py +0 -0
  34. {cloudconsolelink-4.2.0 → cloudconsolelink-4.3.0}/tests/test_registry_parse.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cloudconsolelink
3
- Version: 4.2.0
3
+ Version: 4.3.0
4
4
  Summary: Generate console links for cloud resources
5
5
  Home-page: https://github.com/Cloudanix/cloud-console-links
6
6
  Maintainer: Cloudanix
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cloudconsolelink
3
- Version: 4.2.0
3
+ Version: 4.3.0
4
4
  Summary: Generate console links for cloud resources
5
5
  Home-page: https://github.com/Cloudanix/cloud-console-links
6
6
  Maintainer: Cloudanix
@@ -25,9 +25,18 @@ def read_requirements(path: str) -> list[str]:
25
25
  return lines
26
26
 
27
27
 
28
+ def sdist_version() -> str:
29
+ # An unpacked sdist carries the version it was built with in PKG-INFO. pip/uv rebuild the sdist
30
+ # there with no git (and git could even read an enclosing repo's tags), so this wins.
31
+ for line in read_text("PKG-INFO", required=False).splitlines():
32
+ if line.startswith("Version:"):
33
+ return line.removeprefix("Version:").strip()
34
+ return ""
35
+
36
+
28
37
  def git_version(fallback: str) -> str:
29
38
  # ponytail: build-time version from the current git tag; falls back to
30
- # __init__.py when git/tags are absent (e.g. building from an sdist tarball).
39
+ # __init__.py when git/tags are absent.
31
40
  try:
32
41
  tag = subprocess.check_output(
33
42
  ["git", "describe", "--tags", "--abbrev=0"],
@@ -41,7 +50,7 @@ def git_version(fallback: str) -> str:
41
50
 
42
51
  package_info: dict[str, object] = {}
43
52
  exec(read_text("cloudconsolelink/__init__.py"), package_info)
44
- version = git_version(str(package_info["__version__"]))
53
+ version = sdist_version() or git_version(str(package_info["__version__"]))
45
54
  long_description = read_text("README.md")
46
55
  install_requires = read_requirements("requirements.txt")
47
56
  dev_requirements = read_requirements("requirements-dev.txt")
@@ -25,6 +25,35 @@ def test_sdist_includes_requirement_files(tmp_path):
25
25
  assert f"{archive_root}/requirements-dev.txt" in archive_names
26
26
 
27
27
 
28
+ def test_sdist_rebuilds_with_its_own_version(tmp_path):
29
+ # pip/uv install an sdist by rebuilding it from the unpacked tarball, where there is no git.
30
+ # Before: setup.py fell back to __init__.__version__ there (4.0.1), so installing 4.1.2 failed
31
+ # with "Package metadata version 4.0.1 does not match given version 4.1.2".
32
+ dist_dir = tmp_path / "dist"
33
+ subprocess.run(
34
+ [sys.executable, "setup.py", "sdist", "--dist-dir", str(dist_dir)],
35
+ cwd=REPO_ROOT,
36
+ check=True,
37
+ capture_output=True,
38
+ text=True,
39
+ )
40
+ archive_path = next(dist_dir.glob("cloudconsolelink-*.tar.gz"))
41
+ built_version = archive_path.name.removesuffix(".tar.gz").removeprefix("cloudconsolelink-")
42
+ unpack_dir = tmp_path / "unpacked"
43
+ with tarfile.open(archive_path, "r:gz") as archive:
44
+ archive.extractall(unpack_dir, filter="data")
45
+
46
+ rebuilt = subprocess.run(
47
+ [sys.executable, "setup.py", "--version"],
48
+ cwd=unpack_dir / archive_path.name.removesuffix(".tar.gz"),
49
+ check=True,
50
+ capture_output=True,
51
+ text=True,
52
+ )
53
+
54
+ assert rebuilt.stdout.strip().splitlines()[-1] == built_version
55
+
56
+
28
57
  def test_egg_info_excludes_local_bootstrap_requirement(tmp_path):
29
58
  subprocess.run(
30
59
  [sys.executable, "setup.py", "egg_info"],