Commit 01ba6830 authored by 06kellyjac's avatar 06kellyjac Committed by K900
Browse files

go-mockery: 2.53.3 -> 3.4.0

Diff: https://github.com/vektra/mockery/compare/refs/tags/v2.53.3...refs/tags/v3.4.0

Move to finalAttrs func
Replace version check test with version check hook
Added release note
parent e0bcc2ca
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -43,6 +43,8 @@
  of the [4.3 release](https://github.com/netbox-community/netbox/releases/tag/v4.2.0),
  make the required changes to your database, if needed, then upgrade by setting `services.netbox.package = pkgs.netbox_4_3;` in your configuration.

- `go-mockery` has been updated to v3. For migration instructions see the [upstream documentation](https://vektra.github.io/mockery/latest/v3/).

## Other Notable Changes {#sec-nixpkgs-release-25.11-notable-changes}

<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
+43 −51
Original line number Diff line number Diff line
{
  lib,
  buildGoModule, # sync with go below, update to latest release
  stdenv,
  buildGoModule,
  fetchFromGitHub,

  # passthru test
  go-mockery,
  runCommand,
  go,
  versionCheckHook,
  go-task,
  gotestsum,
}:

buildGoModule rec {
buildGoModule (finalAttrs: {
  pname = "go-mockery";
  version = "2.53.3";
  version = "3.4.0";

  src = fetchFromGitHub {
    owner = "vektra";
    repo = "mockery";
    rev = "v${version}";
    sha256 = "sha256-X0cHpv4o6pzgjg7+ULCuFkspeff95WFtJbVHqy4LxAg=";
    tag = "v${finalAttrs.version}";
    hash = "sha256-qcK0FXtAL7kJ+dotthmnMcGa9wu97UsDKBoKy5lD2W4=";
  };

  proxyVendor = true;
  vendorHash = "sha256-Xy2w61ATNDOZKtdekeA9NSdyJq2/eiEZ9iJ3PDSUm9Q=";

  ldflags = [
    "-s"
    "-w"
    "-X"
    "github.com/vektra/mockery/v${lib.versions.major version}/pkg/logging.SemVer=v${version}"
    "-X github.com/vektra/mockery/v${lib.versions.major finalAttrs.version}/internal/logging.SemVer=v${finalAttrs.version}"
  ];

  env.CGO_ENABLED = false;

  proxyVendor = true;
  vendorHash = "sha256-AQY4x2bLqMwHIjoKHzEm1hebR29gRs3LJN8i00Uup5o=";

  subPackages = [ "." ];

  preCheck = ''
    # check all paths
    unset subPackages

    substituteInPlace ./pkg/generator_test.go --replace-fail 0.0.0-dev ${version}
    substituteInPlace ./pkg/logging/logging_test.go --replace-fail v0.0 v${lib.versions.majorMinor version}
  '';
  nativeCheckInputs = [
    versionCheckHook
    go-task
    gotestsum
  ];

  passthru.tests = {
    generateMock =
      runCommand "${pname}-test"
        {
          nativeBuildInputs = [ go-mockery ];
          buildInputs = [ go ];
        }
        ''
          if [[ $(${meta.mainProgram} --version) != *"${version}"* ]]; then
            echo "Error: program version does not match package version"
            exit 1
          fi
  prePatch = ''
    # remove test.ci's dependency on lint since we don't need it and
    # it tries to use remote golangci-lint
    substituteInPlace Taskfile.yml \
      --replace-fail "deps: [lint]" "" \
      --replace-fail "go run gotest.tools/gotestsum" "gotestsum"

          export HOME=$TMPDIR
    # patch scripts used in e2e testing
    patchShebangs e2e
  '';

          cat <<EOF > foo.go
          package main
  checkPhase = ''
    runHook preCheck

          type Foo interface {
            Bark() string
    ${
      # TestRemoteTemplates/schema_validation_OK fails only on x86_64-darwin
      (lib.optionalString (
        stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isx86
      ) "rm -rf e2e/test_remote_templates/")
    }
          EOF

          ${meta.mainProgram} --name Foo --dir .
    # run unit tests and e2e tests plus pre-gen necessary mocks
    task test.ci

          if [[ ! -f "mocks/Foo.go" ]]; then
            echo "Error: mocks/Foo.go was not generated by ${pname}"
            exit 1
          fi

          touch $out
    runHook postCheck
  '';
  };

  doInstallCheck = true;
  versionCheckProgram = "${placeholder "out"}/bin/mockery";
  versionCheckProgramArg = "version";

  meta = {
    homepage = "https://github.com/vektra/mockery";
@@ -86,4 +78,4 @@ buildGoModule rec {
    mainProgram = "mockery";
    license = lib.licenses.bsd3;
  };
}
})