python-package-folder 5.2.4__tar.gz → 5.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 (60) hide show
  1. {python_package_folder-5.2.4 → python_package_folder-5.3.0}/PKG-INFO +1 -1
  2. {python_package_folder-5.2.4 → python_package_folder-5.3.0}/coverage.svg +2 -2
  3. {python_package_folder-5.2.4 → python_package_folder-5.3.0}/pyproject.toml +1 -1
  4. {python_package_folder-5.2.4 → python_package_folder-5.3.0}/src/python_package_folder/version_calculator.py +24 -1
  5. {python_package_folder-5.2.4 → python_package_folder-5.3.0}/.copier-answers.yml +0 -0
  6. {python_package_folder-5.2.4 → python_package_folder-5.3.0}/.cursor/plans/optional_version_+_semantic-release_efed88a6.plan.md +0 -0
  7. {python_package_folder-5.2.4 → python_package_folder-5.3.0}/.cursor/plans/replace_node.js_semantic-release_with_custom_python_implementation_64e05e1a.plan.md +0 -0
  8. {python_package_folder-5.2.4 → python_package_folder-5.3.0}/.cursor/rules/general.mdc +0 -0
  9. {python_package_folder-5.2.4 → python_package_folder-5.3.0}/.cursor/rules/python.mdc +0 -0
  10. {python_package_folder-5.2.4 → python_package_folder-5.3.0}/.github/workflows/ci.yml +0 -0
  11. {python_package_folder-5.2.4 → python_package_folder-5.3.0}/.github/workflows/publish.yml +0 -0
  12. {python_package_folder-5.2.4 → python_package_folder-5.3.0}/.gitignore +0 -0
  13. {python_package_folder-5.2.4 → python_package_folder-5.3.0}/.vscode/settings.json +0 -0
  14. {python_package_folder-5.2.4 → python_package_folder-5.3.0}/LICENSE +0 -0
  15. {python_package_folder-5.2.4 → python_package_folder-5.3.0}/MANIFEST.in +0 -0
  16. {python_package_folder-5.2.4 → python_package_folder-5.3.0}/Makefile +0 -0
  17. {python_package_folder-5.2.4 → python_package_folder-5.3.0}/README.md +0 -0
  18. {python_package_folder-5.2.4 → python_package_folder-5.3.0}/development.md +0 -0
  19. {python_package_folder-5.2.4 → python_package_folder-5.3.0}/docs/DEVELOPMENT.md +0 -0
  20. {python_package_folder-5.2.4 → python_package_folder-5.3.0}/docs/INSTALLATION.md +0 -0
  21. {python_package_folder-5.2.4 → python_package_folder-5.3.0}/docs/PUBLISHING.md +0 -0
  22. {python_package_folder-5.2.4 → python_package_folder-5.3.0}/docs/REFERENCE.md +0 -0
  23. {python_package_folder-5.2.4 → python_package_folder-5.3.0}/docs/USAGE.md +0 -0
  24. {python_package_folder-5.2.4 → python_package_folder-5.3.0}/docs/VERSION_RESOLUTION.md +0 -0
  25. {python_package_folder-5.2.4 → python_package_folder-5.3.0}/installation.md +0 -0
  26. {python_package_folder-5.2.4 → python_package_folder-5.3.0}/publishing.md +0 -0
  27. {python_package_folder-5.2.4 → python_package_folder-5.3.0}/src/python_package_folder/__init__.py +0 -0
  28. {python_package_folder-5.2.4 → python_package_folder-5.3.0}/src/python_package_folder/__main__.py +0 -0
  29. {python_package_folder-5.2.4 → python_package_folder-5.3.0}/src/python_package_folder/analyzer.py +0 -0
  30. {python_package_folder-5.2.4 → python_package_folder-5.3.0}/src/python_package_folder/finder.py +0 -0
  31. {python_package_folder-5.2.4 → python_package_folder-5.3.0}/src/python_package_folder/manager.py +0 -0
  32. {python_package_folder-5.2.4 → python_package_folder-5.3.0}/src/python_package_folder/publisher.py +0 -0
  33. {python_package_folder-5.2.4 → python_package_folder-5.3.0}/src/python_package_folder/py.typed +0 -0
  34. {python_package_folder-5.2.4 → python_package_folder-5.3.0}/src/python_package_folder/python_package_folder.py +0 -0
  35. {python_package_folder-5.2.4 → python_package_folder-5.3.0}/src/python_package_folder/subfolder_build.py +0 -0
  36. {python_package_folder-5.2.4 → python_package_folder-5.3.0}/src/python_package_folder/types.py +0 -0
  37. {python_package_folder-5.2.4 → python_package_folder-5.3.0}/src/python_package_folder/utils.py +0 -0
  38. {python_package_folder-5.2.4 → python_package_folder-5.3.0}/src/python_package_folder/version.py +0 -0
  39. {python_package_folder-5.2.4 → python_package_folder-5.3.0}/tests/conftest.py +0 -0
  40. {python_package_folder-5.2.4 → python_package_folder-5.3.0}/tests/folder_structure/some_globals.py +0 -0
  41. {python_package_folder-5.2.4 → python_package_folder-5.3.0}/tests/folder_structure/subfolder_to_build/README.md +0 -0
  42. {python_package_folder-5.2.4 → python_package_folder-5.3.0}/tests/folder_structure/subfolder_to_build/__init__.py +0 -0
  43. {python_package_folder-5.2.4 → python_package_folder-5.3.0}/tests/folder_structure/subfolder_to_build/some_function.py +0 -0
  44. {python_package_folder-5.2.4 → python_package_folder-5.3.0}/tests/folder_structure/subfolder_to_build/some_globals.py +0 -0
  45. {python_package_folder-5.2.4 → python_package_folder-5.3.0}/tests/folder_structure/utility_folder/_SS/some_superseded_file.py +0 -0
  46. {python_package_folder-5.2.4 → python_package_folder-5.3.0}/tests/folder_structure/utility_folder/some_utility.py +0 -0
  47. {python_package_folder-5.2.4 → python_package_folder-5.3.0}/tests/test_build_with_external_deps.py +0 -0
  48. {python_package_folder-5.2.4 → python_package_folder-5.3.0}/tests/test_exclude_patterns.py +0 -0
  49. {python_package_folder-5.2.4 → python_package_folder-5.3.0}/tests/test_linting.py +0 -0
  50. {python_package_folder-5.2.4 → python_package_folder-5.3.0}/tests/test_preserve_directory_structure.py +0 -0
  51. {python_package_folder-5.2.4 → python_package_folder-5.3.0}/tests/test_publisher.py +0 -0
  52. {python_package_folder-5.2.4 → python_package_folder-5.3.0}/tests/test_shared_subdirectory_imports.py +0 -0
  53. {python_package_folder-5.2.4 → python_package_folder-5.3.0}/tests/test_spreadsheet_creation_imports.py +0 -0
  54. {python_package_folder-5.2.4 → python_package_folder-5.3.0}/tests/test_subfolder_build.py +0 -0
  55. {python_package_folder-5.2.4 → python_package_folder-5.3.0}/tests/test_third_party_dependencies.py +0 -0
  56. {python_package_folder-5.2.4 → python_package_folder-5.3.0}/tests/test_utils.py +0 -0
  57. {python_package_folder-5.2.4 → python_package_folder-5.3.0}/tests/test_version_calculator.py +0 -0
  58. {python_package_folder-5.2.4 → python_package_folder-5.3.0}/tests/test_version_manager.py +0 -0
  59. {python_package_folder-5.2.4 → python_package_folder-5.3.0}/tests/tests.py +0 -0
  60. {python_package_folder-5.2.4 → python_package_folder-5.3.0}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-package-folder
3
- Version: 5.2.4
3
+ Version: 5.3.0
4
4
  Summary: Python package to automatically package and build a folder, fetching all relevant dependencies.
5
5
  Project-URL: Repository, https://github.com/alelom/python-package-folder
6
6
  Author-email: Alessio Lombardi <work@alelom.com>
@@ -14,7 +14,7 @@
14
14
  <g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11">
15
15
  <text x="31.5" y="15" fill="#010101" fill-opacity=".3">coverage</text>
16
16
  <text x="31.5" y="14">coverage</text>
17
- <text x="81" y="15" fill="#010101" fill-opacity=".3">67%</text>
18
- <text x="81" y="14">67%</text>
17
+ <text x="81" y="15" fill="#010101" fill-opacity=".3">66%</text>
18
+ <text x="81" y="14">66%</text>
19
19
  </g>
20
20
  </svg>
@@ -43,7 +43,7 @@ dependencies = [
43
43
 
44
44
  # ---- Dev dependencies ----
45
45
 
46
- version = "5.2.4"
46
+ version = "5.3.0"
47
47
  [dependency-groups]
48
48
  dev = [
49
49
  "pytest>=8.3.5",
@@ -820,6 +820,7 @@ def parse_commit_for_bump(commit_message: str) -> str | None:
820
820
  def calculate_next_version(
821
821
  baseline_version: str,
822
822
  commits: list[str],
823
+ auto_bump_minor: bool = False,
823
824
  ) -> str | None:
824
825
  """
825
826
  Calculate next version from baseline and commits.
@@ -827,11 +828,21 @@ def calculate_next_version(
827
828
  Args:
828
829
  baseline_version: Current baseline version (e.g., "1.2.3")
829
830
  commits: List of commit messages since baseline
831
+ auto_bump_minor: If True and no conventional commits found, bump minor version
830
832
 
831
833
  Returns:
832
834
  Next version string or None if no changes require a version bump
833
835
  """
834
836
  if not commits:
837
+ # If no commits and auto_bump_minor is enabled, bump minor version
838
+ if auto_bump_minor:
839
+ try:
840
+ parts = baseline_version.split(".")
841
+ major = int(parts[0])
842
+ minor = int(parts[1]) if len(parts) > 1 else 0
843
+ return f"{major}.{minor + 1}.0"
844
+ except (ValueError, IndexError):
845
+ return None
835
846
  return None
836
847
 
837
848
  # Parse each commit to determine bump type
@@ -842,6 +853,16 @@ def calculate_next_version(
842
853
  bump_types.append(bump)
843
854
 
844
855
  if not bump_types:
856
+ # No conventional commits found
857
+ # If auto_bump_minor is enabled, bump minor version
858
+ if auto_bump_minor:
859
+ try:
860
+ parts = baseline_version.split(".")
861
+ major = int(parts[0])
862
+ minor = int(parts[1]) if len(parts) > 1 else 0
863
+ return f"{major}.{minor + 1}.0"
864
+ except (ValueError, IndexError):
865
+ return None
845
866
  return None
846
867
 
847
868
  # Determine highest bump (major > minor > patch)
@@ -975,7 +996,9 @@ def resolve_version(
975
996
 
976
997
  # Step 5: Calculate next version
977
998
  logger.info(f"Calculating next version from baseline {baseline_version} and {len(commits)} commits")
978
- next_version = calculate_next_version(baseline_version, commits)
999
+ # Auto-bump minor version if no conventional commits found (but baseline exists)
1000
+ auto_bump_minor = baseline_version is not None and baseline_version != "0.0.0"
1001
+ next_version = calculate_next_version(baseline_version, commits, auto_bump_minor=auto_bump_minor)
979
1002
 
980
1003
  if next_version:
981
1004
  logger.info(f"Calculated next version: {next_version}")