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",