Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

doc: clarify node compatibility issues and messages during raspberry … #1855

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 30 additions & 0 deletions docs/src/installation/nodecompatibility.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# Node compatability

Signal K server currently supports Node version 18 or greater.


# Node library incompatablities

When you install Signal K server, you may notice these messages being shown as part of the install. These are known issues.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The problem with this wording is that the list of known issues will for sure change over time and nobody will sync this list with the latest deprecation warnings.

The issue you are addressing is real and people regularly ask about it. I think a better solution would be to add a note in the installation instructions that Install process outputs some WARN messages that you can usually ignore. A separate document will probably not be noticed by most users.

```
npm WARN deprecated [email protected]: Rimraf versions prior to v4 are no longer supported
npm WARN deprecated [email protected]: This package is no longer supported.
npm WARN deprecated [email protected]: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
npm WARN deprecated [email protected]: Glob versions prior to v9 are no longer supported
```


# Compatability messages displayed

When running 'signalk-server --sample-nmea0183-data' or in journalctl or system messages, you may see a message similar to the following. You can ignore this message if your version of Node is greater than or equal 18. Signal K server does support Node greater than version 20
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The log message was written as it stands on purpose: we have a range of versions that are known to work and as such are recommended versions. Previously we have had issues with people running the very latest node version and running into issues. While we may be able to say today that greater than version 20 is ok this may change tomorrow when a new version Node comes out.

It does not really make sense to output a log message saying one thing and then have some separate, unlinked documentation explaining that you can ignore the log message.

We are starting to work on upgraging the recommended Node versions, so I think we can address this issue then: update the log message with the known good version range and not refer to upgrade instructions if you are running a newer node version.


```
The installed version of node (v23.5.0) is different than the recommended version (18 - 20). See https://github.com/SignalK/signalk-server/wiki/Installing-and-Updating-Node.js for more information how to upgrade
```



You may also get this message which is a known issue
```
(node:3545) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a side effect of using a Node version newer than the recommended range. I would rather fix the issue, that we should do anyway sooner or later, and extend our recommended version range than add documentation that will get outdated on what exact warnings are safe to ignore.

```
13 changes: 10 additions & 3 deletions docs/src/installation/raspberry_pi_installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,9 @@ Once the OS installation has been completed, you are ready to commence.
sudo apt update
```

1. Install NodeJS 18 and npm.

Follow [instructions for Ubuntu and Debian based distributions like Raspberry Pi OS at NodeSource Distributions](https://github.com/nodesource/distributions#installation-instructions).
1. Install NodeJS ([Node version compatibility](./nodecompatibility.md)) and npm.
Follow [instructions for Ubuntu and Debian based distributions like Raspberry Pi OS at NodeSource Distributions](https://github.com/nodesource/distributions#installation-instructions).

1. Ensure that we're using the latest version of npm.
```
Expand Down Expand Up @@ -72,6 +72,13 @@ Using sample data from /usr/lib/node_modules/signalk-server/samples/plaka.log
signalk-server running at 0.0.0.0:3000
```

##### NB: You may see something like the following. This can be ignored if your Node version is > 20
```
The installed version of node (v23.5.0) is different than the recommended version (18 - 20). See https://github.com/SignalK/signalk-server/wiki/Installing-and-Updating-Node.js for more information how to upgrade
```



The Signal K Node Server is now reading and publishing sample NMEA0183 data from the specified file.

Using a Web browser enter the following URL: `http://127.0.0.1:3000/signalk` which should display the following information indicating the server is up and running.
Expand Down