Răsfoiți Sursa

Merge pull request #12658 from overleaf/bg-node-18-upgrade

Upgrade to node 18

GitOrigin-RevId: 1b25d20a8987950a72a7bf966a825794de4ad960
Brian Gough 3 ani în urmă
părinte
comite
ed0acd8e58
71 a modificat fișierele cu 132 adăugiri și 120 ștergeri
  1. 1 1
      libraries/access-token-encryptor/.nvmrc
  2. 1 1
      libraries/access-token-encryptor/buildscript.txt
  3. 1 1
      libraries/logger/.nvmrc
  4. 1 1
      libraries/logger/buildscript.txt
  5. 1 1
      libraries/metrics/.nvmrc
  6. 1 1
      libraries/metrics/buildscript.txt
  7. 1 1
      libraries/o-error/.nvmrc
  8. 1 1
      libraries/o-error/buildscript.txt
  9. 1 1
      libraries/object-persistor/.nvmrc
  10. 1 1
      libraries/object-persistor/buildscript.txt
  11. 1 1
      libraries/overleaf-editor-core/.nvmrc
  12. 1 1
      libraries/overleaf-editor-core/buildscript.txt
  13. 1 1
      libraries/redis-wrapper/.nvmrc
  14. 1 1
      libraries/redis-wrapper/buildscript.txt
  15. 1 1
      libraries/settings/.nvmrc
  16. 1 1
      libraries/settings/buildscript.txt
  17. 17 21
      package-lock.json
  18. 1 1
      services/chat/.nvmrc
  19. 1 1
      services/chat/Dockerfile
  20. 1 1
      services/chat/buildscript.txt
  21. 2 2
      services/chat/docker-compose.yml
  22. 1 1
      services/clsi/.nvmrc
  23. 1 1
      services/clsi/Dockerfile
  24. 1 1
      services/clsi/buildscript.txt
  25. 1 1
      services/contacts/.nvmrc
  26. 1 1
      services/contacts/Dockerfile
  27. 1 1
      services/contacts/buildscript.txt
  28. 2 2
      services/contacts/docker-compose.yml
  29. 1 1
      services/docstore/.nvmrc
  30. 1 1
      services/docstore/Dockerfile
  31. 1 1
      services/docstore/buildscript.txt
  32. 2 2
      services/docstore/docker-compose.yml
  33. 1 1
      services/document-updater/.nvmrc
  34. 1 1
      services/document-updater/Dockerfile
  35. 1 1
      services/document-updater/buildscript.txt
  36. 2 2
      services/document-updater/docker-compose.yml
  37. 1 1
      services/filestore/.nvmrc
  38. 1 1
      services/filestore/Dockerfile
  39. 1 1
      services/filestore/buildscript.txt
  40. 16 13
      services/filestore/test/acceptance/js/FilestoreTests.js
  41. 1 1
      services/history-v1/.nvmrc
  42. 1 1
      services/history-v1/Dockerfile
  43. 1 1
      services/history-v1/buildscript.txt
  44. 2 2
      services/history-v1/docker-compose.yml
  45. 1 1
      services/notifications/.nvmrc
  46. 1 1
      services/notifications/Dockerfile
  47. 1 1
      services/notifications/buildscript.txt
  48. 2 2
      services/notifications/docker-compose.yml
  49. 1 1
      services/project-history/.nvmrc
  50. 1 1
      services/project-history/Dockerfile
  51. 1 1
      services/project-history/buildscript.txt
  52. 2 2
      services/project-history/docker-compose.yml
  53. 1 1
      services/real-time/.nvmrc
  54. 1 1
      services/real-time/Dockerfile
  55. 1 1
      services/real-time/buildscript.txt
  56. 2 2
      services/real-time/docker-compose.yml
  57. 1 1
      services/spelling/.nvmrc
  58. 1 1
      services/spelling/Dockerfile
  59. 1 1
      services/spelling/buildscript.txt
  60. 2 8
      services/spelling/install_deps.sh
  61. 20 1
      services/spelling/test/acceptance/js/CheckTest.js
  62. 1 1
      services/track-changes/.nvmrc
  63. 1 1
      services/track-changes/Dockerfile
  64. 1 1
      services/track-changes/buildscript.txt
  65. 2 2
      services/track-changes/docker-compose.yml
  66. 1 1
      services/web/.nvmrc
  67. 1 1
      services/web/Dockerfile
  68. 1 1
      services/web/Dockerfile.frontend
  69. 1 1
      services/web/docker-compose.common.env
  70. 2 2
      services/web/docker-compose.yml
  71. 1 1
      services/web/scripts/translations/Dockerfile

+ 1 - 1
libraries/access-token-encryptor/.nvmrc

@@ -1 +1 @@
-16.17.1
+18.16.0

+ 1 - 1
libraries/access-token-encryptor/buildscript.txt

@@ -4,6 +4,6 @@ access-token-encryptor
 --env-add=
 --env-pass-through=
 --is-library=True
---node-version=16.17.1
+--node-version=18.16.0
 --public-repo=False
 --script-version=4.1.0

+ 1 - 1
libraries/logger/.nvmrc

@@ -1 +1 @@
-16.17.1
+18.16.0

+ 1 - 1
libraries/logger/buildscript.txt

@@ -4,6 +4,6 @@ logger
 --env-add=
 --env-pass-through=
 --is-library=True
---node-version=16.17.1
+--node-version=18.16.0
 --public-repo=False
 --script-version=4.1.0

+ 1 - 1
libraries/metrics/.nvmrc

@@ -1 +1 @@
-16.17.1
+18.16.0

+ 1 - 1
libraries/metrics/buildscript.txt

@@ -4,6 +4,6 @@ metrics
 --env-add=
 --env-pass-through=
 --is-library=True
---node-version=16.17.1
+--node-version=18.16.0
 --public-repo=False
 --script-version=4.1.0

+ 1 - 1
libraries/o-error/.nvmrc

@@ -1 +1 @@
-16.17.1
+18.16.0

+ 1 - 1
libraries/o-error/buildscript.txt

@@ -4,6 +4,6 @@ o-error
 --env-add=
 --env-pass-through=
 --is-library=True
---node-version=16.17.1
+--node-version=18.16.0
 --public-repo=False
 --script-version=4.1.0

+ 1 - 1
libraries/object-persistor/.nvmrc

@@ -1 +1 @@
-16.17.1
+18.16.0

+ 1 - 1
libraries/object-persistor/buildscript.txt

@@ -4,6 +4,6 @@ object-persistor
 --env-add=
 --env-pass-through=
 --is-library=True
---node-version=16.17.1
+--node-version=18.16.0
 --public-repo=False
 --script-version=4.1.0

+ 1 - 1
libraries/overleaf-editor-core/.nvmrc

@@ -1 +1 @@
-16.17.1
+18.16.0

+ 1 - 1
libraries/overleaf-editor-core/buildscript.txt

@@ -4,6 +4,6 @@ overleaf-editor-core
 --env-add=
 --env-pass-through=
 --is-library=True
---node-version=16.17.1
+--node-version=18.16.0
 --public-repo=False
 --script-version=4.1.0

+ 1 - 1
libraries/redis-wrapper/.nvmrc

@@ -1 +1 @@
-16.17.1
+18.16.0

+ 1 - 1
libraries/redis-wrapper/buildscript.txt

@@ -4,6 +4,6 @@ redis-wrapper
 --env-add=
 --env-pass-through=
 --is-library=True
---node-version=16.17.1
+--node-version=18.16.0
 --public-repo=False
 --script-version=4.1.0

+ 1 - 1
libraries/settings/.nvmrc

@@ -1 +1 @@
-16.17.1
+18.16.0

+ 1 - 1
libraries/settings/buildscript.txt

@@ -4,6 +4,6 @@ settings
 --env-add=
 --env-pass-through=
 --is-library=True
---node-version=16.17.1
+--node-version=18.16.0
 --public-repo=False
 --script-version=4.1.0

+ 17 - 21
package-lock.json

@@ -15550,13 +15550,13 @@
       "dev": true
     },
     "node_modules/eslint-plugin-mocha": {
-      "version": "10.0.4",
-      "resolved": "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-10.0.4.tgz",
-      "integrity": "sha512-8wzAeepVY027oBHz/TmBmUr7vhVqoC1KTFeDybFLhbaWKx+aQ7fJJVuUsqcUy+L+G+XvgQBJY+cbAf7hl5DF7Q==",
+      "version": "10.1.0",
+      "resolved": "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-10.1.0.tgz",
+      "integrity": "sha512-xLqqWUF17llsogVOC+8C6/jvQ+4IoOREbN7ZCHuOHuD6cT5cDD4h7f2LgsZuzMAiwswWE21tO7ExaknHVDrSkw==",
       "dev": true,
       "dependencies": {
         "eslint-utils": "^3.0.0",
-        "ramda": "^0.28.0"
+        "rambda": "^7.1.0"
       },
       "engines": {
         "node": ">=14.0.0"
@@ -27042,15 +27042,11 @@
         "node": ">=4"
       }
     },
-    "node_modules/ramda": {
-      "version": "0.28.0",
-      "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.28.0.tgz",
-      "integrity": "sha512-9QnLuG/kPVgWvMQ4aODhsBUFKOUmnbUnsSXACv+NCQZcHbeb+v8Lodp8OVxtRULN1/xOyYLLaL6npE6dMq5QTA==",
-      "dev": true,
-      "funding": {
-        "type": "opencollective",
-        "url": "https://opencollective.com/ramda"
-      }
+    "node_modules/rambda": {
+      "version": "7.5.0",
+      "resolved": "https://registry.npmjs.org/rambda/-/rambda-7.5.0.tgz",
+      "integrity": "sha512-y/M9weqWAH4iopRd7EHDEQQvpFPHj1AA3oHozE9tfITHUtTR7Z9PSlIRRG2l1GuW7sefC1cXFfIcF+cgnShdBA==",
+      "dev": true
     },
     "node_modules/random-bytes": {
       "version": "1.0.0",
@@ -53039,13 +53035,13 @@
       }
     },
     "eslint-plugin-mocha": {
-      "version": "10.0.4",
-      "resolved": "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-10.0.4.tgz",
-      "integrity": "sha512-8wzAeepVY027oBHz/TmBmUr7vhVqoC1KTFeDybFLhbaWKx+aQ7fJJVuUsqcUy+L+G+XvgQBJY+cbAf7hl5DF7Q==",
+      "version": "10.1.0",
+      "resolved": "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-10.1.0.tgz",
+      "integrity": "sha512-xLqqWUF17llsogVOC+8C6/jvQ+4IoOREbN7ZCHuOHuD6cT5cDD4h7f2LgsZuzMAiwswWE21tO7ExaknHVDrSkw==",
       "dev": true,
       "requires": {
         "eslint-utils": "^3.0.0",
-        "ramda": "^0.28.0"
+        "rambda": "^7.1.0"
       },
       "dependencies": {
         "eslint-utils": {
@@ -62174,10 +62170,10 @@
       "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-1.1.0.tgz",
       "integrity": "sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g="
     },
-    "ramda": {
-      "version": "0.28.0",
-      "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.28.0.tgz",
-      "integrity": "sha512-9QnLuG/kPVgWvMQ4aODhsBUFKOUmnbUnsSXACv+NCQZcHbeb+v8Lodp8OVxtRULN1/xOyYLLaL6npE6dMq5QTA==",
+    "rambda": {
+      "version": "7.5.0",
+      "resolved": "https://registry.npmjs.org/rambda/-/rambda-7.5.0.tgz",
+      "integrity": "sha512-y/M9weqWAH4iopRd7EHDEQQvpFPHj1AA3oHozE9tfITHUtTR7Z9PSlIRRG2l1GuW7sefC1cXFfIcF+cgnShdBA==",
       "dev": true
     },
     "random-bytes": {

+ 1 - 1
services/chat/.nvmrc

@@ -1 +1 @@
-16.17.1
+18.16.0

+ 1 - 1
services/chat/Dockerfile

@@ -2,7 +2,7 @@
 # Instead run bin/update_build_scripts from
 # https://github.com/overleaf/internal/
 
-FROM node:16.17.1 as base
+FROM node:18.16.0 as base
 
 WORKDIR /overleaf/services/chat
 

+ 1 - 1
services/chat/buildscript.txt

@@ -3,6 +3,6 @@ chat
 --docker-repos=gcr.io/overleaf-ops
 --env-add=
 --env-pass-through=
---node-version=16.17.1
+--node-version=18.16.0
 --public-repo=False
 --script-version=4.1.0

+ 2 - 2
services/chat/docker-compose.yml

@@ -6,7 +6,7 @@ version: "2.3"
 
 services:
   test_unit:
-    image: node:16.17.1
+    image: node:18.16.0
     volumes:
       - .:/overleaf/services/chat
       - ../../node_modules:/overleaf/node_modules
@@ -20,7 +20,7 @@ services:
     user: node
 
   test_acceptance:
-    image: node:16.17.1
+    image: node:18.16.0
     volumes:
       - .:/overleaf/services/chat
       - ../../node_modules:/overleaf/node_modules

+ 1 - 1
services/clsi/.nvmrc

@@ -1 +1 @@
-16.17.1
+18.16.0

+ 1 - 1
services/clsi/Dockerfile

@@ -2,7 +2,7 @@
 # Instead run bin/update_build_scripts from
 # https://github.com/overleaf/internal/
 
-FROM node:16.17.1 as base
+FROM node:18.16.0 as base
 
 WORKDIR /overleaf/services/clsi
 COPY services/clsi/install_deps.sh /overleaf/services/clsi/

+ 1 - 1
services/clsi/buildscript.txt

@@ -5,6 +5,6 @@ clsi
 --env-add=ENABLE_PDF_CACHING="true",PDF_CACHING_ENABLE_WORKER_POOL="true"
 --env-pass-through=TEXLIVE_IMAGE
 --has-custom-cloudbuild=True
---node-version=16.17.1
+--node-version=18.16.0
 --public-repo=True
 --script-version=4.1.0

+ 1 - 1
services/contacts/.nvmrc

@@ -1 +1 @@
-16.17.1
+18.16.0

+ 1 - 1
services/contacts/Dockerfile

@@ -2,7 +2,7 @@
 # Instead run bin/update_build_scripts from
 # https://github.com/overleaf/internal/
 
-FROM node:16.17.1 as base
+FROM node:18.16.0 as base
 
 WORKDIR /overleaf/services/contacts
 

+ 1 - 1
services/contacts/buildscript.txt

@@ -3,6 +3,6 @@ contacts
 --docker-repos=gcr.io/overleaf-ops
 --env-add=
 --env-pass-through=
---node-version=16.17.1
+--node-version=18.16.0
 --public-repo=False
 --script-version=4.1.0

+ 2 - 2
services/contacts/docker-compose.yml

@@ -6,7 +6,7 @@ version: "2.3"
 
 services:
   test_unit:
-    image: node:16.17.1
+    image: node:18.16.0
     volumes:
       - .:/overleaf/services/contacts
       - ../../node_modules:/overleaf/node_modules
@@ -20,7 +20,7 @@ services:
     user: node
 
   test_acceptance:
-    image: node:16.17.1
+    image: node:18.16.0
     volumes:
       - .:/overleaf/services/contacts
       - ../../node_modules:/overleaf/node_modules

+ 1 - 1
services/docstore/.nvmrc

@@ -1 +1 @@
-16.17.1
+18.16.0

+ 1 - 1
services/docstore/Dockerfile

@@ -2,7 +2,7 @@
 # Instead run bin/update_build_scripts from
 # https://github.com/overleaf/internal/
 
-FROM node:16.17.1 as base
+FROM node:18.16.0 as base
 
 WORKDIR /overleaf/services/docstore
 

+ 1 - 1
services/docstore/buildscript.txt

@@ -3,6 +3,6 @@ docstore
 --docker-repos=gcr.io/overleaf-ops
 --env-add=
 --env-pass-through=
---node-version=16.17.1
+--node-version=18.16.0
 --public-repo=True
 --script-version=4.1.0

+ 2 - 2
services/docstore/docker-compose.yml

@@ -6,7 +6,7 @@ version: "2.3"
 
 services:
   test_unit:
-    image: node:16.17.1
+    image: node:18.16.0
     volumes:
       - .:/overleaf/services/docstore
       - ../../node_modules:/overleaf/node_modules
@@ -20,7 +20,7 @@ services:
     user: node
 
   test_acceptance:
-    image: node:16.17.1
+    image: node:18.16.0
     volumes:
       - .:/overleaf/services/docstore
       - ../../node_modules:/overleaf/node_modules

+ 1 - 1
services/document-updater/.nvmrc

@@ -1 +1 @@
-16.17.1
+18.16.0

+ 1 - 1
services/document-updater/Dockerfile

@@ -2,7 +2,7 @@
 # Instead run bin/update_build_scripts from
 # https://github.com/overleaf/internal/
 
-FROM node:16.17.1 as base
+FROM node:18.16.0 as base
 
 WORKDIR /overleaf/services/document-updater
 

+ 1 - 1
services/document-updater/buildscript.txt

@@ -3,6 +3,6 @@ document-updater
 --docker-repos=gcr.io/overleaf-ops
 --env-add=
 --env-pass-through=
---node-version=16.17.1
+--node-version=18.16.0
 --public-repo=True
 --script-version=4.1.0

+ 2 - 2
services/document-updater/docker-compose.yml

@@ -6,7 +6,7 @@ version: "2.3"
 
 services:
   test_unit:
-    image: node:16.17.1
+    image: node:18.16.0
     volumes:
       - .:/overleaf/services/document-updater
       - ../../node_modules:/overleaf/node_modules
@@ -20,7 +20,7 @@ services:
     user: node
 
   test_acceptance:
-    image: node:16.17.1
+    image: node:18.16.0
     volumes:
       - .:/overleaf/services/document-updater
       - ../../node_modules:/overleaf/node_modules

+ 1 - 1
services/filestore/.nvmrc

@@ -1 +1 @@
-16.17.1
+18.16.0

+ 1 - 1
services/filestore/Dockerfile

@@ -2,7 +2,7 @@
 # Instead run bin/update_build_scripts from
 # https://github.com/overleaf/internal/
 
-FROM node:16.17.1 as base
+FROM node:18.16.0 as base
 
 WORKDIR /overleaf/services/filestore
 COPY services/filestore/install_deps.sh /overleaf/services/filestore/

+ 1 - 1
services/filestore/buildscript.txt

@@ -4,6 +4,6 @@ filestore
 --docker-repos=gcr.io/overleaf-ops
 --env-add=ENABLE_CONVERSIONS="true",USE_PROM_METRICS="true",AWS_S3_USER_FILES_BUCKET_NAME=fake_user_files,AWS_S3_TEMPLATE_FILES_BUCKET_NAME=fake_template_files,AWS_S3_PUBLIC_FILES_BUCKET_NAME=fake_public_files,GCS_USER_FILES_BUCKET_NAME=fake_userfiles,GCS_TEMPLATE_FILES_BUCKET_NAME=fake_templatefiles,GCS_PUBLIC_FILES_BUCKET_NAME=fake_publicfiles
 --env-pass-through=
---node-version=16.17.1
+--node-version=18.16.0
 --public-repo=True
 --script-version=4.1.0

+ 16 - 13
services/filestore/test/acceptance/js/FilestoreTests.js

@@ -13,11 +13,9 @@ const streamifier = require('streamifier')
 chai.use(require('chai-as-promised'))
 const { ObjectId } = require('mongodb')
 const tk = require('timekeeper')
-const ChildProcess = require('child_process')
 
 const fsWriteFile = promisify(fs.writeFile)
 const fsStat = promisify(fs.stat)
-const exec = promisify(ChildProcess.exec)
 const msleep = promisify(setTimeout)
 
 if (!process.env.AWS_ACCESS_KEY_ID) {
@@ -42,19 +40,24 @@ describe('Filestore', function () {
   async function expectNoSockets() {
     try {
       await msleep(1000)
-      const { stdout } = await exec('ss -tnH')
-
+      const stdout = await fs.promises.readFile('/proc/net/tcp', 'utf8')
       const badSockets = []
-      for (const socket of stdout.split('\n')) {
-        const fields = socket.split(' ').filter(part => part !== '')
-        if (
-          fields.length > 2 &&
-          parseInt(fields[1]) &&
-          !seenSockets.includes(socket)
-        ) {
-          badSockets.push(socket)
-          seenSockets.push(socket)
+      const lines = stdout.split('\n').map(line => line.trim().split(/\s+/))
+      const header = lines.shift()
+      if (header[4] === 'tx_queue' && header[5] === 'rx_queue') {
+        for (const socket of lines) {
+          if (
+            socket.length > 5 &&
+            socket[4] !== '00000000:00000000' && // ensure the socket queues are empty
+            !seenSockets.includes(socket)
+          ) {
+            console.log('socket still has data', socket)
+            badSockets.push(socket)
+            seenSockets.push(socket)
+          }
         }
+      } else {
+        throw new Error('unexpected format in /proc/net/tcp')
       }
 
       if (badSockets.length) {

+ 1 - 1
services/history-v1/.nvmrc

@@ -1 +1 @@
-16.17.1
+18.16.0

+ 1 - 1
services/history-v1/Dockerfile

@@ -2,7 +2,7 @@
 # Instead run bin/update_build_scripts from
 # https://github.com/overleaf/internal/
 
-FROM node:16.17.1 as base
+FROM node:18.16.0 as base
 
 WORKDIR /overleaf/services/history-v1
 

+ 1 - 1
services/history-v1/buildscript.txt

@@ -3,6 +3,6 @@ history-v1
 --docker-repos=gcr.io/overleaf-ops
 --env-add=
 --env-pass-through=
---node-version=16.17.1
+--node-version=18.16.0
 --public-repo=False
 --script-version=4.1.0

+ 2 - 2
services/history-v1/docker-compose.yml

@@ -6,7 +6,7 @@ version: "2.3"
 
 services:
   test_unit:
-    image: node:16.17.1
+    image: node:18.16.0
     volumes:
       - .:/overleaf/services/history-v1
       - ../../node_modules:/overleaf/node_modules
@@ -20,7 +20,7 @@ services:
     user: node
 
   test_acceptance:
-    image: node:16.17.1
+    image: node:18.16.0
     volumes:
       - .:/overleaf/services/history-v1
       - ../../node_modules:/overleaf/node_modules

+ 1 - 1
services/notifications/.nvmrc

@@ -1 +1 @@
-16.17.1
+18.16.0

+ 1 - 1
services/notifications/Dockerfile

@@ -2,7 +2,7 @@
 # Instead run bin/update_build_scripts from
 # https://github.com/overleaf/internal/
 
-FROM node:16.17.1 as base
+FROM node:18.16.0 as base
 
 WORKDIR /overleaf/services/notifications
 

+ 1 - 1
services/notifications/buildscript.txt

@@ -3,6 +3,6 @@ notifications
 --docker-repos=gcr.io/overleaf-ops
 --env-add=
 --env-pass-through=
---node-version=16.17.1
+--node-version=18.16.0
 --public-repo=True
 --script-version=4.1.0

+ 2 - 2
services/notifications/docker-compose.yml

@@ -6,7 +6,7 @@ version: "2.3"
 
 services:
   test_unit:
-    image: node:16.17.1
+    image: node:18.16.0
     volumes:
       - .:/overleaf/services/notifications
       - ../../node_modules:/overleaf/node_modules
@@ -20,7 +20,7 @@ services:
     user: node
 
   test_acceptance:
-    image: node:16.17.1
+    image: node:18.16.0
     volumes:
       - .:/overleaf/services/notifications
       - ../../node_modules:/overleaf/node_modules

+ 1 - 1
services/project-history/.nvmrc

@@ -1 +1 @@
-16.17.1
+18.16.0

+ 1 - 1
services/project-history/Dockerfile

@@ -2,7 +2,7 @@
 # Instead run bin/update_build_scripts from
 # https://github.com/overleaf/internal/
 
-FROM node:16.17.1 as base
+FROM node:18.16.0 as base
 
 WORKDIR /overleaf/services/project-history
 

+ 1 - 1
services/project-history/buildscript.txt

@@ -3,6 +3,6 @@ project-history
 --docker-repos=gcr.io/overleaf-ops
 --env-add=
 --env-pass-through=
---node-version=16.17.1
+--node-version=18.16.0
 --public-repo=False
 --script-version=4.1.0

+ 2 - 2
services/project-history/docker-compose.yml

@@ -6,7 +6,7 @@ version: "2.3"
 
 services:
   test_unit:
-    image: node:16.17.1
+    image: node:18.16.0
     volumes:
       - .:/overleaf/services/project-history
       - ../../node_modules:/overleaf/node_modules
@@ -20,7 +20,7 @@ services:
     user: node
 
   test_acceptance:
-    image: node:16.17.1
+    image: node:18.16.0
     volumes:
       - .:/overleaf/services/project-history
       - ../../node_modules:/overleaf/node_modules

+ 1 - 1
services/real-time/.nvmrc

@@ -1 +1 @@
-16.17.1
+18.16.0

+ 1 - 1
services/real-time/Dockerfile

@@ -2,7 +2,7 @@
 # Instead run bin/update_build_scripts from
 # https://github.com/overleaf/internal/
 
-FROM node:16.17.1 as base
+FROM node:18.16.0 as base
 
 WORKDIR /overleaf/services/real-time
 

+ 1 - 1
services/real-time/buildscript.txt

@@ -3,6 +3,6 @@ real-time
 --docker-repos=gcr.io/overleaf-ops
 --env-add=
 --env-pass-through=
---node-version=16.17.1
+--node-version=18.16.0
 --public-repo=True
 --script-version=4.1.0

+ 2 - 2
services/real-time/docker-compose.yml

@@ -6,7 +6,7 @@ version: "2.3"
 
 services:
   test_unit:
-    image: node:16.17.1
+    image: node:18.16.0
     volumes:
       - .:/overleaf/services/real-time
       - ../../node_modules:/overleaf/node_modules
@@ -20,7 +20,7 @@ services:
     user: node
 
   test_acceptance:
-    image: node:16.17.1
+    image: node:18.16.0
     volumes:
       - .:/overleaf/services/real-time
       - ../../node_modules:/overleaf/node_modules

+ 1 - 1
services/spelling/.nvmrc

@@ -1 +1 @@
-16.17.1
+18.16.0

+ 1 - 1
services/spelling/Dockerfile

@@ -2,7 +2,7 @@
 # Instead run bin/update_build_scripts from
 # https://github.com/overleaf/internal/
 
-FROM node:16.17.1 as base
+FROM node:18.16.0 as base
 
 WORKDIR /overleaf/services/spelling
 COPY services/spelling/install_deps.sh /overleaf/services/spelling/

+ 1 - 1
services/spelling/buildscript.txt

@@ -4,6 +4,6 @@ spelling
 --docker-repos=gcr.io/overleaf-ops
 --env-add=
 --env-pass-through=
---node-version=16.17.1
+--node-version=18.16.0
 --public-repo=False
 --script-version=4.1.0

+ 2 - 8
services/spelling/install_deps.sh

@@ -3,7 +3,7 @@
 set -ex
 
 # Prefer Debian packages over Ubuntu packages
-echo 'APT::Default-Release "buster";' >/etc/apt/apt.conf.d/default-release
+echo 'APT::Default-Release "bullseye";' >/etc/apt/apt.conf.d/default-release
 
 # The following aspell packages exist in Ubuntu but not Debian:
 # aspell-af, aspell-id, aspell-nr, aspell-ns, aspell-st, aspell-tn, aspell-ts, aspell-xh
@@ -11,11 +11,5 @@ echo "deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ focal main universe" >
 echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ focal main universe" > /etc/apt/sources.list.d/focal-ports-arm.list
 apt-key adv --no-tty --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32
 
-# aspell-pt-pt is broken in buster, we'll obtain it from bullseye
-echo "deb http://deb.debian.org/debian bullseye main" > /etc/apt/sources.list.d/bullseye.list
-
 apt-get update
-apt-get install -y aspell aspell-en aspell-af aspell-ar aspell-ar-large aspell-bg aspell-br aspell-ca aspell-cs aspell-cy aspell-da aspell-de aspell-de-1901 aspell-el aspell-eo aspell-es aspell-et aspell-eu-es aspell-fa aspell-fo aspell-fr aspell-ga aspell-gl-minimos aspell-hr aspell-hsb aspell-id aspell-it aspell-kk aspell-ku aspell-lt aspell-lv aspell-nl aspell-no aspell-nr aspell-ns  aspell-pa aspell-pl aspell-pt-br aspell-ro aspell-ru aspell-sk aspell-sl aspell-st aspell-sv aspell-tl aspell-tn aspell-ts aspell-xh
-
-# aspell-pt-pt is broken in buster. Install it from bullseye
-apt-get install -y -t bullseye aspell-pt-pt
+apt-get install -y aspell aspell-en aspell-af aspell-ar aspell-ar-large aspell-bg aspell-br aspell-ca aspell-cs aspell-cy aspell-da aspell-de aspell-de-1901 aspell-el aspell-eo aspell-es aspell-et aspell-eu-es aspell-fa aspell-fo aspell-fr aspell-ga aspell-gl-minimos aspell-hr aspell-hsb aspell-id aspell-it aspell-kk aspell-ku aspell-lt aspell-lv aspell-nl aspell-no aspell-nr aspell-ns  aspell-pa aspell-pl aspell-pt-br aspell-pt-pt aspell-ro aspell-ru aspell-sk aspell-sl aspell-st aspell-sv aspell-tl aspell-tn aspell-ts aspell-xh

+ 20 - 1
services/spelling/test/acceptance/js/CheckTest.js

@@ -27,7 +27,26 @@ describe('checking words', function () {
     it('should return the list of misspellings', async function () {
       const body = JSON.parse(response.body)
       expect(body).to.deep.equal({
-        misspellings: [{ index: 0, suggestions: ['anther', 'another'] }],
+        misspellings: [
+          {
+            index: 0,
+            suggestions: [
+              'anther',
+              'another',
+              'anthers',
+              'panther',
+              'anathema',
+              'anthem',
+              'nether',
+              "anther's",
+              'ante',
+              'neither',
+              'norther',
+              'ether',
+              'other',
+            ],
+          },
+        ],
       })
     })
   })

+ 1 - 1
services/track-changes/.nvmrc

@@ -1 +1 @@
-16.17.1
+18.16.0

+ 1 - 1
services/track-changes/Dockerfile

@@ -2,7 +2,7 @@
 # Instead run bin/update_build_scripts from
 # https://github.com/overleaf/internal/
 
-FROM node:16.17.1 as base
+FROM node:18.16.0 as base
 
 WORKDIR /overleaf/services/track-changes
 

+ 1 - 1
services/track-changes/buildscript.txt

@@ -3,6 +3,6 @@ track-changes
 --docker-repos=gcr.io/overleaf-ops
 --env-add=AWS_BUCKET=bucket
 --env-pass-through=
---node-version=16.17.1
+--node-version=18.16.0
 --public-repo=True
 --script-version=4.1.0

+ 2 - 2
services/track-changes/docker-compose.yml

@@ -6,7 +6,7 @@ version: "2.3"
 
 services:
   test_unit:
-    image: node:16.17.1
+    image: node:18.16.0
     volumes:
       - .:/overleaf/services/track-changes
       - ../../node_modules:/overleaf/node_modules
@@ -20,7 +20,7 @@ services:
     user: node
 
   test_acceptance:
-    image: node:16.17.1
+    image: node:18.16.0
     volumes:
       - .:/overleaf/services/track-changes
       - ../../node_modules:/overleaf/node_modules

+ 1 - 1
services/web/.nvmrc

@@ -1 +1 @@
-16.17.1
+18.16.0

+ 1 - 1
services/web/Dockerfile

@@ -1,6 +1,6 @@
 # the base image is suitable for running web with /overleaf/services/web bind
 # mounted
-FROM node:16.17.1 as base
+FROM node:18.16.0 as base
 
 WORKDIR /overleaf/services/web
 

+ 1 - 1
services/web/Dockerfile.frontend

@@ -1,4 +1,4 @@
-FROM node:16.17.1
+FROM node:18.16.0
 
 # Install Google Chrome
 RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -

+ 1 - 1
services/web/docker-compose.common.env

@@ -41,5 +41,5 @@ SHARELATEX_SAML_UPDATE_USER_DETAILS_ON_LOGIN=true
 SHARELATEX_SAML_CERT=MIIDXTCCAkWgAwIBAgIJAOvOeQ4xFTzsMA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNVBAYTAkdCMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwHhcNMTYxMTE1MTQxMjU5WhcNMjYxMTE1MTQxMjU5WjBFMQswCQYDVQQGEwJHQjETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxCT6MBe5G9VoLU8MfztOEbUhnwLp17ak8eFUqxqeXkkqtWB0b/cmIBU3xoQoO3dIF8PBzfqehqfYVhrNt/TFgcmDfmJnPJRL1RJWMW3VmiP5odJ3LwlkKbZpkeT3wZ8HEJIR1+zbpxiBNkbd2GbdR1iumcsHzMYX1A2CBj+ZMV5VijC+K4P0e9c05VsDEUtLmfeAasJAiumQoVVgAe/BpiXjICGGewa6EPFI7mKkifIRKOGxdRESwZZjxP30bI31oDN0cgKqIgSJtJ9nfCn9jgBMBkQHu42WMuaWD4jrGd7+vYdX+oIfArs9aKgAH5kUGhGdew2R9SpBefrhbNxG8QIDAQABo1AwTjAdBgNVHQ4EFgQU+aSojSyyLChP/IpZcafvSdhj7KkwHwYDVR0jBBgwFoAU+aSojSyyLChP/IpZcafvSdhj7KkwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEABl3+OOVLBWMKs6PjA8lPuloWDNzSr3v76oUcHqAb+cfbucjXrOVsS9RJ0X9yxvCQyfM9FfY43DbspnN3izYhdvbJD8kKLNf0LA5st+ZxLfy0ACyL2iyAwICaqndqxAjQYplFAHmpUiu1DiHckyBPekokDJd+ze95urHMOsaGS5RWPoKJVE0bkaAeZCmEu0NNpXRSBiuxXSTeSAJfv6kyE/rkdhzUKyUl/cGQFrsVYfAFQVA+W6CKOh74ErSEzSHQQYndl7nD33snD/YqdU1ROxV6aJzLKCg+sdj+wRXSP2u/UHnM4jW9TGJfhO42jzL6WVuEvr9q4l7zWzUQKKKhtQ==
 # DEVICE_HISTORY_SECRET has been generated using:
 # NOTE: crypto.generateKeySync was added in v15, v16 is the next LTS release.
-# $ docker run --rm node:16 --print 'require("crypto").generateKeySync("aes", { length: 256 }).export().toString("hex")'
+# $ docker run --rm node:18 --print 'require("crypto").generateKeySync("aes", { length: 256 }).export().toString("hex")'
 DEVICE_HISTORY_SECRET=1b46e6cdf72db02845da06c9517c9cfbbfa0d87357479f4e1df3ce160bd54807

+ 2 - 2
services/web/docker-compose.yml

@@ -6,7 +6,7 @@ volumes:
 services:
 
   test_unit:
-    image: node:16.17.1
+    image: node:18.16.0
     volumes:
       - .:/overleaf/services/web
       - ../../node_modules:/overleaf/node_modules
@@ -21,7 +21,7 @@ services:
     user: node
 
   test_acceptance:
-    image: node:16.17.1
+    image: node:18.16.0
     volumes:
       - .:/overleaf/services/web
       - ../../node_modules:/overleaf/node_modules

+ 1 - 1
services/web/scripts/translations/Dockerfile

@@ -1,4 +1,4 @@
-FROM node:16.17.1
+FROM node:18.16.0
 
 WORKDIR /app/scripts/translations