WeBWorK Main Forum

WeBWorK 2.17 release date?

WeBWorK 2.17 release date?

by Paul Pearson -
Number of replies: 8

Is WeBWorK 2.17 expected to be released in July 2022?  I'm trying to plan an upgrade with my local CIT folks and would like to know whether to wait a bit for WW 2.17 or install WW 2.16 now.  Thanks in advance.

In reply to Paul Pearson

Re: WeBWorK 2.17 release date?

by Glenn Rice -

Yes, the plan is to release it probably a week before the end of July.  The release candidate is available, and is pretty much what the release will be.

In reply to Glenn Rice

Re: WeBWorK 2.17 release date?

by Larry Riddle -

Has there been an official release? Are there release notes available with step-by-step instructions for doing the upgrade?

In reply to Larry Riddle

Re: WeBWorK 2.17 release date?

by Glenn Rice -

WeBWorK 2.17 was officially released on July 18, 2022.  The installation instructions are at https://webwork.maa.org/wiki/Installation_Manual_for_2.17_on_Ubuntu and the release notes at https://webwork.maa.org/wiki/Release_notes_for_WeBWorK_2.17.  The release notes have details on upgrading.

In reply to Glenn Rice

Re: WeBWorK 2.17 release date?

by Larry Riddle -
I've started the upgrade following the steps in the release notes, but the 'git pull' keeps aborting because of the following

error: Your local changes to the following files would be overwritten by merge:
error: The following untracked working tree files would be overwritten by merge:
each followed by a long list of file names and then the message
"Please move or remove them before you merge."

I'm not sure how to resolve this. Any help would be appreciated. I never ran into this problem before when upgrading to previous versions.
In reply to Larry Riddle

Re: WeBWorK 2.17 release date?

by Glenn Rice -
You have modified some files locally.  You should see what those changes are first.  Run
'git status'
to see which files have changed and run
'git diff'
to see details of what those changes are.
You can back the changes up with
'git diff > changes.patch'

To remove the local modifications run
'git checkout -- .'

You will need to manually delete any files that are untracked that will be overwritten by the pull.  You should probably back them up first.

After that you should be able to run 'git pull'.
In reply to Glenn Rice

Re: WeBWorK 2.17 release date?

by Larry Riddle -
Glenn, thanks for your help. We restored our WW server back to its state before trying the upgrade so I could start over from scratch with your suggestions. This got me much farther into the upgrade instructions. But I got stuck at:

Then run npm to install (or upgrade) third party javascript and minimize local javascript and css:
> cd /opt/webwork/webwork2/htdocs
> npm install

This is the result
> prepare
> npm run generate-assets

npm ERR! code 243
npm ERR! path /opt/webwork/webwork2/htdocs
npm ERR! command failed
npm ERR! command sh -c npm run generate-assets

npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2022-08-08T18_38_15_049Z-debug-0.log

Here is the completge log
wwadmin@swoop:/opt/webwork/webwork2/htdocs$ sudo more /root/.npm/_logs/2022-08-08T18_38_15_049Z-debug-0.log
0 verbose cli /usr/bin/node /usr/bin/npm
1 info using npm@8.11.0
2 info using node@v16.16.0
3 timing npm:load:whichnode Completed in 0ms
4 timing config:load:defaults Completed in 2ms
5 timing config:load:file:/usr/lib/node_modules/npm/npmrc Completed in 9ms
6 timing config:load:builtin Completed in 16ms
7 timing config:load:cli Completed in 3ms
8 timing config:load:env Completed in 0ms
9 timing config:load:file:/opt/webwork/webwork2/htdocs/.npmrc Completed in 0ms
10 timing config:load:project Completed in 7ms
11 timing config:load:file:/root/.npmrc Completed in 0ms
12 timing config:load:user Completed in 0ms
13 timing config:load:file:/usr/etc/npmrc Completed in 0ms
14 timing config:load:global Completed in 0ms
15 timing config:load:validate Completed in 0ms
16 timing config:load:credentials Completed in 1ms
17 timing config:load:setEnvs Completed in 2ms
18 timing config:load Completed in 32ms
19 timing npm:load:configload Completed in 33ms
20 timing npm:load:mkdirpcache Completed in 1ms
21 timing npm:load:mkdirplogs Completed in 1ms
22 verbose title npm install
23 verbose argv "install"
24 timing npm:load:setTitle Completed in 1ms
25 timing config:load:flatten Completed in 6ms
26 timing npm:load:display Completed in 9ms
27 verbose logfile logs-max:10 dir:/root/.npm/_logs
28 verbose logfile /root/.npm/_logs/2022-08-08T18_38_15_049Z-debug-0.log
29 timing npm:load:logFile Completed in 8ms
30 timing npm:load:timers Completed in 0ms
31 timing npm:load:configScope Completed in 1ms
32 timing npm:load Completed in 55ms
33 timing arborist:ctor Completed in 1ms
34 silly logfile done cleaning log files
35 timing idealTree:init Completed in 192ms
36 timing idealTree:userRequests Completed in 1ms
37 silly idealTree buildDeps
38 timing idealTree:#root Completed in 1ms
39 timing idealTree:buildDeps Completed in 2ms
40 timing idealTree:fixDepFlags Completed in 0ms
41 timing idealTree Completed in 202ms
42 timing arborist:ctor Completed in 0ms
43 timing reify:loadTrees Completed in 318ms
44 timing reify:diffTrees Completed in 12ms
45 silly reify moves {}
46 timing reify:retireShallow Completed in 1ms
47 timing reify:createSparse Completed in 3ms
48 timing reify:loadBundles Completed in 0ms
49 silly audit bulk request {
49 silly audit '@fortawesome/fontawesome-free': [ '6.1.1' ],
49 silly audit '@jridgewell/gen-mapping': [ '0.3.2' ],
49 silly audit '@jridgewell/resolve-uri': [ '3.1.0' ],
49 silly audit '@jridgewell/set-array': [ '1.1.2' ],
49 silly audit '@jridgewell/source-map': [ '0.3.2' ],
49 silly audit '@jridgewell/sourcemap-codec': [ '1.4.14' ],
49 silly audit '@jridgewell/trace-mapping': [ '0.3.14' ],
49 silly audit '@popperjs/core': [ '2.11.5' ],
49 silly audit '@trysound/sax': [ '0.2.0' ],
49 silly audit acorn: [ '8.7.1' ],
49 silly audit 'ansi-regex': [ '5.0.1' ],
49 silly audit 'ansi-styles': [ '4.3.0' ],
49 silly audit anymatch: [ '3.1.2' ],
49 silly audit autoprefixer: [ '10.4.7' ],
49 silly audit 'binary-extensions': [ '2.2.0' ],
49 silly audit boolbase: [ '1.0.0' ],
49 silly audit bootstrap: [ '5.1.3' ],
49 silly audit braces: [ '3.0.2' ],
49 silly audit browserslist: [ '4.21.2' ],
49 silly audit 'buffer-from': [ '1.1.2' ],
49 silly audit 'caniuse-api': [ '3.0.0' ],
49 silly audit 'caniuse-lite': [ '1.0.30001367' ],
49 silly audit chokidar: [ '3.5.3' ],
49 silly audit cliui: [ '7.0.4' ],
49 silly audit codemirror: [ '5.65.7' ],
49 silly audit 'color-convert': [ '2.0.1' ],
49 silly audit 'color-name': [ '1.1.4' ],
49 silly audit colord: [ '2.9.2' ],
49 silly audit commander: [ '7.2.0', '2.20.3' ],
49 silly audit 'css-declaration-sorter': [ '6.3.0' ],
49 silly audit 'css-select': [ '4.3.0' ],
49 silly audit 'css-tree': [ '1.1.3' ],
49 silly audit 'css-what': [ '6.1.0' ],
49 silly audit cssesc: [ '3.0.0' ],
49 silly audit cssnano: [ '5.1.12' ],
49 silly audit 'cssnano-preset-default': [ '5.2.12' ],
49 silly audit 'cssnano-utils': [ '3.1.0' ],
49 silly audit csso: [ '4.2.0' ],
49 silly audit 'dom-serializer': [ '1.4.1' ],
49 silly audit domelementtype: [ '2.3.0' ],
49 silly audit domhandler: [ '4.3.1' ],
49 silly audit domutils: [ '2.8.0' ],
49 silly audit 'electron-to-chromium': [ '1.4.195' ],
49 silly audit 'emoji-regex': [ '8.0.0' ],
49 silly audit entities: [ '2.2.0' ],
49 silly audit escalade: [ '3.1.1' ],
49 silly audit 'fill-range': [ '7.0.1' ],
49 silly audit 'find-up': [ '5.0.0' ],
49 silly audit flatpickr: [ '4.6.13' ],
49 silly audit 'fraction.js': [ '4.2.0' ],
49 silly audit fsevents: [ '2.3.2' ],
49 silly audit 'get-caller-file': [ '2.0.5' ],
49 silly audit 'glob-parent': [ '5.1.2' ],
49 silly audit 'iframe-resizer': [ '4.3.2' ],
49 silly audit immutable: [ '4.1.0' ],
49 silly audit 'is-binary-path': [ '2.1.0' ],
49 silly audit 'is-extglob': [ '2.1.1' ],
49 silly audit 'is-fullwidth-code-point': [ '3.0.0' ],
49 silly audit 'is-glob': [ '4.0.3' ],
49 silly audit 'is-number': [ '7.0.0' ],
49 silly audit jquery: [ '3.6.0' ],
49 silly audit 'jquery-ui-dist': [ '1.13.1' ],
49 silly audit lilconfig: [ '2.0.6' ],
49 silly audit 'locate-path': [ '6.0.0' ],
49 silly audit 'lodash.memoize': [ '4.1.2' ],
49 silly audit 'lodash.uniq': [ '4.5.0' ],
49 silly audit luxon: [ '2.5.0' ],
49 silly audit mathjax: [ '3.2.2' ],
49 silly audit 'mdn-data': [ '2.0.14' ],
49 silly audit nanoid: [ '3.3.4' ],
49 silly audit 'node-releases': [ '2.0.6' ],
49 silly audit 'normalize-path': [ '3.0.0' ],
49 silly audit 'normalize-range': [ '0.1.2' ],
49 silly audit 'normalize-url': [ '6.1.0' ],
49 silly audit 'nth-check': [ '2.1.1' ],
49 silly audit 'p-limit': [ '3.1.0' ],
49 silly audit 'p-locate': [ '5.0.0' ],
49 silly audit 'path-exists': [ '4.0.0' ],
49 silly audit picocolors: [ '1.0.0' ],
49 silly audit picomatch: [ '2.3.1' ],
49 silly audit postcss: [ '8.4.14' ],
49 silly audit 'postcss-calc': [ '8.2.4' ],
49 silly audit 'postcss-colormin': [ '5.3.0' ],
49 silly audit 'postcss-convert-values': [ '5.1.2' ],
49 silly audit 'postcss-discard-comments': [ '5.1.2' ],
49 silly audit 'postcss-discard-duplicates': [ '5.1.0' ],
49 silly audit 'postcss-discard-empty': [ '5.1.1' ],
49 silly audit 'postcss-discard-overridden': [ '5.1.0' ],
49 silly audit 'postcss-merge-longhand': [ '5.1.6' ],
49 silly audit 'postcss-merge-rules': [ '5.1.2' ],
49 silly audit 'postcss-minify-font-values': [ '5.1.0' ],
49 silly audit 'postcss-minify-gradients': [ '5.1.1' ],
49 silly audit 'postcss-minify-params': [ '5.1.3' ],
49 silly audit 'postcss-minify-selectors': [ '5.2.1' ],
49 silly audit 'postcss-normalize-charset': [ '5.1.0' ],
49 silly audit 'postcss-normalize-display-values': [ '5.1.0' ],
49 silly audit 'postcss-normalize-positions': [ '5.1.1' ],
49 silly audit 'postcss-normalize-repeat-style': [ '5.1.1' ],
49 silly audit 'postcss-normalize-string': [ '5.1.0' ],
49 silly audit 'postcss-normalize-timing-functions': [ '5.1.0' ],
49 silly audit 'postcss-normalize-unicode': [ '5.1.0' ],
49 silly audit 'postcss-normalize-url': [ '5.1.0' ],
49 silly audit 'postcss-normalize-whitespace': [ '5.1.1' ],
49 silly audit 'postcss-ordered-values': [ '5.1.3' ],
49 silly audit 'postcss-reduce-initial': [ '5.1.0' ],
49 silly audit 'postcss-reduce-transforms': [ '5.1.0' ],
49 silly audit 'postcss-selector-parser': [ '6.0.10' ],
49 silly audit 'postcss-svgo': [ '5.1.0' ],
49 silly audit 'postcss-unique-selectors': [ '5.1.1' ],
49 silly audit 'postcss-value-parser': [ '4.2.0' ],
49 silly audit readdirp: [ '3.6.0' ],
49 silly audit 'require-directory': [ '2.1.1' ],
49 silly audit rtlcss: [ '3.5.0' ],
49 silly audit sass: [ '1.53.0' ],
49 silly audit sortablejs: [ '1.15.0' ],
49 silly audit 'source-map': [ '0.6.1' ],
49 silly audit 'source-map-js': [ '1.0.2' ],
49 silly audit 'source-map-support': [ '0.5.21' ],
49 silly audit stable: [ '0.1.8' ],
49 silly audit 'string-width': [ '4.2.3' ],
49 silly audit 'strip-ansi': [ '6.0.1' ],
49 silly audit 'strip-json-comments': [ '3.1.1' ],
49 silly audit stylehacks: [ '5.1.0' ],
49 silly audit svgo: [ '2.8.0' ],
49 silly audit terser: [ '5.14.2' ],
49 silly audit 'to-regex-range': [ '5.0.1' ],
49 silly audit 'update-browserslist-db': [ '1.0.5' ],
49 silly audit 'util-deprecate': [ '1.0.2' ],
49 silly audit 'wrap-ansi': [ '7.0.0' ],
49 silly audit y18n: [ '5.0.8' ],
49 silly audit yaml: [ '1.10.2' ],
49 silly audit yargs: [ '16.2.0' ],
49 silly audit 'yargs-parser': [ '20.2.9' ],
49 silly audit 'yocto-queue': [ '0.1.0' ]
49 silly audit }
50 verbose reify failed optional dependency /opt/webwork/webwork2/htdocs/node_modules/fsevents
51 silly reify mark deleted [ '/opt/webwork/webwork2/htdocs/node_modules/fsevents' ]
52 timing reifyNode:node_modules/fsevents Completed in 26ms
53 timing reify:unpack Completed in 26ms
54 timing reify:unretire Completed in 1ms
55 timing build:queue Completed in 13ms
56 timing build:deps Completed in 14ms
57 timing build Completed in 14ms
58 timing reify:build Completed in 14ms
59 timing reify:trash Completed in 4ms
60 timing reify:save Completed in 66ms
61 http fetch POST 200 https://registry.npmjs.org/-/npm/v1/security/advisories/bulk 287ms
62 timing auditReport:getReport Completed in 293ms
63 silly audit report {}
64 timing auditReport:init Completed in 0ms
65 timing reify:audit Completed in 295ms
66 timing reify Completed in 646ms
67 timing command:install Completed in 1085ms
68 verbose stack Error: command failed
68 verbose stack at ChildProcess. (/usr/lib/node_modules/npm/node_modules/@npmcli/promise-spawn/lib
/index.js:63:27)
68 verbose stack at ChildProcess.emit (node:events:527:28)
68 verbose stack at maybeClose (node:internal/child_process:1092:16)
68 verbose stack at Process.ChildProcess._handle.onexit (node:internal/child_process:302:5)
69 verbose cwd /opt/webwork/webwork2/htdocs
70 verbose Linux 5.4.0-122-generic
71 verbose node v16.16.0
72 verbose npm v8.11.0
73 error code 243
74 error path /opt/webwork/webwork2/htdocs
75 error command failed
76 error command sh -c npm run generate-assets
77 verbose exit 243
78 timing npm Completed in 1211ms
79 verbose code 243
80 error A complete log of this run can be found in:
80 error /root/.npm/_logs/2022-08-08T18_38_15_049Z-debug-0.log

When I try to log into Webwork, the page loads but is missing css styling and there is a warning message
ERROR: '/opt/webwork/webwork2/htdocs/static-assets.json' not found!
You may need to run 'npm install' from '/opt/webwork/webwork2/htdocs'. at /opt/webwork/webwork2/lib/WeBWorK/Utils.pm line 1875.

which seems to be a consequence of the original difficulty with running npm install in htdocs. If I enter the admin id and password, then click on the continue button, nothing happens.

Incidentally, running npm install in pg/htdocs worked with no problems.

Do you have any suggestions for what I need to do to resolve this npm install issue in webwork2/htdocs?
In reply to Larry Riddle

Re: WeBWorK 2.17 release date?

by Glenn Rice -

You seem to be trying to run "npm install" as the root user.  That won't work.  You need to run it as your usual admin user.  Don't use sudo, and log out of the shell if you are logged in as root (for example with "sudo -s").

You will need to make sure that the htdocs directory is owned by your admin user also.

In reply to Glenn Rice

Re: WeBWorK 2.17 release date?

by Larry Riddle -
But when I ran "npm install" as wwadmin, I got the message

wwadmin@swoop:/opt/webwork/webwork2/htdocs$ npm install
npm ERR! code EACCES
npm ERR! syscall open
npm ERR! path /opt/webwork/webwork2/htdocs/package-lock.json
npm ERR! errno -13
npm ERR! Error: EACCES: permission denied, open '/opt/webwork/webwork2/htdocs/package-lock.json'
npm ERR! [Error: EACCES: permission denied, open '/opt/webwork/webwork2/htdocs/package-lock.json'] {
npm ERR! errno: -13,
npm ERR! code: 'EACCES',
npm ERR! syscall: 'open',
npm ERR! path: '/opt/webwork/webwork2/htdocs/package-lock.json'
npm ERR! }
npm ERR!
npm ERR! The operation was rejected by your operating system.
npm ERR! It is likely you do not have the permissions to access this file as the current user
npm ERR!
npm ERR! If you believe this might be a permissions issue, please double-check the
npm ERR! permissions of the file and its containing directories, or try running
npm ERR! the command again as root/Administrator.

That is why I then tried again using sudo. These are the permissions for the htdocs directory.
drwxrwxr-x 11 wwadmin wwadmin 4096 Aug 8 14:08 htdocs
and the permissions inside htdocs
-rw-r--r--   1 root    root    125789 Aug  8 15:31 package-lock.json
drwxrwxr-x 131 wwadmin wwadmin   4096 Aug  8 15:31 node_modules
-rw-r--r--   1 root    root     12587 Aug  8 14:08 third-party-assets.json
drwxrwxr-x   2 wwadmin wwadmin   4096 Aug  8 14:08 helpFiles
drwxrwxr-x   2 wwadmin wwadmin   4096 Aug  8 14:08 images
-rw-r--r--   1 root    root      1342 Aug  8 14:08 package.json
drwxrwxr-x   7 wwadmin wwadmin   4096 Aug  8 14:08 themes
drwxrwxr-x   2 wwadmin wwadmin   4096 Aug  8 14:08 css
-rwxr-xr-x   1 root    root      8961 Aug  8 14:08 generate-assets.js
drwxrwxr-x   4 wwadmin wwadmin   4096 Aug  8 14:08 js
drwxrwxr-x   2 wwadmin wwdata    4096 Aug  8 14:08 applets
drwxrwsr-x   4 wwadmin wwdata    4096 Jul 23  2021 tmp
lrwxrwxrwx   1 root    root        71 Jul 23  2021 CAPA_Graphics -> ../../libraries/webwork-open-problem-library/Contrib/CAPA/CAPA_Graphics
-rw-rw-r--   1 wwadmin wwadmin    582 Jul 11  2020 site_info_server.txt
-rw-r--r--   1 root    root       433 Aug  9  2019 site_info.txt
drwxrwxr-x   2 wwadmin wwadmin   4096 Jun 24  2016 DATA
-rw-rw-r--   1 wwadmin wwadmin    222 Jun 23  2015 crossdomain.xml
-rw-rw-r--   1 wwadmin wwadmin    286 Jun 23  2015 favicon.ico
-rw-rw-r--   1 wwadmin wwadmin    420 Jun 23  2015 index.html
-rw-rw-r--   1 wwadmin wwadmin  31328 Jun 23  2015 library-tree.json
-rwxrwxr-x   1 wwadmin wwadmin   1732 Jun 23  2015 show-source.cgi

I also had to run the initial pull command as sudo because I also was getting permission error messages without it (during my first attempt to the upgrade last week). Here is the entire webwork2 directory

wwadmin@swoop:/opt/webwork/webwork2$ lf
total 104
drwxrwxr-x 2 wwadmin wwadmin 4096 Aug 8 14:08 t
-rw-r--r-- 1 root root 438 Aug 8 14:08 transifex.yml
drwxrwxr-x 8 wwadmin wwadmin 4096 Aug 8 14:08 lib
drwxrwxr-x 11 wwadmin wwadmin 4096 Aug 8 14:08 htdocs
drwxrwxr-x 5 wwadmin wwadmin 4096 Aug 8 14:08 docker-config
drwxrwxr-x 5 wwadmin wwadmin 4096 Aug 8 14:08 bin
drwxrwxr-x 4 wwadmin wwadmin 4096 Aug 8 14:08 clients
drwxrwxr-x 3 wwadmin wwadmin 4096 Aug 8 14:08 conf
drwxrwxr-x 3 wwadmin wwadmin 4096 Aug 8 14:08 courses.dist
-rw-r--r-- 1 root root 11974 Aug 8 14:08 Dockerfile
-rw-r--r-- 1 root root 3655 Aug 8 14:08 DockerfileStage1
-rw-r--r-- 1 root root 9085 Aug 8 14:08 DockerfileStage2
-rw-r--r-- 1 root root 1423 Aug 8 14:08 LICENSE
-rw-r--r-- 1 root root 445 Aug 8 14:08 README
-rw-r--r-- 1 root root 3677 Aug 8 14:08 README.md
-rw-r--r-- 1 root root 61 Aug 8 14:08 VERSION
drwxrwsr-x 2 wwadmin wwdata 4096 Aug 7 00:00 logs
drwxrwsr-x 2 wwadmin wwdata 4096 Jul 4 20:35 tmp
-rw-rw-r-- 1 wwadmin wwadmin 479 Jun 24 2016 README_js_organization
drwxrwsr-x 3 wwadmin wwdata 4096 Jun 23 2015 DATA
drwxrwxr-x 4 wwadmin wwadmin 4096 Jun 23 2015 doc
-rw-rw-r-- 1 wwadmin wwadmin 1829 Jun 23 2015 README.md.bak

This may all be a result of the 2.14 upgrade instructions at
https://webwork.maa.org/wiki/Release_notes_for_WeBWorK_2.14
which was the first time I did an upgrade. Those instructions had
">sudo git pull    # make sure things are updated"