Unverified Commit 1878a5ca authored by K900's avatar K900 Committed by GitHub
Browse files

go-mockery: 2.53.3 -> 3.4.0 (#417877)

parents 9e9554c0 6092e7e4
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/). If v2 is still required `go-mockery_v2` has been added but will be removed on or before 2029-12-31 in-line with it's [upstream support lifecycle](https://vektra.github.io/mockery/

## 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. -->
+2 −2
Original line number Diff line number Diff line
@@ -2,7 +2,7 @@
  lib,
  buildGoModule,
  fetchFromGitHub,
  go-mockery,
  go-mockery_2,
  installShellFiles,
}:

@@ -20,7 +20,7 @@ buildGoModule rec {
  vendorHash = "sha256-NTOUL1oE2IhgLyYYHwRCMW5yCxIRxUwqkfuhSSBXf6A=";

  nativeBuildInputs = [
    go-mockery
    go-mockery_2
    installShellFiles
  ];

+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;
  };
}
})
+51 −0
Original line number Diff line number Diff line
{
  lib,
  buildGoModule,
  fetchFromGitHub,
  versionCheckHook,
  go-task,
  gotestsum,
  getent,
}:

buildGoModule (finalAttrs: {
  pname = "go-mockery_2";
  # supported upstream until 2029-12-31
  # https://vektra.github.io/mockery/latest/v3/#v2-support-lifecycle
  version = "2.53.3";

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

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

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

  env.CGO_ENABLED = false;

  subPackages = [ "." ];

  nativeCheckInputs = [
    versionCheckHook
  ];

  meta = {
    homepage = "https://github.com/vektra/mockery";
    description = "Mock code autogenerator for Golang - v2";
    maintainers = with lib.maintainers; [
      fbrs
      jk
    ];
    mainProgram = "mockery";
    license = lib.licenses.bsd3;
  };
})
+2 −2
Original line number Diff line number Diff line
@@ -6,7 +6,7 @@
  ncurses,
  gettext,
  pigeon,
  go-mockery,
  go-mockery_2,
  protoc-go-inject-tag,
  libxcrypt,
  vips,
@@ -76,7 +76,7 @@ buildGoModule rec {
    ncurses
    gettext
    pigeon
    go-mockery
    go-mockery_2
    protoc-go-inject-tag
    pkg-config
  ];