vcs-versioning 2.3.0__tar.gz → 2.3.1__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 (102) hide show
  1. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/CHANGELOG.md +6 -0
  2. {vcs_versioning-2.3.0/src/vcs_versioning.egg-info → vcs_versioning-2.3.1}/PKG-INFO +1 -1
  3. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/src/vcs_versioning/_file_finders/_git.py +4 -0
  4. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1/src/vcs_versioning.egg-info}/PKG-INFO +1 -1
  5. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/testing_vcs/test_git.py +20 -0
  6. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/LICENSE.txt +0 -0
  7. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/MANIFEST.in +0 -0
  8. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/README.md +0 -0
  9. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/pyproject.toml +0 -0
  10. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/setup.cfg +0 -0
  11. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/setup.py +0 -0
  12. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/src/vcs_versioning/__init__.py +0 -0
  13. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/src/vcs_versioning/__main__.py +0 -0
  14. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/src/vcs_versioning/_backends/__init__.py +0 -0
  15. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/src/vcs_versioning/_backends/_discover_vcs.py +0 -0
  16. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/src/vcs_versioning/_backends/_git.py +0 -0
  17. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/src/vcs_versioning/_backends/_hg.py +0 -0
  18. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/src/vcs_versioning/_backends/_hg_git.py +0 -0
  19. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/src/vcs_versioning/_backends/_jj.py +0 -0
  20. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/src/vcs_versioning/_backends/_scm_workdir.py +0 -0
  21. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/src/vcs_versioning/_cli/__init__.py +0 -0
  22. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/src/vcs_versioning/_cli/_args.py +0 -0
  23. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/src/vcs_versioning/_cli/git_archival_full.txt +0 -0
  24. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/src/vcs_versioning/_cli/git_archival_stable.txt +0 -0
  25. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/src/vcs_versioning/_compat.py +0 -0
  26. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/src/vcs_versioning/_config.py +0 -0
  27. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/src/vcs_versioning/_discover.py +0 -0
  28. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/src/vcs_versioning/_dump_version.py +0 -0
  29. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/src/vcs_versioning/_dynamic_metadata.py +0 -0
  30. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/src/vcs_versioning/_entrypoints.py +0 -0
  31. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/src/vcs_versioning/_environment.py +0 -0
  32. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/src/vcs_versioning/_exceptions.py +0 -0
  33. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/src/vcs_versioning/_fallback_workdir.py +0 -0
  34. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/src/vcs_versioning/_fallbacks.py +0 -0
  35. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/src/vcs_versioning/_file_finders/__init__.py +0 -0
  36. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/src/vcs_versioning/_file_finders/_hg.py +0 -0
  37. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/src/vcs_versioning/_file_finders/_jj.py +0 -0
  38. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/src/vcs_versioning/_get_version_impl.py +0 -0
  39. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/src/vcs_versioning/_integration.py +0 -0
  40. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/src/vcs_versioning/_integrator_helpers.py +0 -0
  41. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/src/vcs_versioning/_legacy_parse.py +0 -0
  42. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/src/vcs_versioning/_log.py +0 -0
  43. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/src/vcs_versioning/_modify_version.py +0 -0
  44. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/src/vcs_versioning/_node_utils.py +0 -0
  45. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/src/vcs_versioning/_overrides.py +0 -0
  46. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/src/vcs_versioning/_paths.py +0 -0
  47. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/src/vcs_versioning/_project_overrides.py +0 -0
  48. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/src/vcs_versioning/_protocols.py +0 -0
  49. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/src/vcs_versioning/_pyproject_reading.py +0 -0
  50. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/src/vcs_versioning/_requirement_cls.py +0 -0
  51. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/src/vcs_versioning/_run_cmd.py +0 -0
  52. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/src/vcs_versioning/_scm_metadata.py +0 -0
  53. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/src/vcs_versioning/_scm_version.py +0 -0
  54. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/src/vcs_versioning/_test_utils.py +0 -0
  55. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/src/vcs_versioning/_toml.py +0 -0
  56. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/src/vcs_versioning/_types.py +0 -0
  57. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/src/vcs_versioning/_version_cls.py +0 -0
  58. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/src/vcs_versioning/_version_fields.py +0 -0
  59. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/src/vcs_versioning/_version_inference.py +0 -0
  60. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/src/vcs_versioning/_version_schemes/__init__.py +0 -0
  61. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/src/vcs_versioning/_version_schemes/_common.py +0 -0
  62. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/src/vcs_versioning/_version_schemes/_standard.py +0 -0
  63. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/src/vcs_versioning/_version_schemes/_towncrier.py +0 -0
  64. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/src/vcs_versioning/_worktree_discovery.py +0 -0
  65. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/src/vcs_versioning/overrides.py +0 -0
  66. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/src/vcs_versioning/py.typed +0 -0
  67. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/src/vcs_versioning/test_api.py +0 -0
  68. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/src/vcs_versioning.egg-info/SOURCES.txt +0 -0
  69. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/src/vcs_versioning.egg-info/dependency_links.txt +0 -0
  70. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/src/vcs_versioning.egg-info/entry_points.txt +0 -0
  71. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/src/vcs_versioning.egg-info/requires.txt +0 -0
  72. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/src/vcs_versioning.egg-info/top_level.txt +0 -0
  73. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/testing_vcs/__init__.py +0 -0
  74. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/testing_vcs/conftest.py +0 -0
  75. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/testing_vcs/test_better_root_errors.py +0 -0
  76. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/testing_vcs/test_chain_api.py +0 -0
  77. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/testing_vcs/test_compat.py +0 -0
  78. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/testing_vcs/test_config.py +0 -0
  79. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/testing_vcs/test_dynamic_metadata.py +0 -0
  80. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/testing_vcs/test_expect_parse.py +0 -0
  81. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/testing_vcs/test_file_finders.py +0 -0
  82. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/testing_vcs/test_hg_git.py +0 -0
  83. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/testing_vcs/test_hg_tag_strict.py +0 -0
  84. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/testing_vcs/test_integrator_helpers.py +0 -0
  85. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/testing_vcs/test_internal_log_level.py +0 -0
  86. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/testing_vcs/test_jj.py +0 -0
  87. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/testing_vcs/test_legacy_parse.py +0 -0
  88. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/testing_vcs/test_mercurial.py +0 -0
  89. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/testing_vcs/test_overrides_api.py +0 -0
  90. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/testing_vcs/test_overrides_env_reader.py +0 -0
  91. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/testing_vcs/test_project_overrides.py +0 -0
  92. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/testing_vcs/test_project_path.py +0 -0
  93. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/testing_vcs/test_regressions.py +0 -0
  94. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/testing_vcs/test_scm_metadata.py +0 -0
  95. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/testing_vcs/test_tag_config.py +0 -0
  96. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/testing_vcs/test_tag_strict_diagnostics.py +0 -0
  97. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/testing_vcs/test_version.py +0 -0
  98. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/testing_vcs/test_version_scheme_towncrier.py +0 -0
  99. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/testing_vcs/test_version_schemes.py +0 -0
  100. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/testing_vcs/test_workdir_api.py +0 -0
  101. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/testing_vcs/test_workdir_discovery.py +0 -0
  102. {vcs_versioning-2.3.0 → vcs_versioning-2.3.1}/uv.lock +0 -0
@@ -2,6 +2,12 @@
2
2
 
3
3
  <!-- towncrier release notes start -->
4
4
 
5
+ ## 2.3.1 (2026-08-19)
6
+
7
+ ### Fixed
8
+
9
+ - Fix a `FileNotFoundError` crash in the git file finder when a submodule is tracked in the index but its working tree directory does not exist - such gitlinks are now skipped like not checked out submodules. ([#1500](https://github.com/pypa/setuptools-scm/issues/1500))
10
+
5
11
  ## 2.3.0 (2026-08-13)
6
12
 
7
13
  ### Added
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: vcs-versioning
3
- Version: 2.3.0
3
+ Version: 2.3.1
4
4
  Summary: the blessed package to manage your versions by vcs metadata
5
5
  Author-email: Ronny Pfannschmidt <opensource@ronnypfannschmidt.de>
6
6
  License: MIT
@@ -84,6 +84,10 @@ def _ls_files_entries(
84
84
  ``None`` signals that git refused to list files (no repository yet,
85
85
  or a submodule that is not checked out).
86
86
  """
87
+ if not repo.is_dir():
88
+ # a submodule tracked in the index whose working tree is absent -
89
+ # running git in it would fail before git could report anything
90
+ return None
87
91
  res = run_git(
88
92
  ["ls-files", "-z", "-s", "--", ".", ":(exclude,attr:export-ignore)"],
89
93
  repo,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: vcs-versioning
3
- Version: 2.3.0
3
+ Version: 2.3.1
4
4
  Summary: the blessed package to manage your versions by vcs metadata
5
5
  Author-email: Ronny Pfannschmidt <opensource@ronnypfannschmidt.de>
6
6
  License: MIT
@@ -508,6 +508,26 @@ def test_git_uninitialized_submodule_skipped(
508
508
  assert not [name for name in found if "mysub" in name]
509
509
 
510
510
 
511
+ @pytest.mark.issue("https://github.com/pypa/setuptools-scm/issues/1500")
512
+ def test_git_submodule_without_working_tree_skipped(
513
+ wd: WorkDir, monkeypatch: pytest.MonkeyPatch
514
+ ) -> None:
515
+ """A gitlink whose directory does not exist at all is skipped, not fatal."""
516
+ wd.write("parent_file.txt", "parent content")
517
+ wd("git add parent_file.txt")
518
+ wd(
519
+ "git update-index --add --cacheinfo"
520
+ " 160000,77ef5b8fe4bab2b73f7b234267f0dfb75e96eeee,missing_submodule"
521
+ )
522
+ wd.commit()
523
+
524
+ monkeypatch.chdir(wd.cwd)
525
+ found = set(vcs_versioning._file_finders.find_files("."))
526
+
527
+ assert opj(".", "parent_file.txt") in found
528
+ assert not [name for name in found if "missing_submodule" in name]
529
+
530
+
511
531
  @pytest.mark.issue("https://github.com/pypa/setuptools-scm/issues/728")
512
532
  def test_git_branch_names_correct(wd: WorkDir) -> None:
513
533
  wd.commit_testfile()
File without changes
File without changes
File without changes
File without changes