diff --git a/services/spelling/.nvmrc b/services/spelling/.nvmrc index d9f880069d..5ab50cd8e9 100644 --- a/services/spelling/.nvmrc +++ b/services/spelling/.nvmrc @@ -1 +1 @@ -16.14.2 +14.18.3 diff --git a/services/spelling/Dockerfile b/services/spelling/Dockerfile index 3a2268800d..0a946d9ace 100644 --- a/services/spelling/Dockerfile +++ b/services/spelling/Dockerfile @@ -2,7 +2,7 @@ # Instead run bin/update_build_scripts from # https://github.com/sharelatex/sharelatex-dev-environment -FROM node:16.14.2 as base +FROM gcr.io/overleaf-ops/node:14.18.3 as base WORKDIR /overleaf/services/spelling COPY services/spelling/install_deps.sh /overleaf/services/spelling/ diff --git a/services/spelling/Makefile b/services/spelling/Makefile index db6411fa4c..9ddeeedd76 100644 --- a/services/spelling/Makefile +++ b/services/spelling/Makefile @@ -30,7 +30,7 @@ HERE=$(shell pwd) MONOREPO=$(shell cd ../../ && pwd) # Run the linting commands in the scope of the monorepo. # Eslint and prettier (plus some configs) are on the root. -RUN_LINTING = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(HERE) node:16.14.2 npm run --silent +RUN_LINTING = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(HERE) gcr.io/overleaf-ops/node:14.18.3 npm run --silent format: $(RUN_LINTING) format diff --git a/services/spelling/buildscript.txt b/services/spelling/buildscript.txt index 7043696cda..47ddd8a0cb 100644 --- a/services/spelling/buildscript.txt +++ b/services/spelling/buildscript.txt @@ -4,6 +4,7 @@ spelling --docker-repos=gcr.io/overleaf-ops --env-add= --env-pass-through= ---node-version=16.14.2 +--node-image=gcr.io/overleaf-ops/node +--node-version=14.18.3 --public-repo=False --script-version=4.1.0 diff --git a/services/spelling/install_deps.sh b/services/spelling/install_deps.sh index c88135e9ba..77dc28693d 100644 --- a/services/spelling/install_deps.sh +++ b/services/spelling/install_deps.sh @@ -2,11 +2,19 @@ set -ex +echo 'APT::Default-Release "stretch";' >/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-xhu echo "deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ focal main universe" > /etc/apt/sources.list.d/focal-amd.list 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 +# Need to install aspell-no from testing (buster) as broken in stable (stretch). +echo "deb http://deb.debian.org/debian/ unstable main" > /etc/apt/sources.list.d/unstable.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 aspell-pt-br aspell-ro aspell-ru aspell-sk aspell-sl aspell-st aspell-sv aspell-tl aspell-tn aspell-ts aspell-xh +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-alt 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-nr aspell-ns aspell-pa aspell-pl aspell-pt aspell-pt-br aspell-ro aspell-ru aspell-sk aspell-sl aspell-st aspell-sv aspell-tl aspell-tn aspell-ts aspell-xh + +printf 'Package: aspell-*\nPin: release a=unstable\nPin-Priority: 1337\n' \ + > /etc/apt/preferences.d/aspell-from-unstable +apt-get install aspell-no diff --git a/services/spelling/test/acceptance/js/CheckTest.js b/services/spelling/test/acceptance/js/CheckTest.js index 1204f831b4..76cb4f1774 100644 --- a/services/spelling/test/acceptance/js/CheckTest.js +++ b/services/spelling/test/acceptance/js/CheckTest.js @@ -27,26 +27,7 @@ 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', - 'anthers', - 'panther', - 'anathema', - 'anthem', - 'nether', - "anther's", - 'ante', - 'neither', - 'norther', - 'ether', - 'other', - ], - }, - ], + misspellings: [{ index: 0, suggestions: ['anther', 'another'] }], }) }) })