Skip to content

Commit

Permalink
docs: gomod: Deprecate --force-gomod-tidy
Browse files Browse the repository at this point in the history
This flag has always documented as "questionable" and a candidate for a
removal (documented by commit 9e9615c)
ever since its introduction.
This patch officially deprecates the flag.

Signed-off-by: Erik Skultety <[email protected]>
  • Loading branch information
eskultety committed Jan 7, 2025
1 parent 0060a59 commit d369c1c
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 37 deletions.
4 changes: 0 additions & 4 deletions cachi2/core/package_managers/gomod.py
Original file line number Diff line number Diff line change
Expand Up @@ -1025,7 +1025,6 @@ def _resolve_gomod(
modules_in_go_sum = _parse_go_sum(app_dir.join_within_root("go.sum"))

# Vendor dependencies if the gomod-vendor flag is set
flags = request.flags
if should_vendor:
downloaded_modules = _vendor_deps(go, app_dir, bool(go_work), run_params)
else:
Expand All @@ -1035,9 +1034,6 @@ def _resolve_gomod(
for obj in load_json_stream(go(["mod", "download", "-json"], run_params, retry=True))
)

if "force-gomod-tidy" in flags:
go(["mod", "tidy"], run_params)

main_module, workspace_modules = _parse_local_modules(
go_work, go, run_params, app_dir, version_resolver
)
Expand Down
5 changes: 4 additions & 1 deletion cachi2/interface/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,10 @@ def fetch_deps(
force_gomod_tidy: bool = typer.Option(
False,
"--force-gomod-tidy",
help="Run 'go mod tidy' after downloading go dependencies.",
help=(
"DEPRECATED (no longer has any effect when set). "
"Run 'go mod tidy' after downloading go dependencies."
),
),
gomod_vendor: bool = typer.Option(
False,
Expand Down
36 changes: 4 additions & 32 deletions tests/unit/package_managers/test_gomod.py
Original file line number Diff line number Diff line change
Expand Up @@ -141,13 +141,11 @@ def _parse_go_list_deps_data(data_dir: Path, file_path: str) -> list[ParsedPacka


@pytest.mark.parametrize(
"cgo_disable, force_gomod_tidy, has_workspaces",
"cgo_disable, has_workspaces",
(
pytest.param(False, False, False, id="cgo_disabled__dont_force_tidy"),
pytest.param(True, False, False, id="cgo_enabled__dont_force_tidy"),
pytest.param(False, True, False, id="cgo_disabled__force_tidy"),
pytest.param(True, True, False, id="cgo_enabled__force_tidy"),
pytest.param(False, False, True, id="has_workspaces"),
pytest.param(False, False, id="cgo_disabled"),
pytest.param(True, False, id="cgo_enabled"),
pytest.param(False, True, id="has_workspaces"),
),
)
@mock.patch("cachi2.core.package_managers.gomod._go_list_deps")
Expand All @@ -172,7 +170,6 @@ def test_resolve_gomod(
mock_parse_packages: mock.Mock,
mock_go_list_deps: mock.Mock,
cgo_disable: bool,
force_gomod_tidy: bool,
has_workspaces: bool,
tmp_path: Path,
data_dir: Path,
Expand All @@ -198,9 +195,6 @@ def test_resolve_gomod(
)
)

if force_gomod_tidy:
run_side_effects.append(proc_mock("go mod tidy", returncode=0, stdout=None))

run_side_effects.append(
proc_mock(
"go list -e -m",
Expand Down Expand Up @@ -252,8 +246,6 @@ def test_resolve_gomod(
flags: list[Flag] = []
if cgo_disable:
flags.append("cgo-disable")
if force_gomod_tidy:
flags.append("force-gomod-tidy")

gomod_request.flags = frozenset(flags)

Expand All @@ -266,9 +258,6 @@ def test_resolve_gomod(
module_dir, gomod_request, tmp_path, mock_version_resolver, go_work
)

if force_gomod_tidy:
assert mock_run.call_args_list[1][0][0] == [GO_CMD_PATH, "mod", "tidy"]

assert mock_run.call_args_list[0][1]["env"]["GOMODCACHE"] == f"{tmp_path}/pkg/mod"

# Assert that _parse_packages was called exactly once.
Expand Down Expand Up @@ -303,7 +292,6 @@ def test_resolve_gomod(
)


@pytest.mark.parametrize("force_gomod_tidy", [False, True])
@mock.patch("cachi2.core.package_managers.gomod._disable_telemetry")
@mock.patch("cachi2.core.package_managers.gomod.Go.release", new_callable=mock.PropertyMock)
@mock.patch("cachi2.core.package_managers.gomod._get_gomod_version")
Expand All @@ -319,7 +307,6 @@ def test_resolve_gomod_vendor_dependencies(
mock_get_gomod_version: mock.Mock,
mock_go_release: mock.PropertyMock,
mock_disable_telemetry: mock.Mock,
force_gomod_tidy: bool,
tmp_path: Path,
data_dir: Path,
gomod_request: Request,
Expand All @@ -333,8 +320,6 @@ def test_resolve_gomod_vendor_dependencies(
# Mock the "subprocess.run" calls
run_side_effects = []
run_side_effects.append(proc_mock("go mod vendor", returncode=0, stdout=None))
if force_gomod_tidy:
run_side_effects.append(proc_mock("go mod tidy", returncode=0, stdout=None))
run_side_effects.append(
proc_mock(
"go list -e -m -json",
Expand Down Expand Up @@ -365,12 +350,6 @@ def test_resolve_gomod_vendor_dependencies(
mock_get_gomod_version.return_value = ("0.1.1", "0.1.2")
mock_vendor_changed.return_value = False

flags: list[Flag] = []
if force_gomod_tidy:
flags.append("force-gomod-tidy")

gomod_request.flags = frozenset(flags)

module_dir.join_within_root("vendor").path.mkdir(parents=True)
module_dir.join_within_root("vendor/modules.txt").path.write_text(
get_mocked_data(data_dir, "vendored/modules.txt")
Expand Down Expand Up @@ -402,7 +381,6 @@ def test_resolve_gomod_vendor_dependencies(
assert resolve_result.modules_in_go_sum == expect_result.modules_in_go_sum


@pytest.mark.parametrize("force_gomod_tidy", [False, True])
@mock.patch("cachi2.core.package_managers.gomod._disable_telemetry")
@mock.patch("cachi2.core.package_managers.gomod.Go.release", new_callable=mock.PropertyMock)
@mock.patch("cachi2.core.package_managers.gomod.Go._install")
Expand All @@ -418,7 +396,6 @@ def test_resolve_gomod_no_deps(
mock_go_install: mock.Mock,
mock_go_release: mock.PropertyMock,
mock_disable_telemetry: mock.Mock,
force_gomod_tidy: bool,
tmp_path: Path,
gomod_request: Request,
) -> None:
Expand Down Expand Up @@ -455,8 +432,6 @@ def test_resolve_gomod_no_deps(
# Mock the "subprocess.run" calls
run_side_effects = []
run_side_effects.append(proc_mock("go mod download -json", returncode=0, stdout=""))
if force_gomod_tidy:
run_side_effects.append(proc_mock("go mod tidy", returncode=0, stdout=None))
run_side_effects.append(
proc_mock(
"go list -e -m",
Expand All @@ -477,9 +452,6 @@ def test_resolve_gomod_no_deps(
mock_go_install.return_value = "/usr/bin/go"
mock_get_gomod_version.return_value = ("1.21.4", None)

if force_gomod_tidy:
gomod_request.flags = frozenset({"force-gomod-tidy"})

main_module, modules, packages, _ = _resolve_gomod(
module_path, gomod_request, tmp_path, mock_version_resolver, mocked_go_work
)
Expand Down

0 comments on commit d369c1c

Please sign in to comment.