From 1d575e19e4003f7f972a50719d298d0dfc84096a Mon Sep 17 00:00:00 2001 From: Ivan Trubach Date: Sun, 23 Feb 2025 19:53:26 +0300 Subject: [PATCH 01/11] pulumi: add tie as maintainer --- pkgs/by-name/pu/pulumi/package.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/by-name/pu/pulumi/package.nix b/pkgs/by-name/pu/pulumi/package.nix index a59203394e662..31b7a8659c998 100644 --- a/pkgs/by-name/pu/pulumi/package.nix +++ b/pkgs/by-name/pu/pulumi/package.nix @@ -155,6 +155,7 @@ buildGo122Module rec { maintainers = with maintainers; [ trundle veehaitch + tie ]; }; } From b257e7c1dfc16d80642371681c2dfc8f452ff400 Mon Sep 17 00:00:00 2001 From: Ivan Trubach Date: Sun, 23 Feb 2025 19:55:42 +0300 Subject: [PATCH 02/11] pulumi: remove `with lib;` --- pkgs/by-name/pu/pulumi/package.nix | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/pkgs/by-name/pu/pulumi/package.nix b/pkgs/by-name/pu/pulumi/package.nix index 31b7a8659c998..35322aeafa463 100644 --- a/pkgs/by-name/pu/pulumi/package.nix +++ b/pkgs/by-name/pu/pulumi/package.nix @@ -1,6 +1,6 @@ { - stdenv, lib, + stdenv, buildGo122Module, coreutils, fetchFromGitHub, @@ -146,13 +146,13 @@ buildGo122Module rec { ''; }; - meta = with lib; { + meta = { homepage = "https://pulumi.io/"; description = "Pulumi is a cloud development platform that makes creating cloud programs easy and productive"; - sourceProvenance = [ sourceTypes.fromSource ]; - license = licenses.asl20; - platforms = platforms.unix; - maintainers = with maintainers; [ + sourceProvenance = [ lib.sourceTypes.fromSource ]; + license = lib.licenses.asl20; + platforms = lib.platforms.unix; + maintainers = with lib.maintainers; [ trundle veehaitch tie From d7f4e399bfffc7b3602c1c7e5d3fa3bfe90d6865 Mon Sep 17 00:00:00 2001 From: Ivan Trubach Date: Sun, 23 Feb 2025 19:57:31 +0300 Subject: [PATCH 03/11] pulumi: update meta --- pkgs/by-name/pu/pulumi/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/pu/pulumi/package.nix b/pkgs/by-name/pu/pulumi/package.nix index 35322aeafa463..18ed550fca938 100644 --- a/pkgs/by-name/pu/pulumi/package.nix +++ b/pkgs/by-name/pu/pulumi/package.nix @@ -147,11 +147,11 @@ buildGo122Module rec { }; meta = { - homepage = "https://pulumi.io/"; + homepage = "https://www.pulumi.com"; description = "Pulumi is a cloud development platform that makes creating cloud programs easy and productive"; sourceProvenance = [ lib.sourceTypes.fromSource ]; license = lib.licenses.asl20; - platforms = lib.platforms.unix; + mainProgram = "pulumi"; maintainers = with lib.maintainers; [ trundle veehaitch From eb693ca3c454660958e9f8a51996d7b7bea8f1fc Mon Sep 17 00:00:00 2001 From: Ivan Trubach Date: Sun, 23 Feb 2025 20:21:45 +0300 Subject: [PATCH 04/11] pulumiPackages.pulumi-language-go: update meta --- .../admin/pulumi-packages/pulumi-language-go.nix | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/pkgs/tools/admin/pulumi-packages/pulumi-language-go.nix b/pkgs/tools/admin/pulumi-packages/pulumi-language-go.nix index 01d1fec500c51..b952cd4d0571f 100644 --- a/pkgs/tools/admin/pulumi-packages/pulumi-language-go.nix +++ b/pkgs/tools/admin/pulumi-packages/pulumi-language-go.nix @@ -20,10 +20,13 @@ buildGoModule rec { # go: inconsistent vendoring in ... doCheck = false; - meta = with lib; { - description = "Golang language host plugin for Pulumi"; + meta = { + homepage = "https://www.pulumi.com/docs/iac/languages-sdks/go/"; + description = "Language host for Pulumi programs written in Go"; + license = lib.licenses.asl20; mainProgram = "pulumi-language-go"; - homepage = "https://github.com/pulumi/pulumi/tree/master/sdk/go"; - license = licenses.asl20; + maintainers = with lib.maintainers; [ + tie + ]; }; } From 1348ad901f5705d41793d83d0f4e1662eee6ad10 Mon Sep 17 00:00:00 2001 From: Ivan Trubach Date: Sun, 23 Feb 2025 20:22:57 +0300 Subject: [PATCH 05/11] pulumiPackages.pulumi-language-nodejs: update meta --- .../admin/pulumi-packages/pulumi-language-nodejs.nix | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/pkgs/tools/admin/pulumi-packages/pulumi-language-nodejs.nix b/pkgs/tools/admin/pulumi-packages/pulumi-language-nodejs.nix index 3fcd92e58d217..5e7d27beab78d 100644 --- a/pkgs/tools/admin/pulumi-packages/pulumi-language-nodejs.nix +++ b/pkgs/tools/admin/pulumi-packages/pulumi-language-nodejs.nix @@ -1,4 +1,5 @@ { + lib, buildGoModule, pulumi, nodejs, @@ -28,4 +29,14 @@ buildGoModule rec { nativeCheckInputs = [ nodejs ]; + + meta = { + homepage = "https://www.pulumi.com/docs/iac/languages-sdks/javascript/"; + description = "Language host for Pulumi programs written in TypeScript & JavaScript (Node.js)"; + license = lib.licenses.asl20; + mainProgram = "pulumi-language-nodejs"; + maintainers = with lib.maintainers; [ + tie + ]; + }; } From 5e736861f638f64b94ebc0b01c3e1dd9efaef4d5 Mon Sep 17 00:00:00 2001 From: Ivan Trubach Date: Sun, 23 Feb 2025 20:23:56 +0300 Subject: [PATCH 06/11] pulumiPackages.pulumi-language-python: update meta --- .../admin/pulumi-packages/pulumi-language-python.nix | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/pkgs/tools/admin/pulumi-packages/pulumi-language-python.nix b/pkgs/tools/admin/pulumi-packages/pulumi-language-python.nix index b685a8ff63359..3f38abaa32add 100644 --- a/pkgs/tools/admin/pulumi-packages/pulumi-language-python.nix +++ b/pkgs/tools/admin/pulumi-packages/pulumi-language-python.nix @@ -1,4 +1,5 @@ { + lib, buildGoModule, pulumi, python3, @@ -33,4 +34,14 @@ buildGoModule rec { cp ../../dist/pulumi-resource-pulumi-python $out/bin cp ../../dist/pulumi-analyzer-policy-python $out/bin ''; + + meta = { + homepage = "https://www.pulumi.com/docs/iac/languages-sdks/python/"; + description = "Language host for Pulumi programs written in Python"; + license = lib.licenses.asl20; + mainProgram = "pulumi-language-python"; + maintainers = with lib.maintainers; [ + tie + ]; + }; } From 8b62f1454d98fe4e65b74cd4159787a9e2daf1c6 Mon Sep 17 00:00:00 2001 From: Ivan Trubach Date: Sun, 23 Feb 2025 20:46:28 +0300 Subject: [PATCH 07/11] pulumiPackages.pulumi-language-go: clean up --- .../admin/pulumi-packages/pulumi-language-go.nix | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/pkgs/tools/admin/pulumi-packages/pulumi-language-go.nix b/pkgs/tools/admin/pulumi-packages/pulumi-language-go.nix index b952cd4d0571f..93109a69d0b8c 100644 --- a/pkgs/tools/admin/pulumi-packages/pulumi-language-go.nix +++ b/pkgs/tools/admin/pulumi-packages/pulumi-language-go.nix @@ -14,11 +14,19 @@ buildGoModule rec { ldflags = [ "-s" "-w" - "-X github.com/pulumi/pulumi/sdk/v3/go/common/version.Version=${version}" + "-X=github.com/pulumi/pulumi/sdk/v3/go/common/version.Version=${version}" ]; - # go: inconsistent vendoring in ... - doCheck = false; + checkFlags = [ + "-skip=^${ + lib.concatStringsSep "$|^" [ + "TestLanguage" + "TestPluginsAndDependencies_vendored" + "TestPluginsAndDependencies_subdir" + "TestPluginsAndDependencies_moduleMode" + ] + }$" + ]; meta = { homepage = "https://www.pulumi.com/docs/iac/languages-sdks/go/"; From feaffd719946277aef433293b762e3bbec915213 Mon Sep 17 00:00:00 2001 From: Ivan Trubach Date: Sun, 23 Feb 2025 20:48:15 +0300 Subject: [PATCH 08/11] pulumiPackages.pulumi-language-nodejs: clean up --- .../pulumi-language-nodejs.nix | 32 +++++++++++++------ 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/pkgs/tools/admin/pulumi-packages/pulumi-language-nodejs.nix b/pkgs/tools/admin/pulumi-packages/pulumi-language-nodejs.nix index 5e7d27beab78d..3a4c129c13a17 100644 --- a/pkgs/tools/admin/pulumi-packages/pulumi-language-nodejs.nix +++ b/pkgs/tools/admin/pulumi-packages/pulumi-language-nodejs.nix @@ -2,34 +2,46 @@ lib, buildGoModule, pulumi, + bash, nodejs, }: buildGoModule rec { - inherit (pulumi) version src; - pname = "pulumi-language-nodejs"; + inherit (pulumi) version src; sourceRoot = "${src.name}/sdk/nodejs/cmd/pulumi-language-nodejs"; vendorHash = "sha256-L91qIud8dWx7dWWEcknKUSTJe+f4OBL8wBg6dKUWgkQ="; - postPatch = '' - # Gives github.com/pulumi/pulumi/pkg/v3: is replaced in go.mod, but not marked as replaced in vendor/modules.txt etc - substituteInPlace language_test.go \ - --replace "TestLanguage" \ - "SkipTestLanguage" - ''; - ldflags = [ "-s" "-w" - "-X github.com/pulumi/pulumi/sdk/v3/go/common/version.Version=${version}" + "-X=github.com/pulumi/pulumi/sdk/v3/go/common/version.Version=${version}" + ]; + + checkFlags = [ + "-skip=^${ + lib.concatStringsSep "$|^" [ + "TestLanguage" + ] + }$" ]; nativeCheckInputs = [ nodejs ]; + # For patchShebangsAuto (see scripts copied in postInstall). + buildInputs = [ + bash + ]; + + postInstall = '' + cp -t "$out/bin" \ + ../../dist/pulumi-resource-pulumi-nodejs \ + ../../dist/pulumi-analyzer-policy + ''; + meta = { homepage = "https://www.pulumi.com/docs/iac/languages-sdks/javascript/"; description = "Language host for Pulumi programs written in TypeScript & JavaScript (Node.js)"; From e263a52767d316859cc45c9aedd9337758593eb0 Mon Sep 17 00:00:00 2001 From: Ivan Trubach Date: Sun, 23 Feb 2025 20:52:22 +0300 Subject: [PATCH 09/11] pulumiPackages.pulumi-language-python: clean up --- .../pulumi-language-python.nix | 33 ++++++++++++------- 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/pkgs/tools/admin/pulumi-packages/pulumi-language-python.nix b/pkgs/tools/admin/pulumi-packages/pulumi-language-python.nix index 3f38abaa32add..c38daccd2c48e 100644 --- a/pkgs/tools/admin/pulumi-packages/pulumi-language-python.nix +++ b/pkgs/tools/admin/pulumi-packages/pulumi-language-python.nix @@ -2,37 +2,46 @@ lib, buildGoModule, pulumi, + bash, python3, }: buildGoModule rec { - inherit (pulumi) version src; - pname = "pulumi-language-python"; + inherit (pulumi) version src; sourceRoot = "${src.name}/sdk/python/cmd/pulumi-language-python"; vendorHash = "sha256-Q8nnYJJN5+W2luY8JQJj1X9KIk9ad511FBywr+0wBNg="; - postPatch = '' - substituteInPlace main_test.go \ - --replace "TestDeterminePulumiPackages" \ - "SkipTestDeterminePulumiPackages" - ''; - ldflags = [ "-s" "-w" - "-X github.com/pulumi/pulumi/sdk/v3/go/common/version.Version=${version}" + "-X=github.com/pulumi/pulumi/sdk/v3/go/common/version.Version=${version}" + ]; + + checkFlags = [ + "-skip=^${ + lib.concatStringsSep "$|^" [ + "TestDeterminePulumiPackages" + ] + }$" ]; nativeCheckInputs = [ python3 ]; + # For patchShebangsAuto (see scripts copied in postInstall). + buildInputs = [ + bash + python3 + ]; + postInstall = '' - cp ../pulumi-language-python-exec $out/bin - cp ../../dist/pulumi-resource-pulumi-python $out/bin - cp ../../dist/pulumi-analyzer-policy-python $out/bin + cp -t "$out/bin" \ + ../pulumi-language-python-exec \ + ../../dist/pulumi-resource-pulumi-python \ + ../../dist/pulumi-analyzer-policy-python ''; meta = { From 421c26da8cdf5c9d6135e88d7fd8105b9a30b1c8 Mon Sep 17 00:00:00 2001 From: Ivan Trubach Date: Wed, 19 Feb 2025 17:28:35 +0300 Subject: [PATCH 10/11] pulumi: 3.122.0 -> 3.152.0 --- pkgs/by-name/pu/pulumi/package.nix | 161 ++++++++---------- .../python-modules/pulumi/default.nix | 107 +++++++----- .../pulumi-packages/pulumi-language-go.nix | 2 +- .../pulumi-language-nodejs.nix | 5 +- .../pulumi-language-python.nix | 3 +- pkgs/top-level/python-packages.nix | 2 +- 6 files changed, 147 insertions(+), 133 deletions(-) diff --git a/pkgs/by-name/pu/pulumi/package.nix b/pkgs/by-name/pu/pulumi/package.nix index 18ed550fca938..ace63027c10ef 100644 --- a/pkgs/by-name/pu/pulumi/package.nix +++ b/pkgs/by-name/pu/pulumi/package.nix @@ -1,128 +1,106 @@ { lib, stdenv, - buildGo122Module, - coreutils, + buildGoModule, fetchFromGitHub, - fetchpatch, installShellFiles, git, # passthru runCommand, makeWrapper, + testers, pulumi, pulumiPackages, }: - -# Using go 1.22 as pulumi 3.122.0 will not build with 1.23. -# Issue: https://github.com/NixOS/nixpkgs/issues/351955 -# Upgrading pulumi version should fix it, but requires more involved changes, so -# this is a temporary workaround. -# Upgrade: https://github.com/NixOS/nixpkgs/pull/352221 -buildGo122Module rec { +buildGoModule rec { pname = "pulumi"; - version = "3.122.0"; + version = "3.152.0"; src = fetchFromGitHub { - owner = pname; - repo = pname; - rev = "v${version}"; - hash = "sha256-5KHptoQliqPtJ6J5u23ZgRZOdO77BJhZbdc3Cty9Myk="; + owner = "pulumi"; + repo = "pulumi"; + tag = "v${version}"; + hash = "sha256-/cRWj7y6d5sNQRUXg9l7eDAOkUqNGXTzgpWDQdPP8zw="; # Some tests rely on checkout directory name name = "pulumi"; }; - vendorHash = "sha256-1UyYbmNNHlAeaW6M6AkaQ5Hs25ziHenSs4QjlnUQGjs="; - - patches = [ - # Fix a test failure, can be dropped in next release (3.100.0) - (fetchpatch { - url = "https://github.com/pulumi/pulumi/commit/6dba7192d134d3b6f7e26dee9205711ccc736fa7.patch"; - hash = "sha256-QRN6XnIR2rrqJ4UFYNt/YmIlokTSkGUvnBO/Q9UN8X8="; - stripLen = 1; - }) - ]; + vendorHash = "sha256-JhIyivD+YpUUr9T8roNpINb3Tx8ZElHa+BrpJkyFx60="; sourceRoot = "${src.name}/pkg"; nativeBuildInputs = [ installShellFiles ]; - # Bundle release metadata + nativeCheckInputs = [ git ]; + + # https://github.com/pulumi/pulumi/blob/3ec1aa75d5bf7103b283f46297321a9a4b1a8a33/.goreleaser.yml#L20-L26 + tags = [ "osusergo" ]; ldflags = [ - # Omit the symbol table and debug information. "-s" - # Omit the DWARF symbol table. "-w" - ] ++ importpathFlags; - - importpathFlags = [ - "-X github.com/pulumi/pulumi/pkg/v3/version.Version=v${version}" + "-X=github.com/pulumi/pulumi/sdk/v3/go/common/version.Version=v${version}" ]; - nativeCheckInputs = [ - git + excludedPackages = [ + "util/generate" + "codegen/gen_program_test" ]; - preCheck = - '' - # The tests require `version.Version` to be unset - ldflags=''${ldflags//"$importpathFlags"/} - - # Create some placeholders for plugins used in tests. Otherwise, Pulumi - # tries to donwload them and fails, resulting in really long test runs - dummyPluginPath=$(mktemp -d) - for name in pulumi-{resource-pkg{A,B},-pkgB}; do - ln -s ${coreutils}/bin/true "$dummyPluginPath/$name" - done - - export PATH=$dummyPluginPath''${PATH:+:}$PATH - - # Code generation tests also download dependencies from network - rm codegen/{docs,dotnet,go,nodejs,python,schema}/*_test.go - rm -R codegen/{dotnet,go,nodejs,python}/gen_program_test - - '' - + lib.optionalString stdenv.hostPlatform.isDarwin '' - export PULUMI_HOME=$(mktemp -d) - ''; - - checkFlags = - let - disabledTests = [ - # Flaky test - "TestPendingDeleteOrder" + # Required for user.Current implementation with osusergo on Darwin. + preCheck = '' + export HOME=$TMPDIR USER=nixbld + ''; + + checkFlags = [ + # The tests require `version.Version` (i.e. ldflags) to be unset. + "-ldflags=" + # Skip tests that fail in Nix sandbox. + "-skip=^${ + lib.concatStringsSep "$|^" [ + # Seems to require TTY. + "TestProgressEvents" + + # Tries to clone repo: https://github.com/pulumi/test-repo.git + "TestValidateRelativeDirectory" + "TestRepoLookup" + "TestDSConfigureGit" + # Tries to clone repo: github.com/pulumi/templates.git "TestGenerateOnlyProjectCheck" - # Following tests give this error, not quite sure why: - # Error Trace: /build/pulumi/pkg/engine/lifecycletest/update_plan_test.go:273 - # Error: Received unexpected error: - # Unexpected diag message: <{%reset%}>using pulumi-resource-pkgA from $PATH at /build/tmp.bS8caxmTx7/pulumi-resource-pkgA<{%reset%}> - # Test: TestUnplannedDelete - "TestExpectedDelete" - "TestPlannedInputOutputDifferences" - "TestPlannedUpdateChangedStack" - "TestExpectedCreate" - "TestUnplannedDelete" - # Following test gives this error, not sure why: - # --- Expected - # +++ Actual - # @@ -1 +1 @@ - # -gcp - # +aws - "TestPluginMapper_MappedNamesDifferFromPulumiName" - "TestProtect" - ]; - in - [ "-skip=^${lib.concatStringsSep "$|^" disabledTests}$" ]; + "TestPulumiNewSetsTemplateTag" + "TestPulumiPromptRuntimeOptions" + + # Connects to https://pulumi-testing.vault.azure.net/… + "TestAzureCloudManager" + "TestAzureKeyEditProjectStack" + "TestAzureKeyVaultAutoFix15329" + "TestAzureKeyVaultExistingKey" + "TestAzureKeyVaultExistingKeyState" + "TestAzureKeyVaultExistingState" + + # Requires pulumi-yaml + "TestProjectNameDefaults" + "TestProjectNameOverrides" + + # Downloads pulumi-resource-random from Pulumi plugin registry. + "TestPluginInstallCancellation" + + # Requires language-specific tooling and/or Internet access. + "TestGenerateProgram" + "TestGenerateProgramVersionSelection" + "TestGeneratePackage" + "TestGeneratePackageOne" + "TestGeneratePackageThree" + "TestGeneratePackageTwo" + "TestParseAndRenderDocs" + "TestImportResourceRef" + ] + }$" + ]; # Allow tests that bind or connect to localhost on macOS. __darwinAllowLocalNetworking = true; - doInstallCheck = true; - installCheckPhase = '' - PULUMI_SKIP_UPDATE_CHECK=1 $out/bin/pulumi version | grep v${version} > /dev/null - ''; - postInstall = '' installShellCompletion --cmd pulumi \ --bash <($out/bin/pulumi gen-completion bash) \ @@ -144,6 +122,13 @@ buildGo122Module rec { --suffix PATH : ${lib.makeBinPath (f pulumiPackages)} \ --set LD_LIBRARY_PATH "${lib.getLib stdenv.cc.cc}/lib" ''; + tests = { + version = testers.testVersion { + package = pulumi; + version = "v${version}"; + command = "PULUMI_SKIP_UPDATE_CHECK=1 pulumi version"; + }; + }; }; meta = { diff --git a/pkgs/development/python-modules/pulumi/default.nix b/pkgs/development/python-modules/pulumi/default.nix index 1f835c0f9325b..89ae0e6193d41 100644 --- a/pkgs/development/python-modules/pulumi/default.nix +++ b/pkgs/development/python-modules/pulumi/default.nix @@ -1,71 +1,96 @@ { lib, + pkgs, + pulumiPackages, buildPythonPackage, + pythonOlder, + hatchling, protobuf, - dill, grpcio, - pulumi, - isPy27, + dill, + six, semver, - pip, - pytestCheckHook, pyyaml, - six, + debugpy, + pip, + pytest, + pytest-asyncio, + pytest-timeout, + python, }: -buildPythonPackage rec { - inherit (pulumi) version src; +let + inherit (pkgs.pulumi) pname version src; + inherit (pulumiPackages) pulumi-language-python; + sourceRoot = "${src.name}/sdk/python"; +in +buildPythonPackage { + inherit + pname + version + src + sourceRoot + ; - pname = "pulumi"; - format = "setuptools"; + outputs = [ + "out" + "dev" + ]; - disabled = isPy27; + pyproject = true; - propagatedBuildInputs = [ - semver + disabled = pythonOlder "3.9"; + + build-system = [ hatchling ]; + + dependencies = [ protobuf - dill grpcio - pyyaml + dill six - ]; - - nativeCheckInputs = [ + semver + pyyaml + debugpy pip - pulumi.pkgs.pulumi-language-python - pytestCheckHook ]; - pytestFlagsArray = [ "test/" ]; + pythonRelaxDeps = [ + "grpcio" + "pip" + "semver" + ]; - sourceRoot = "${src.name}/sdk/python/lib"; + nativeCheckInputs = [ + pytest + pytest-asyncio + pytest-timeout + pulumi-language-python + ]; - # we apply the modifications done in the pulumi/sdk/python/Makefile - # but without the venv code - postPatch = '' - cp ../../README.md . - substituteInPlace setup.py \ - --replace "3.0.0" "${version}" \ - --replace "grpcio==1.56.2" "grpcio" \ - --replace "semver~=2.13" "semver" + # https://github.com/pulumi/pulumi/blob/0acaf8060640fdd892abccf1ce7435cd6aae69fe/sdk/python/scripts/test_fast.sh#L10-L11 + # https://github.com/pulumi/pulumi/blob/0acaf8060640fdd892abccf1ce7435cd6aae69fe/sdk/python/scripts/test_fast.sh#L16 + installCheckPhase = '' + runHook preInstallCheck + ${python.executable} -m pytest --ignore=lib/test/automation lib/test + pushd lib/test_with_mocks + ${python.executable} -m pytest + popd + runHook postInstallCheck ''; # Allow local networking in tests on Darwin __darwinAllowLocalNetworking = true; - # Verify that the version substitution works - preCheck = '' - pip show "${pname}" | grep "Version: ${version}" > /dev/null \ - || (echo "ERROR: Version substitution seems to be broken"; exit 1) - ''; - pythonImportsCheck = [ "pulumi" ]; - meta = with lib; { + meta = { description = "Modern Infrastructure as Code. Any cloud, any language"; - homepage = "https://github.com/pulumi/pulumi"; - license = licenses.asl20; - maintainers = with maintainers; [ teto ]; + homepage = "https://www.pulumi.com"; + license = lib.licenses.asl20; # https://github.com/pulumi/pulumi/issues/16828 - broken = versionAtLeast protobuf.version "5"; + broken = lib.versionAtLeast protobuf.version "5"; + maintainers = with lib.maintainers; [ + teto + tie + ]; }; } diff --git a/pkgs/tools/admin/pulumi-packages/pulumi-language-go.nix b/pkgs/tools/admin/pulumi-packages/pulumi-language-go.nix index 93109a69d0b8c..f6f5ab016efd2 100644 --- a/pkgs/tools/admin/pulumi-packages/pulumi-language-go.nix +++ b/pkgs/tools/admin/pulumi-packages/pulumi-language-go.nix @@ -9,7 +9,7 @@ buildGoModule rec { sourceRoot = "${src.name}/sdk/go/pulumi-language-go"; - vendorHash = "sha256-eHsTEb4Vff2bfADScLSkZiotSSnT1q0bexlUMaWgqbg="; + vendorHash = "sha256-mhwmHxZ+I/IdNGpEzXYJWPDKt7Gnun3HuXsjmFme6GI="; ldflags = [ "-s" diff --git a/pkgs/tools/admin/pulumi-packages/pulumi-language-nodejs.nix b/pkgs/tools/admin/pulumi-packages/pulumi-language-nodejs.nix index 3a4c129c13a17..8819fb107afdc 100644 --- a/pkgs/tools/admin/pulumi-packages/pulumi-language-nodejs.nix +++ b/pkgs/tools/admin/pulumi-packages/pulumi-language-nodejs.nix @@ -4,6 +4,7 @@ pulumi, bash, nodejs, + python3, }: buildGoModule rec { pname = "pulumi-language-nodejs"; @@ -11,7 +12,7 @@ buildGoModule rec { sourceRoot = "${src.name}/sdk/nodejs/cmd/pulumi-language-nodejs"; - vendorHash = "sha256-L91qIud8dWx7dWWEcknKUSTJe+f4OBL8wBg6dKUWgkQ="; + vendorHash = "sha256-vmFoMxWK5sj3vsBVFAji0Pz2wtf1H3MJhbrkHshDOno="; ldflags = [ "-s" @@ -23,11 +24,13 @@ buildGoModule rec { "-skip=^${ lib.concatStringsSep "$|^" [ "TestLanguage" + "TestGetProgramDependencies" ] }$" ]; nativeCheckInputs = [ + python3 # for TestNonblockingStdout nodejs ]; diff --git a/pkgs/tools/admin/pulumi-packages/pulumi-language-python.nix b/pkgs/tools/admin/pulumi-packages/pulumi-language-python.nix index c38daccd2c48e..687d9df8bf64b 100644 --- a/pkgs/tools/admin/pulumi-packages/pulumi-language-python.nix +++ b/pkgs/tools/admin/pulumi-packages/pulumi-language-python.nix @@ -11,7 +11,7 @@ buildGoModule rec { sourceRoot = "${src.name}/sdk/python/cmd/pulumi-language-python"; - vendorHash = "sha256-Q8nnYJJN5+W2luY8JQJj1X9KIk9ad511FBywr+0wBNg="; + vendorHash = "sha256-2K3EIG0xRcRRJES9h72Sk9V442T6dHZbYxz1uxxEKWI="; ldflags = [ "-s" @@ -22,6 +22,7 @@ buildGoModule rec { checkFlags = [ "-skip=^${ lib.concatStringsSep "$|^" [ + "TestLanguage" "TestDeterminePulumiPackages" ] }$" diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 618d4192a534c..0a26ba4a8ed14 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -1460,7 +1460,7 @@ self: super: with self; { pueblo = callPackage ../development/python-modules/pueblo { }; - pulumi = callPackage ../development/python-modules/pulumi { inherit (pkgs) pulumi; }; + pulumi = callPackage ../development/python-modules/pulumi { }; pulumi-aws = callPackage ../development/python-modules/pulumi-aws { }; From 6c1f4eab6450572476adc07164336164e38cbfba Mon Sep 17 00:00:00 2001 From: Ivan Trubach Date: Wed, 19 Feb 2025 17:50:52 +0300 Subject: [PATCH 11/11] pulumi: fix cross-compilation --- pkgs/by-name/pu/pulumi/package.nix | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/pu/pulumi/package.nix b/pkgs/by-name/pu/pulumi/package.nix index ace63027c10ef..561ec997b7f62 100644 --- a/pkgs/by-name/pu/pulumi/package.nix +++ b/pkgs/by-name/pu/pulumi/package.nix @@ -5,6 +5,7 @@ fetchFromGitHub, installShellFiles, git, + buildPackages, # passthru runCommand, makeWrapper, @@ -101,11 +102,18 @@ buildGoModule rec { # Allow tests that bind or connect to localhost on macOS. __darwinAllowLocalNetworking = true; + # Use pulumi from the previous stage if we can’t execute compiled binary. + pulumiExe = + if stdenv.buildPlatform.canExecute stdenv.hostPlatform then + "${placeholder "out"}/bin/pulumi" + else + "${buildPackages.pulumi}/bin/pulumi"; + postInstall = '' - installShellCompletion --cmd pulumi \ - --bash <($out/bin/pulumi gen-completion bash) \ - --fish <($out/bin/pulumi gen-completion fish) \ - --zsh <($out/bin/pulumi gen-completion zsh) + for shell in bash fish zsh; do + "$pulumiExe" gen-completion $shell >pulumi.$shell + installShellCompletion pulumi.$shell + done ''; passthru = {