diff --git a/hate_crack/main.py b/hate_crack/main.py index 15c1abb..6101c59 100755 --- a/hate_crack/main.py +++ b/hate_crack/main.py @@ -827,12 +827,15 @@ def _run_upgrade(): if git_root_result.returncode != 0: print( "\n Could not find a git repository to upgrade from." - "\n Run manually: git pull && make clean && make && make install\n" + "\n Run manually: git pull && git fetch --tags && uv sync --reinstall-package hate_crack\n" ) raise SystemExit(1) repo_root = git_root_result.stdout.strip() result = subprocess.run( - "git pull && make install", + # git fetch --tags ensures new release tags are visible to setuptools-scm. + # uv sync --reinstall-package forces hate_crack to be rebuilt from + # current source so setuptools-scm generates the correct version. + "git pull && git fetch --tags && uv sync --reinstall-package hate_crack", shell=True, cwd=repo_root, ) diff --git a/tests/test_version_check.py b/tests/test_version_check.py index c79aed2..871ee03 100644 --- a/tests/test_version_check.py +++ b/tests/test_version_check.py @@ -160,7 +160,7 @@ class TestCheckForUpdates: assert mock_run.call_count == 2 make_cmd = mock_run.call_args_list[1][0][0] assert "git pull" in make_cmd - assert "make install" in make_cmd + assert "uv sync --reinstall-package hate_crack" in make_cmd assert mock_run.call_args_list[1][1]["cwd"] == "/fake/repo" output = capsys.readouterr().out assert "Upgrade complete" in output @@ -231,7 +231,7 @@ class TestRunUpgrade: assert mock_run.call_count == 2 make_cmd = mock_run.call_args_list[1][0][0] assert "git pull" in make_cmd - assert "make install" in make_cmd + assert "uv sync --reinstall-package hate_crack" in make_cmd assert mock_run.call_args_list[1][1]["cwd"] == "/fake/repo" output = capsys.readouterr().out assert "Upgrade complete" in output