pulumi/sdk/nodejs
Paul Stack 1d3c9edb6c
Ensure that make brew works as expected rather than passing empty version (#6566)
Fixes:#6565

As part of #6460, the logic for determing the version of the build was
moved to be a dependency on pulumictl.

Unfortunately, the homebrew installs use the "make dist" command to
build + install Pulumi to the user maching and as that would have a
dependency on pulumictl and it not existing on the user machine, it
would pass an empty version to the ldflag

This then manifested to the user as:

```
▶ pulumi version
warning: A new version of Pulumi is available. To upgrade from version '0.0.0' to '2.22.0', run
   $ brew upgrade pulumi
or visit https://pulumi.com/docs/reference/install/ for manual instructions and release notes.
```

We are able to mitigate this behaviour by bringing back the get-version
script and using that script as part of the make brew installation

We can see that the versions are the same between the 2 different
installation techniques

```
make dist <------- uses pulumict
DIST:
go install -ldflags "-X github.com/pulumi/pulumi/sdk/v2/go/common/version.Version=2.24.0-alpha.1616029310+787eb70a" github.com/pulumi/pulumi/sdk/v2/dotnet/cmd/pulumi-language-dotnet
DIST:
BUILD:
```

```
make brew <----- uses the legacy script
▶ make brew
BREW:
go install -ldflags "-X github.com/pulumi/pulumi/sdk/v2/go/common/version.Version=v2.24.0-alpha.1616029310+g787eb70a2" github.com/pulumi/pulumi/sdk/v2/dotnet/cmd/pulumi-language-dotnet
BREW:
```

A full post mortem will be carried out to ensure we mitigate these
types of errors going forward and that we are able to better test
these types of situations
2021-03-18 02:07:02 +00:00
..
asset Mark internal APIs `@internal` to filter from API docs (#3809) 2020-01-26 09:06:35 -08:00
cmd Implement GetRequiredPlugins for Python (#5787) 2020-12-03 19:22:16 -08:00
dist Fix typo in PP script 2019-08-06 17:35:52 -07:00
dynamic Fixed 'transacational' misspelling. 2020-01-13 10:45:07 -08:00
iterable Break out Resource and Output into their own files (#2420) 2019-01-31 18:08:17 -08:00
log support inline programs for nodejs automation api 2020-10-08 12:19:01 -07:00
npm switch uuid packages (#5608) 2020-11-04 03:13:04 +00:00
proto Add support for serialized resource references. (#5041) 2020-10-27 10:12:12 -07:00
provider [sdk/nodejs] Use `log.error` to log uncaught errors (#5910) 2020-12-10 08:53:25 -08:00
queryable Use TypeScript's built-in `Omit` (#3597) 2019-12-02 22:50:18 +00:00
runtime serialize default parameters (#6397) 2021-02-25 21:21:10 -08:00
tests [automation/nodejs] - Expose structured logging (#6454) 2021-03-11 11:45:28 -08:00
tests_with_mocks [sdk/nodejs] Implement getResource in the mock monitor (#5914) 2020-12-10 09:30:34 -08:00
x [automation/dotnet,nodejs,python] Specify exec-kind for refresh & destroy (#6530) 2021-03-16 14:24:32 -07:00
.gitignore Add a SxS test for `@pulumi/pulumi` to help catch when we make breaking changes to core types. (#2610) 2019-03-29 12:27:42 -07:00
Makefile Ensure that make brew works as expected rather than passing empty version (#6566) 2021-03-18 02:07:02 +00:00
README.md Update references to pulumi.io (#2979) 2019-07-25 09:58:12 -07:00
config.ts Mark internal APIs `@internal` to filter from API docs (#3809) 2020-01-26 09:06:35 -08:00
errors.ts support inline programs for nodejs automation api 2020-10-08 12:19:01 -07:00
index.ts support inline programs for nodejs automation api 2020-10-08 12:19:01 -07:00
invoke.ts Breaking changes due to Feature 2.0 work 2020-04-14 09:30:25 +01:00
metadata.ts Enable unit testing for Pulumi programs (#2638) 2019-04-16 22:20:01 -07:00
output.ts Add the ability to pulumi.unsecret an existing output (#6086) 2021-01-14 20:36:52 +00:00
package.json [automation/nodejs] - Expose structured logging (#6454) 2021-03-11 11:45:28 -08:00
resource.ts Add support for getResource to Node.js SDK (#5837) 2020-12-01 10:58:15 -08:00
stackReference.ts Breaking changes due to Feature 2.0 work 2020-04-14 09:30:25 +01:00
tsconfig.json Always read and write nodejs runtime options from/to the environment (#6076) 2021-01-26 14:59:32 -08:00
tslint.json Fix issue with comments throwing off function/class serialization (#2438) 2019-02-08 14:58:24 -08:00
utils.ts Enable resource reference feature by default (#5905) 2020-12-10 11:21:05 -07:00
version.ts Add license headers 2018-05-22 15:02:47 -07:00

README.md

Pulumi Node.js SDK

The Pulumi Node.js SDK lets you write cloud programs in JavaScript.

Installation

Using npm:

$ npm install --save @pulumi/pulumi

Using yarn:

$ yarn add @pulumi/pulumi

This SDK is meant for use with the Pulumi CLI. Please visit pulumi.com for installation instructions.

Building and Testing

For anybody who wants to build from source, here is how you do it.

Prerequisites

This SDK uses Node.js and we support the Active LTS and Current releases, as defined by this table. We support both NPM and Yarn for package management.

At the moment, we only support building on macOS and Linux, where standard GNU tools like make are available.

Make Targets

The first time you build, run make ensure to install and prepare native plugins for V8:

$ make ensure

This is only necessary if you intend to produce a build that is capable of running older versions of the SDK contained in this directory. If you do intend to do this, you must have node 6.10.2 installed.

To build the SDK, simply run make from the root directory (where this README lives, at sdk/nodejs/ from the repo's root). This will build the code, run tests, and install the package and its supporting artifacts.

At the moment, for local development, we install everything into /opt/pulumi. You will want this on your $PATH.

The tests will verify that everything works, but feel free to try running pulumi preview and/or pulumi up from the examples/minimal/ directory. Remember to run tsc first, since pulumi expects JavaScript, not TypeScript.