From 8680a0523fc5a182da5258b4f353c89fe5c91663 Mon Sep 17 00:00:00 2001 From: Dominic Pelini <111786059+DomPeliniAerospike@users.noreply.github.com> Date: Fri, 16 Feb 2024 10:58:34 -0700 Subject: [PATCH] Added windows documentation --- README.md | 4 ++++ README_WINDOWS.md | 37 ++++++++++++++++++++++--------------- lib/lists.js | 4 ++-- package-lock.json | 28 ++++++++++++++-------------- package.json | 2 +- 5 files changed, 43 insertions(+), 32 deletions(-) diff --git a/README.md b/README.md index d104d596..bbadb18d 100644 --- a/README.md +++ b/README.md @@ -188,6 +188,10 @@ To install library prerequisites using `apt`: sudo apt install g++ libssl libssl-dev zlib1g-dev ``` +### Windows + +See our [Windows README.md](https://github.com/aerospike/aerospike-client-nodejs/blob/master/README_WINDOWS.md) for details on how to build and install on windows. + ### macOS Before starting with the Aerospike Nodejs Client, verify that you have the following prerequisites: diff --git a/README_WINDOWS.md b/README_WINDOWS.md index 0ed0d410..fdd12787 100644 --- a/README_WINDOWS.md +++ b/README_WINDOWS.md @@ -3,37 +3,44 @@ [appveyor-image]: https://ci.appveyor.com/api/projects/status/1pwlt87blqrmgyis/branch/master?svg=true [appveyor-url]: https://ci.appveyor.com/project/aerospike/aerospike-client-nodejs/ -The Aerospike Node.js client port to Windows is a community supported project -and suitable for application prototyping and development. - ## Prerequisites -* Windows 7 or later -* Node.js v10.x (LTS) or later +Visual Studio is used to manage the Aerospike Node.js Client on Windows. Many components can be installed using the Visual Studio installer. Neccessary components include: + +* C++ core features +* MSVC (v143 recommended) +* Windows SDK (11 recommended) -The package includes a native add-on. To compile the add-on, Microsoft's Visual -C++ Build Tools 2015 are required, which you can download from the -[Visual Studio website](https://visualstudio.microsoft.com/vs/older-downloads/). -The required components are: +Powershell 7 is required to build the project. DO NOT use Windows Powershell; it will cause your install to fail. -* Windows 8.1 SDK -* Visual C++ 2015 (v140) Toolset for Desktop +Python 3.11 or below is also required to build the project. -![Windows 8.1 SDK](./docs/assets/windows-8-1-sdk.png) -![VC++ 2015.3 v14.00 (v140) toolset for desktop](./docs/assets/vc-2015-3-v140.png) +When building the project, make sure the full path of the project directory does not have any spaces. C:\Users\Administrator\Documents\Visual Studio 2022\aerospike will fail to build. +The error given will be `error MSB1008: Only one project can be specified`. ## Aerospike C Client SDK The Aerospike Node.js client depends on the Aerospike C client. During installation, a copy of the C client SDK is downloaded and compiled. + Additionally, a set of pre-built, third-party libraries are downloaded and installed via the [`aerospike-client-c-dependencies`](https://www.nuget.org/packages/aerospike-client-c-dependencies) -nuget package. Please refer to the [Aerospike C client +nuget package. These dependencies are required to build the project on Windows. To download these dependencies, use `nuget restore aerospike.sln` inside the `aerospike-client-c/vs` folder, or simply restoring the package inside the solution view of visual studio. + +Please refer to the [Aerospike C client documentation](https://github.com/aerospike/aerospike-client-c/tree/master/vs) -for further information. +for further information on the visual studio build steps. + +## Builidng the C Client dependency + +If you are building on a local machine, you will need to build the C Cient dependency. This can be achieved by using the build script located at `scripts\build-package.ps1` + +## Install the Aerospike Node.js Client + +If you only wish to install the Client, the `aerospike` npm package supports windows installation using [nvm-windows](https://github.com/coreybutler/nvm-windows). ## Frequently Asked Questions diff --git a/lib/lists.js b/lib/lists.js index 92dc7205..ce18969e 100644 --- a/lib/lists.js +++ b/lib/lists.js @@ -1080,7 +1080,7 @@ exports.clear = function (bin) { } /** - * @summary Creates map create operation. + * @summary Creates list create operation. * * * @param {string} bin - bin name. @@ -1098,7 +1098,7 @@ exports.clear = function (bin) { * * const Aerospike = require('aerospike') * const lists = Aerospike.lists - * const key = new Aerospike.Key('test', 'demo', 'mapKey') + * const key = new Aerospike.Key('test', 'demo', 'listKey') * * // INSERT HOSTNAME AND PORT NUMBER OF AEROSPIKE SERVER NODE HERE! * var config = { diff --git a/package-lock.json b/package-lock.json index 85f9f556..b8285830 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "aerospike", - "version": "5.10.0", + "version": "5.11.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "aerospike", - "version": "5.10.0", + "version": "5.11.0", "cpu": [ "x64", "arm64" @@ -824,9 +824,9 @@ } }, "node_modules/@npmcli/agent/node_modules/https-proxy-agent": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.3.tgz", - "integrity": "sha512-kCnwztfX0KZJSLOBrcL0emLeFako55NWMovvyPP2AjsghNk9RB1yjSI+jVumPHYZsNXegNoqupSW9IY3afSH8w==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", + "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", "dependencies": { "agent-base": "^7.0.2", "debug": "4" @@ -871,9 +871,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.11.18", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.18.tgz", - "integrity": "sha512-ABT5VWnnYneSBcNWYSCuR05M826RoMyMSGiFivXGx6ZUIsXb9vn4643IEwkg2zbEOSgAiSogtapN2fgc4mAPlw==", + "version": "20.11.19", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.19.tgz", + "integrity": "sha512-7xMnVEcZFu0DikYjWOlRq7NTPETrm7teqUT2WkQjrTIkEgUyyGdWsj/Zg8bEJt5TNklzbPD1X3fqfsHw3SpapQ==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -1872,9 +1872,9 @@ "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" }, "node_modules/electron-to-chromium": { - "version": "1.4.670", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.670.tgz", - "integrity": "sha512-hcijYOWjOtjKrKPtNA6tuLlA/bTLO3heFG8pQA6mLpq7dRydSWicXova5lyxDzp1iVJaYhK7J2OQlGE52KYn7A==", + "version": "1.4.672", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.672.tgz", + "integrity": "sha512-YYCy+goe3UqZqa3MOQCI5Mx/6HdBLzXL/mkbGCEWL3sP3Z1BP9zqAzeD3YEmLZlespYGFtyM8tRp5i2vfaUGCA==", "dev": true }, "node_modules/emoji-regex": { @@ -3398,9 +3398,9 @@ "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" }, "node_modules/http-proxy-agent": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.1.tgz", - "integrity": "sha512-My1KCEPs6A0hb4qCVzYp8iEvA8j8YqcvXLZZH8C9OFuTYpYjHE7N2dtG3mRl1HMD4+VGXpF3XcDVcxGBT7yDZQ==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", "dependencies": { "agent-base": "^7.1.0", "debug": "^4.3.4" diff --git a/package.json b/package.json index 0b97ce23..7ec7667b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "aerospike", - "version": "5.10.0", + "version": "5.11.0", "description": "Aerospike Client Library", "keywords": [ "aerospike",