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

This commit is contained in:
K900 2025-07-14 18:44:01 +03:00 committed by GitHub
commit 1878a5ca08
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 100 additions and 55 deletions

View File

@ -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. -->

View File

@ -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
];

View File

@ -1,80 +1,72 @@
{
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
nativeCheckInputs = [
versionCheckHook
go-task
gotestsum
];
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}
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"
# patch scripts used in e2e testing
patchShebangs e2e
'';
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
checkPhase = ''
runHook preCheck
export HOME=$TMPDIR
${
# TestRemoteTemplates/schema_validation_OK fails only on x86_64-darwin
(lib.optionalString (
stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isx86
) "rm -rf e2e/test_remote_templates/")
}
# run unit tests and e2e tests plus pre-gen necessary mocks
task test.ci
cat <<EOF > foo.go
package main
runHook postCheck
'';
type Foo interface {
Bark() string
}
EOF
${meta.mainProgram} --name Foo --dir .
if [[ ! -f "mocks/Foo.go" ]]; then
echo "Error: mocks/Foo.go was not generated by ${pname}"
exit 1
fi
touch $out
'';
};
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;
};
}
})

View File

@ -0,0 +1,51 @@
{
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;
};
})

View File

@ -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
];