Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
367 commits
Select commit Hold shift + click to select a range
8943bac
Make MathJax show errors for bad TeX but only in the problem editor.
drgrice1 Oct 29, 2025
1fedbc8
Merge pull request #2843 from drgrice1/mathjax-noerror-config-alt2
pstaabp Dec 2, 2025
37d11cc
Fix the openwebwork.org link in hardcopy.
drgrice1 Dec 4, 2025
5ced534
Preserve the monospace font by using `\nolinkurl` on the link text.
drgrice1 Dec 4, 2025
0f46cbc
Merge pull request #2853 from drgrice1/fix-hardcopy-openwebwork-link
somiaj Dec 9, 2025
2558cf6
Order problems from the OPL before those from Contrib in the library …
drgrice1 Dec 9, 2025
6c6dbb6
Update the @openwebwork/pg-codemirror-editor dependency.
drgrice1 Dec 3, 2025
7973fcc
Make the "Include OPL" and "Include Contrib" check states in the libr…
drgrice1 Dec 9, 2025
7c6b669
Don't create users for LTI users that do not have permission to login.
drgrice1 Aug 24, 2025
e82a9e9
Add an option to add headers to only SSL request responses.
drgrice1 Dec 3, 2025
c00d48e
Update the browserslist-db to eliminate the warning to do so.
drgrice1 Dec 3, 2025
5efa957
Merge pull request #2799 from drgrice1/lti-issues
Alex-Jordan Dec 13, 2025
2bb1509
Fix the MathQuill usage on the problem grader page.
drgrice1 Dec 18, 2025
e05fd47
Add message when navigation is not allowed and LTI is not configured.
somiaj Dec 17, 2025
10f4508
Allow viewing achievement items when acting as another user.
somiaj Dec 13, 2025
fbfc97a
Merge pull request #2864 from drgrice1/bugfix/problem-grader-mathquill
somiaj Dec 18, 2025
eecc9d7
Merge pull request #2862 from somiaj/fix-warning-if-no-lti
Alex-Jordan Dec 19, 2025
240a2f8
Merge pull request #2860 from somiaj/view-euser-items
Alex-Jordan Dec 19, 2025
43de81a
Merge pull request #2859 from drgrice1/library-browser-sort-opl-first
Alex-Jordan Dec 19, 2025
efa8a1d
Merge pull request #2858 from drgrice1/library-include-checks-save-state
Alex-Jordan Dec 19, 2025
ab39da8
Merge pull request #2852 from drgrice1/update-browserslist-db
Alex-Jordan Dec 19, 2025
dc71412
Merge pull request #2851 from drgrice1/codemirror-dependency-update
Alex-Jordan Dec 19, 2025
347a968
Merge pull request #2850 from drgrice1/ssl-headers
Alex-Jordan Dec 19, 2025
edb33ef
Fix a potential XSS vulnerability on the hardcopy page.
drgrice1 Dec 2, 2025
a010186
Remove Cosign authentication module
dlglin Dec 23, 2025
655833f
enhanced subject line formatting options for email
Alex-Jordan Dec 22, 2025
f8a7d9c
Merge pull request #2867 from dlglin/RemoveCoSign
somiaj Dec 28, 2025
e9a534a
prompt email recipient to use reply-all when there were multiple reci…
Alex-Jordan Dec 24, 2025
2368f3e
Merge pull request #2868 from Alex-Jordan/reply-all
somiaj Dec 29, 2025
d8daeb7
Add a standalone variant to check_latex.
drgrice1 Nov 6, 2025
00d1921
Merge pull request #2841 from drgrice1/check-latex-standalone
pstaabp Dec 30, 2025
70b1e39
Configure rpc endpoints to disable cookies for specific courses/users.
somiaj Dec 9, 2025
53301bc
Merge pull request #2849 from drgrice1/xss-vulnerability
somiaj Dec 31, 2025
b555f69
Update the pgeditor to use the pgcritic to analyze a problem.
pstaabp Jun 20, 2025
e29b00f
Add PG critic to the PG problem editor.
drgrice1 Jul 9, 2025
7009663
Adjust for removal of "positive violations".
drgrice1 Jul 16, 2025
2321427
Translate the feedback email templates.
drgrice1 Dec 29, 2025
3f115b7
Merge pull request #2871 from drgrice1/translate-feedback-emails
Alex-Jordan Jan 1, 2026
5de0455
make the regex pattern for email subject lines better
drgrice1 Jan 1, 2026
251ab1b
Merge pull request #2861 from somiaj/limit-unsecured-rpc
Alex-Jordan Jan 1, 2026
2bd468a
Merge pull request #2768 from drgrice1/pg-critic
somiaj Jan 1, 2026
1677706
Merge pull request #2866 from Alex-Jordan/email-subject-format
drgrice1 Jan 1, 2026
29505c9
Add a message to the grade test confirmation dialog when questions ar…
drgrice1 Sep 14, 2025
0ae7331
Move the unanswered questions comment to the top.
drgrice1 Jan 2, 2026
499a44c
Merge pull request #2819 from drgrice1/test-confirm-unanswered
Alex-Jordan Jan 2, 2026
91e299e
Add message to PG critic output if no issues are found.
somiaj Jan 2, 2026
07f5b04
Merge pull request #2876 from somiaj/pg-critic-msg-if-no-issues
Alex-Jordan Jan 3, 2026
f5cd470
Update MathJax to 4.1.0.
somiaj Jan 4, 2026
eb2f415
Remove the Moodle authentication module.
drgrice1 Jan 9, 2026
6d54327
Merge pull request #2884 from drgrice1/remove-moodle-authen
pstaabp Jan 13, 2026
1afb4f4
Remove the `Plots::GD` PG module dependency.
drgrice1 Oct 28, 2025
744e06a
Merge pull request #2839 from drgrice1/remove-plots-gd
pstaabp Jan 13, 2026
57938a8
When a course is renamed update the LTI course map for the course.
drgrice1 Sep 23, 2025
a05d415
Make LTI 1.3 launch redirection honor query parameters in the target_…
drgrice1 Aug 28, 2025
bafd2a0
Changes needed to accomodate changes to the PG POD and sample problem…
drgrice1 Sep 4, 2025
095d28a
Remove the label/value hack on the "Set Detail" page.
drgrice1 Nov 9, 2025
c230d93
Switch to using the `lg` break point for determining when to move the
drgrice1 Jan 2, 2026
94dbfed
Set the number inputs to to the minimum value if no value has yet been
drgrice1 Jan 2, 2026
5c5cabb
Add the capability to mass edit a particular set date when editing se…
drgrice1 Jan 8, 2026
326890f
Validate user login capability on each request.
drgrice1 Jan 9, 2026
9680d85
Allow colons in filter values.
drgrice1 Jan 14, 2026
a4b4e5f
Add a no-dark-mode extension for MathJax.
drgrice1 Jan 14, 2026
57b6ca7
Merge pull request #14 from drgrice1/mathjax-4.1.0-no-dark-mode
somiaj Jan 15, 2026
fd230a2
Change list of perl modules from array to hash
dlglin Jan 16, 2026
6f9ef4f
Update minversion code
dlglin Jan 16, 2026
cee8540
perltidy
dlglin Jan 17, 2026
1cf5155
Add perl packages for rpm-based systems
dlglin Jan 19, 2026
02299da
Add suggested install command for missing packages
dlglin Jan 19, 2026
6ee734b
Merge pull request #2888 from drgrice1/bugfix/filter-colon
pstaabp Jan 26, 2026
d942a4f
Merge pull request #2845 from drgrice1/set-detail-numeric-inputs
pstaabp Jan 26, 2026
8bbad61
Merge pull request #2878 from somiaj/mathjax-4.1.0
pstaabp Jan 26, 2026
60b9e10
Change package manager to distro, and change perl-modules and libperl…
dlglin Jan 26, 2026
ace6b66
perltidy
dlglin Jan 26, 2026
e318765
Merge pull request #2797 from drgrice1/lti-1.3-redirect-query-params
somiaj Feb 1, 2026
d526424
Merge pull request #2826 from drgrice1/course-rename-update-lti-cours…
somiaj Feb 1, 2026
088a2ad
Merge pull request #2842 from drgrice1/pod-and-sample-problem-updates
somiaj Feb 1, 2026
9d60716
Merge pull request #2883 from drgrice1/validate-user-login-each-request
somiaj Feb 1, 2026
5cf8bf9
Merge pull request #2882 from drgrice1/set-list-mass-edit-date
somiaj Feb 1, 2026
5306188
Add an "accessibility time factor" to provide for extra time on timed…
drgrice1 Sep 9, 2025
ed3ca98
Change from "Accessibility Time Factor" to "Accommodation Time Factor".
drgrice1 Dec 19, 2025
80a83fa
Add validation of the accomodation time factor.
drgrice1 Jan 2, 2026
2e2b584
Fix importing of JITAR sets.
drgrice1 Jan 29, 2026
dd5d04a
Fix an LTI grade passback issue.
drgrice1 Jan 13, 2026
dbbb08f
Fix problem_data with problem randomization and show me another.
drgrice1 Dec 5, 2025
70c86ec
Tweak sticky answers with problem randomization a bit more.
drgrice1 Dec 5, 2025
e62b568
Rework the single problem grader interface.
drgrice1 Dec 29, 2025
dc45370
Minor tweak to the mass date edit on the set list page.
drgrice1 Feb 1, 2026
0ff2b86
Merge pull request #2900 from drgrice1/set-list-mass-edit-default-dis…
somiaj Feb 1, 2026
63b0827
Fix sets manager import form selection multiple default option select…
drgrice1 Jan 7, 2026
327ccda
Change the plurality of "Select filename(s) below" when switching
drgrice1 Feb 1, 2026
d65bcef
Fix POD layout
dlglin Feb 2, 2026
215c5b8
Add automatic check for distribution
dlglin Feb 2, 2026
63e113c
Merge pull request #2855 from drgrice1/bugfix/problem-data-issues
somiaj Feb 3, 2026
ee821cb
Merge pull request #2880 from drgrice1/import-default-not-selected
somiaj Feb 3, 2026
58a2000
Update some of the help.
drgrice1 Jan 28, 2026
6ca40fa
Merge pull request #2877 from drgrice1/problem-grader-in-collapse
somiaj Feb 3, 2026
f7c2fde
Merge pull request #2886 from drgrice1/bugfix/lti-grade-passback
somiaj Feb 3, 2026
18857e0
Update all `webwork.maa.org` links in the help to their new locations.
drgrice1 Feb 3, 2026
a7378bf
Make it much easier to act as a student.
drgrice1 Jan 15, 2026
9edc869
Merge pull request #2889 from drgrice1/student-nav-improvements
somiaj Feb 3, 2026
c7ec6ef
Merge pull request #2896 from drgrice1/help-update
somiaj Feb 3, 2026
62a8a67
Merge pull request #2846 from drgrice1/accessibility-time-factor
somiaj Feb 3, 2026
2d11be7
Merge pull request #2898 from drgrice1/bugfix/jitar-set-import
pstaabp Feb 3, 2026
12bd44b
Update `webwork.maa.org` links.
drgrice1 Feb 3, 2026
33e9334
Remove everything CAPA.
drgrice1 Dec 19, 2025
f5ad81f
Add dark mode support.
drgrice1 Jan 15, 2026
951573d
Clarify messages in extension achievement items when reduced scoring …
dlglin Feb 5, 2026
34f51ee
Merge pull request #2902 from drgrice1/update-webwork-maa-links
pstaabp Feb 6, 2026
56f9d02
Merge pull request #2903 from drgrice1/remove-capa
somiaj Feb 8, 2026
ebda7aa
Add note about cpan and fix case where id_like is not present
dlglin Feb 11, 2026
7d7fd79
Fix ressurect achievement items
dlglin Feb 13, 2026
b30b845
Merge pull request #2894 from drgrice1/dark-mode
somiaj Feb 16, 2026
6a218bb
Allow viewing ProblemSet page for any valid set.
somiaj Dec 24, 2025
a18b874
Line wrap POD
dlglin Feb 17, 2026
82fdf2d
Merge pull request #2893 from dlglin/refactor-check-modules
drgrice1 Feb 17, 2026
490e7ab
Fix an issue with adding or updating users when the accomodation_time…
drgrice1 Feb 12, 2026
342470f
Make the problem graders also save the sub_status when needed.
drgrice1 Dec 30, 2025
a13cf72
Fix three issues with display of answers on the problem grader page.
drgrice1 Jan 19, 2026
cf4d05c
Implement LTI 1.3 dynamic registration with the LMS.
drgrice1 Sep 1, 2025
f41c45d
Improvements for the problem renderer on the problem grader page.
drgrice1 Dec 18, 2025
8b87e00
Merge pull request #2875 from drgrice1/bugfix/grader-save-sub-status
pstaabp Feb 23, 2026
7ed9188
Merge pull request #2911 from drgrice1/bugfix/add-user-accomodation-t…
pstaabp Feb 23, 2026
8cd3418
Merge pull request #2892 from drgrice1/bugfix/problem-grader-answer-d…
pstaabp Feb 23, 2026
8cd61ee
Merge pull request #2798 from drgrice1/lti-dynamic-registration
pstaabp Feb 24, 2026
7175c39
Merge pull request #2865 from drgrice1/problem-grader-answers
pstaabp Feb 24, 2026
42893ad
Merge pull request #2869 from somiaj/unopened-set-preview
pstaabp Feb 24, 2026
d6d61fb
Upgrade MathJax to 4.1.1.
drgrice1 Feb 24, 2026
3c1af12
Preserve the entered answer when the "Show Correct Answers" button is…
drgrice1 Feb 25, 2026
93b718e
Show set description on ProblemSet page.
somiaj Feb 26, 2026
434f9a5
Merge pull request #2920 from somiaj/description-on-problem-set-page
drgrice1 Mar 3, 2026
5424afc
Merge pull request #2916 from drgrice1/another-mathjax-upgrade
pstaabp Mar 10, 2026
3703f7f
Merge pull request #2918 from drgrice1/bugfix/show-correct-preserve-a…
pstaabp Mar 10, 2026
e510b97
Remove the restriction that a close date be within 10 years when edit…
drgrice1 Mar 7, 2026
b898ff1
Fix npm security vulnerabilities.
drgrice1 Mar 10, 2026
aa330db
Merge pull request #2928 from drgrice1/allow-close-date-more-10
pstaabp Mar 10, 2026
4d198b5
Merge pull request #2929 from drgrice1/fix-npm-security-vulnerabilities
somiaj Mar 10, 2026
8bbc96c
Add completed time to test output.
somiaj Jan 26, 2026
c32fda0
ProblemSets: Place set description in info button.
somiaj Mar 3, 2026
7c7368e
Remove student statistics.
somiaj Feb 18, 2026
4b24839
No longer share siblings template between Stats and StudentProgress.
somiaj Feb 18, 2026
de5edce
Merge pull request #2925 from somiaj/description-info-icon
pstaabp Mar 10, 2026
c62f680
Merge pull request #2904 from somiaj/test-end-time
drgrice1 Mar 10, 2026
3567f60
Merge pull request #2913 from somiaj/remove-student-stats
drgrice1 Mar 10, 2026
6333712
License clarification.
somiaj Mar 10, 2026
dcabc83
Wrap long lines
dlglin Mar 13, 2026
577fbd1
Change the version of the `bs-color-scheme.js` MathJax extension.
drgrice1 Mar 13, 2026
afe6ef2
Make `check_modules.pl` check for node version 20 or newer.
drgrice1 Mar 16, 2026
1831f2b
Update the webwork2.pot file.
drgrice1 Mar 17, 2026
63fb4d6
Merge pull request #2933 from drgrice1/develop
dlglin Mar 17, 2026
21e5a90
Merge pull request #2934 from drgrice1/update-localization
dlglin Mar 17, 2026
da5fce6
Merge pull request #2930 from somiaj/update-license
dlglin Mar 17, 2026
cc358e3
Merge pull request #2931 from drgrice1/update-mathjax-bs-color-scheme…
dlglin Mar 17, 2026
d8f4969
Merge pull request #2906 from dlglin/clarify-extension-messages
somiaj Mar 24, 2026
01f4401
Rework PG error/warning/debug message handling.
drgrice1 Mar 22, 2026
8005997
Fix an npm dependency security vulnerability.
drgrice1 Mar 25, 2026
7fea621
Merge pull request #2937 from drgrice1/npm-security-vulnerability
somiaj Mar 25, 2026
68f98e2
Fix resurrect achievement items
dlglin Mar 26, 2026
2a4996a
fix resurrect achievement items
dlglin Mar 26, 2026
1ccb538
Fix maketext call
dlglin Mar 26, 2026
1002f4d
Fix an issue with MathJax CHTML mode.
drgrice1 Mar 29, 2026
9fdc8e7
Merge pull request #2939 from drgrice1/bugfix/mathjax-chtml
somiaj Mar 29, 2026
dc307b0
Merge pull request #2935 from drgrice1/pg-message-rework
dlglin Mar 31, 2026
9d35e20
Add point input to ProblemGrader.
somiaj Feb 26, 2026
040c8b7
Merge pull request #2921 from somiaj/add-points-to-grader
dlglin Mar 31, 2026
30d712a
Merge remote-tracking branch 'origin/main' into WeBWorK-2.21
drgrice1 Mar 31, 2026
f3d3af8
Fix some layout and validation issues.
drgrice1 Mar 31, 2026
08a38fe
show desired course ID in messages for when course does not exist
Alex-Jordan Apr 6, 2026
fb3b720
Merge pull request #2943 from Alex-Jordan/archive
somiaj Apr 7, 2026
983c1c6
Merge pull request #2941 from drgrice1/bugfix/layout-issues
dlglin Apr 8, 2026
df014ba
Fix a minor issue with the datepicker.
drgrice1 Apr 7, 2026
0b4f1c0
Properly scope the `.sortable-ghost` style for the problem set detail…
drgrice1 Apr 8, 2026
33a5395
PGProblemEditor: Add option to copy auxiliary files.
somiaj Mar 3, 2026
b9baeec
Update the PG CodeMirror Editor.
drgrice1 Apr 12, 2026
4ced828
Add horizontal padding to set info icon.
somiaj Apr 9, 2026
057df45
Fix a minor issue resulting from #2935.
drgrice1 Apr 13, 2026
34bfbe6
Add controller object to can_use
dlglin Apr 13, 2026
fa2fa2f
Merge branch 'WeBWorK-2.21' into fix-resurrect
dlglin Apr 13, 2026
f7a5a94
Update lib/WeBWorK/AchievementItems/ResurrectHW.pm
dlglin Apr 14, 2026
447cecb
Update lib/WeBWorK/AchievementItems/ResurrectHW.pm
dlglin Apr 14, 2026
25c9dc6
Update lib/WeBWorK/AchievementItems/ResurrectGW.pm
dlglin Apr 14, 2026
c253294
Remove PRINT_FILE_NAMES_FOR and PRINT_FILE_NAMES_PERMISSION_LEVEL
dlglin Apr 17, 2026
a70fc6f
perltidy
dlglin Apr 17, 2026
b509bf0
Fix the reference link tooltips on the PG Problem Editor page.
drgrice1 Apr 18, 2026
c5be042
Completely remove the `courseOptions` option for the `addCourse` method.
drgrice1 Apr 20, 2026
14c0552
Merge pull request #2946 from somiaj/modify-info-set-desc
drgrice1 Apr 21, 2026
920897b
Merge pull request #2938 from dlglin/fix-resurrect
drgrice1 Apr 21, 2026
3f42639
Merge pull request #2922 from somiaj/copy-aux-files-option
dlglin Apr 21, 2026
0ec388f
Merge pull request #2953 from drgrice1/fix-pgedit-reference-link-tool…
dlglin Apr 21, 2026
e8c293f
Merge pull request #2949 from drgrice1/bugfix/show-top-warn-pgcore-wa…
dlglin Apr 21, 2026
07444a2
Merge pull request #2948 from drgrice1/update-pg-codemirror-editor
dlglin Apr 21, 2026
f02d2f7
Merge pull request #2944 from drgrice1/bugfix/datepicker
dlglin Apr 21, 2026
4e047f8
Merge pull request #2945 from drgrice1/scope-psd-css
dlglin Apr 21, 2026
83f37e0
Merge pull request #1 from drgrice1/remove-print-file-names-for-cleanup
dlglin Apr 21, 2026
5911a98
Update the version to 2.21 and the copyright years to include 2026.
drgrice1 Apr 21, 2026
002517b
Fix new npm vulnerability (postcss).
drgrice1 Apr 26, 2026
2a56815
Merge pull request #2960 from drgrice1/fix-new-npm-vulnerability
somiaj Apr 28, 2026
bce3a68
Merge pull request #2952 from dlglin/remove-print-file-names-for
somiaj Apr 28, 2026
77fcce3
Fix an issue with the `addcourse` script.
drgrice1 Apr 22, 2026
01519d4
Merge pull request #2957 from drgrice1/bugfix/another-accommodation-t…
pstaabp Apr 28, 2026
0b1fa1c
Merge pull request #2956 from drgrice1/update-version-and-copyright
pstaabp Apr 28, 2026
e514166
Fix the `change_user_id` script for the case that a user does not hav…
drgrice1 Apr 14, 2026
507ba4d
Fix division by zero in {Full,Half}CreditSet Items.
somiaj May 3, 2026
a137f24
Fix grading proctored tests that require proctor authorization to do so.
drgrice1 May 6, 2026
fbb186f
Make sure that a proctored test becomes unproctored when graded by in…
drgrice1 May 6, 2026
0501be7
Fix the active colors of the selected test or filter in the test nav.
drgrice1 May 6, 2026
3bc49ca
Fix an invalid localization string in a maketext call.
drgrice1 May 16, 2026
e833a82
Merge pull request #2977 from drgrice1/bugfix/localization-bracket
Alex-Jordan May 17, 2026
f445baf
Merge pull request #2968 from drgrice1/bugfix/gateway-test-proctor-grade
Alex-Jordan May 18, 2026
8ab7c33
Merge pull request #2969 from drgrice1/fix-grading-overtime-proctored…
Alex-Jordan May 18, 2026
dfcd6e0
Merge pull request #2970 from drgrice1/dark-mode-test-nav-colors
Alex-Jordan May 18, 2026
e1f08b1
Merge pull request #2966 from somiaj/bugfix-credit-set-items
Alex-Jordan May 18, 2026
d1560a4
Merge pull request #2950 from drgrice1/bugfix/change_user_id
Alex-Jordan May 18, 2026
2c92b48
Fix colors on the proctor login page for dark mode.
drgrice1 May 6, 2026
0d61a75
Merge pull request #2974 from drgrice1/dark-mode-proctor-login-alt
somiaj May 18, 2026
4ee0094
Improve the speed of the database user retrieval for the student nav.
drgrice1 May 13, 2026
a3d5379
Switch to getting all users from the database and filtering via Perl.
drgrice1 May 18, 2026
5890b0d
Merge remote-tracking branch 'origin/main' into WeBWorK-2.21
drgrice1 May 18, 2026
cf7d744
Remove the `Demo` set.
drgrice1 Dec 19, 2025
3efedc2
Merge pull request #2979 from drgrice1/setDemo-remove
pstaabp May 19, 2026
3d4a619
Remove a symbolic link accidentally added in #2979.
drgrice1 May 19, 2026
4d47dd4
Merge pull request #2980 from drgrice1/demo-link-oops
pstaabp May 19, 2026
980a79f
Merge pull request #2975 from drgrice1/student-nav-speed-tweak
somiaj May 19, 2026
d82338c
Fix the test nav.
drgrice1 May 19, 2026
216973d
Merge pull request #2981 from drgrice1/bugfix/gateway-test-nav
somiaj May 19, 2026
fc9021d
Add extension time factor setting.
somiaj May 2, 2026
1a4bda6
Better keep track of which sets are complete in achievements.
somiaj May 2, 2026
6f02778
Rework resizing of the problem editor.
drgrice1 Apr 18, 2026
7a3d557
Perhaps fix the Mac alternate key bindings.
drgrice1 May 18, 2026
5b5b8b5
Merge pull request #2965 from somiaj/add-extension-time-setting
Alex-Jordan May 19, 2026
2e09c5e
Merge pull request #2964 from somiaj/add-completed-set-ids
Alex-Jordan May 19, 2026
784b035
Merge pull request #2954 from drgrice1/pgeditor-resizing
Alex-Jordan May 21, 2026
8bebdc7
Initial work on new student grades page.
somiaj Feb 19, 2026
ff2ee3a
Add weights and option to hide/show weights/attempts to Grades.
somiaj May 21, 2026
fd8f3d1
Updates from code review.
somiaj May 23, 2026
c699698
Merge pull request #2917 from somiaj/new-grades-page
drgrice1 May 23, 2026
9985d90
Cleanup modelCourse achievements.
somiaj May 21, 2026
b0cf69b
Update npm dependencies to latest versions.
drgrice1 Apr 20, 2026
3316fea
Update the required version of node to 22.
drgrice1 May 23, 2026
41edfe3
Merge pull request #2986 from drgrice1/update-npm-dependencies
Alex-Jordan May 24, 2026
2ddb85c
update the Student Orientation for MathJax 4
Alex-Jordan May 23, 2026
9270596
Merge pull request #2984 from somiaj/clean-achievements
Alex-Jordan May 24, 2026
2f02612
Merge pull request #2985 from Alex-Jordan/mathjax4-student-orientation
somiaj May 26, 2026
c70e083
Fix issues with reseting two-factor authentication in the accounts ma…
drgrice1 May 26, 2026
5061879
Fix an invalid import that is causing warnings.
drgrice1 May 26, 2026
f1cefc3
Merge pull request #2988 from drgrice1/bugfix/instructor-2fa-reset
Alex-Jordan May 27, 2026
6926afe
Switch `package-lock.json` to lockfile version 3.
drgrice1 May 27, 2026
3ddf241
Minor clean up in the htdocs directory.
drgrice1 May 27, 2026
812a883
Merge pull request #2987 from drgrice1/bugfix/invalid-import
somiaj May 27, 2026
d2cf4e2
Merge pull request #2989 from drgrice1/lockfile-version-3
Alex-Jordan May 27, 2026
7b6ae48
Merge pull request #2990 from drgrice1/minor-htdocs-cleanup
Alex-Jordan May 27, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .github/FUNDING.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,4 @@ community_bridge: # Replace with a single Community Bridge project-name e.g., cl
liberapay: # Replace with a single Liberapay username
issuehunt: # Replace with a single IssueHunt username
otechie: # Replace with a single Otechie username
custom: ["https://webwork.maa.org/wiki"]
custom: ['https://wiki.openwebwork.org/wiki']
2 changes: 1 addition & 1 deletion .github/workflows/check-formats.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ jobs:
run: |
git config --global --add safe.directory "$GITHUB_WORKSPACE"
shopt -s extglob globstar nullglob
perltidy --pro=./.perltidyrc -b -bext='/' ./**/*.p[lm] ./**/*.t && git diff --exit-code
perltidy --pro=./.perltidyrc -b -bext='/' ./**/*.p[lm] ./**/*.t ./**/*.at && git diff --exit-code

prettier:
name: Check JavaScript, style, and HTML file formatting with prettier
Expand Down
2 changes: 1 addition & 1 deletion DockerfileStage2
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ RUN echo Cloning branch $PG_BRANCH branch from $PG_GIT_URL \

# We need to change FROM before setting the ENV variables.

FROM webwork-base:forWW220
FROM webwork-base:forWW221

ENV WEBWORK_URL=/webwork2 \
WEBWORK_ROOT_URL=http://localhost:8080 \
Expand Down
18 changes: 9 additions & 9 deletions LICENSE
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
Online Homework Delivery System
Version 2.*

Copyright 2000-2025, The WeBWorK Project
Copyright 2000-2026, The WeBWorK Project

All rights reserved.

Expand All @@ -13,19 +13,19 @@
Software Foundation; either version 2, or (at your option)
any later version, or

b) the "Artistic License" which comes with this package.
b) the "Artistic License" 1.0 which comes with this package.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See either
the GNU General Public License or the Artistic License for more details.

You should have received a copy of the Artistic License with this
package, in the file named "Artistic" inside the `doc` folder. If not, we'll be glad to provide
one.
You should have received a copy of the Artistic License 1.0 with this
package, in the file named "Artistic" inside the `doc` folder. If not,
you can find a copy at https://github.com/openwebwork/webwork2/blob/main/doc/Artistic
or https://perlfoundation.org/artistic-license-10.html.

You should also have received a copy of the GNU General Public License
along with this program in the file named "Copying" inside the `doc` folder. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307, USA or visit their web page on the internet at
http://www.gnu.org/copyleft/gpl.html.
along with this program in the file named "Copying" inside the `doc` folder.
If not, you can find a copy at https://github.com/openwebwork/webwork2/blob/main/doc/Copying
or https://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
45 changes: 23 additions & 22 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,34 +1,35 @@
WeBWorK
Online Homework Delivery System
Version 2.*
Branch: github.com/openwebwork

https://webwork.maa.org/wiki/Release_notes_for_WeBWorK_2.20
Copyright 2000-2025, The WeBWorK Project
https://openwebwork.org/
All rights reserved.

# Welcome to WeBWorK

WeBWorK is an open-source online homework system for math and sciences courses. WeBWorK is supported by the MAA and the NSF and comes with an Open Problem Library (OPL) of over 30,000 homework problems. Problems in the OPL target most lower division undergraduate math courses, some advanced courses and some other STEM subjects. Supported courses include college algebra, discrete mathematics, probability and statistics, single and multivariable calculus, differential equations, linear algebra and complex analysis. Find out more at the main WeBWorK [webpage](https://openwebwork.org).
WeBWorK is an open-source online homework system for math and sciences courses. WeBWorK is supported by the MAA and the
NSF and comes with an Open Problem Library (OPL) of over 30,000 homework problems. Problems in the OPL target most lower
division undergraduate math courses, some advanced courses and some other STEM subjects. Supported courses include
college algebra, discrete mathematics, probability and statistics, single and multivariable calculus, differential
equations, linear algebra and complex analysis. Find out more at the main WeBWorK [webpage](https://openwebwork.org).

## Information for Users

New users interested in getting started with their own WeBWorK server, or instructors looking to learn more about how to use WeBWorK in their classes, should take a look at one of the following resources:
New users interested in getting started with their own WeBWorK server, or instructors looking to learn more about how to
use WeBWorK in their classes, should take a look at one of the following resources:

* The [WeBWorK project home page](https://openwebwork.org/) - General information and resources including announcements of events and important project news
* [WeBWorK wiki](https://webwork.maa.org/wiki/Main_Page) - The main WeBWorK wiki
* [Installing WeBWorK](https://webwork.maa.org/wiki/Manual_Installation_Guides) - Installing WeBWorK
* [Instructors](https://webwork.maa.org/wiki/Instructors) - Information for Instructors
* [Problem Authors](https://webwork.maa.org/wiki/Authors) - Information for Problem Authors
* [Forum](http://webwork.maa.org/moodle/mod/forum/index.php?id=3) - The WeBWorK Forum for getting help from the community
* [Frequently Asked Questions](https://github.com/openwebwork/webwork2/wiki/Frequently-Asked-Questions) - A list of frequently asked questions.
- The [WeBWorK project home page](https://openwebwork.org/) - General information and resources including announcements
of events and important project news
- [WeBWorK wiki](https://wiki.openwebwork.org/wiki/Main_Page) - The main WeBWorK wiki
- [Installing WeBWorK](https://wiki.openwebwork.org/wiki/Manual_Installation_Guides) - Installing WeBWorK
- [Instructors](https://wiki.openwebwork.org/wiki/Instructors) - Information for Instructors
- [Problem Authors](https://wiki.openwebwork.org/wiki/Authors) - Information for Problem Authors
- [Forum](https://forums.openwebwork.org/mod/forum/index.php?id=3) - The WeBWorK Forum for getting help from the
community
- [Frequently Asked Questions](https://github.com/openwebwork/webwork2/wiki/Frequently-Asked-Questions) - A list of
frequently asked questions.

## Information for Downloading

* Installation manuals can be found at https://webwork.maa.org/wiki/Category:Installation_Manuals
- See the [installation manuals](https://wiki.openwebwork.org/wiki/Category:Installation_Manuals).

## Information For Developers

* People interested in developing new features for WeBWorK can start at https://webwork.maa.org/wiki/Category:Developers, or start a [discussion on GitHub](https://github.com/openwebwork/webwork2/discussions) to engage with the current developers.
* People interested in developing new problems for WeBWorK should visit [Problem Authors](http://webwork.maa.org/wiki/Authors).
- People interested in developing new features for WeBWorK can start at the wiki
[development page](https://wiki.openwebwork.org/wiki/Category:Developers), or start a
[discussion on GitHub](https://github.com/openwebwork/webwork2/discussions) to engage with the current developers.
- People interested in developing new problems for WeBWorK should visit the wiki
[problem authoring page](https://wiki.openwebwork.org/wiki/Authors).
4 changes: 2 additions & 2 deletions VERSION
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
$WW_VERSION = '2.20';
$WW_COPYRIGHT_YEARS = '1996-2025';
$WW_VERSION = '2.21';
$WW_COPYRIGHT_YEARS = '1996-2026';

1;
2 changes: 1 addition & 1 deletion assets/hardcopyThemes/basic.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

<description>
This theme produces hardcopies with minimal page headers displaying the set
title and useername, and minimal problem numbering.
title and username, and minimal problem numbering.
</description>

<preamble>
Expand Down
2 changes: 1 addition & 1 deletion assets/hardcopyThemes/basicTwoCol.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

<description>
This theme produces hardcopies with minimal page headers displaying the set
title and useername, and minimal problem numbering. With two columns.
title and username, and minimal problem numbering. With two columns.
</description>

<preamble>
Expand Down
4 changes: 2 additions & 2 deletions assets/pg/PGMLLab/PGML-lab.pg
Original file line number Diff line number Diff line change
Expand Up @@ -682,9 +682,9 @@ TEXT(tag(
>> At the right

>> Several lines combined.
>> right justfied
>> right justified

>> Or a whole paragaph
>> Or a whole paragraph
that is pushed to the right

>> Or two lines
Expand Down
Binary file added assets/pg/Student_Orientation/discriminant.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
6 changes: 3 additions & 3 deletions assets/pg/Student_Orientation/enteringMath.pg
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,9 @@ expression automatically is converted to look like [::pi/sqrt(x+1)::]. [_]{Conte

Occasionally you will want to answer with raw text that should not be converted into a math expression. For example, if
the answer is a word. For this kind of answer, you should enter "text mode". There is a "Tt" button on the palette that
enters and exits text mode. You can also use the [|"|]* character to enter text mode, and then exit with the [|tab|]*
key or right arrow. Try answering the following with and without using text mode. The answer is [|pirate|]*:
[_]{Context("Numeric")->strings->add(pirate => {}), 'pirate'}{16}.
enters and exits text mode. You can also use the double quote character ([|"|]*) to enter text mode, and then exit with
the [|tab|]* key or right arrow. Try answering the following with and without using text mode. The answer is [|web|]*:
[_]{Context("Numeric")->strings->add(web => {}), 'web'}{16}.

The palette tool might be a distraction, especially to keyboard-only users. You can disable it by right-clicking (or
control-clicking) in an answer blank. To "right click" without a mouse:
Expand Down
Binary file modified assets/pg/Student_Orientation/explorerfull.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/pg/Student_Orientation/explorerpiece.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
69 changes: 43 additions & 26 deletions assets/pg/Student_Orientation/mathInteraction.pg
Original file line number Diff line number Diff line change
Expand Up @@ -26,37 +26,54 @@ Once focus is on a math expression, using the space bar will activate the "MathJ
by right-clicking (Windows/Linux) or [|control|]*-clicking (MacOS) a piece of math. Try activating the MathJax menu now.
It should look like the following.

>> [!MathJax contextual menu!]{'mathjaxmenu.png'} <<
>> [!MathJax contextual menu!]{'mathjaxmenu.png'}{140} <<

There are many features that help you to engage with math content. Explore the menu options to survey what is available.

We will now point out a few important features. In the main menu, there is a "Math Settings" submenu. The "Zoom Trigger"
and "Zoom Factor" items allow you to control if/how math content is magnified. Magnification may help users with some
vision disabilities see the content better. And it may help all users to see some details of math notation better. Take
a moment to explore these settings and select options that you would be comfortable with. (Of course you can change
these settings at any time.)

Also in the main menu, there is an "Accessibility" submenu. In that menu, if accessibility is not already activated,
select "Activate". After activating this, you may need to refresh the web page to see the math expression again. Now you
have the option to see math content verbalized. To do this, place focus onto a math expression and hit [|enter|]*.
* At first, the entire expression is highlighted and there will be a verbal rendering of the expression.
[!Speech string for the quadratic formula!]{'explorerfull.png'}{600}
* Use the down arrow to navigate "down" into a smaller piece of the math expression.
* Use the left/right arrows to navigate to similar pieces of the math expression.
* At any time you can navigate back "up" to a larger part of the expression, or "down" into smaller pieces. For example,
you can see a verbalization for just this part of the expression above:
[!Speech string for the radicand of the quadratic formula!]{'explorerpiece.png'}{600}
* Return to the MathJax menu, Accessibility submenu, to explore options for how this explorer tool works.
* Under "Speech" you will find options to use MathSpeak, ClearSpeak, or ChromeVox rules. The default is to use
"MathSpeak verbose" rules, which try try to read math "literally" without context. For example, it reads [`(1,3)`] as
"left parenthesis 1 comma 3 right parenthesis". Other speech rules can produce more meaningful verbal renderings. For
example with the right ClearSpeak settings, the same math expression produces "the point with coordinates 1 comma 3"
or "the interval from 1 to 3 not including 1 or 3".
### Enlarging Math

In the main menu, there is a "Math Settings" submenu. The "Zoom Trigger" and "Zoom Factor" items allow you to control
if/how math content is magnified. Magnification may help users with some vision disabilities see the content better.
And it may help all users to see some details of math notation better. Take a moment to explore these settings and
select options that you would be comfortable with. (Of course you can change these settings at any time.)

### Navigating Math

When focus is on a piece of math content, there is a small help icon in the upper right. Click this icon to see a guide
for how to navigate inside the math content. This can help you understand the meaning of the math content. For example,
here we have navigated to the piece of math content inside the radical:

[!Highlighting the discriminant in the quadratic formula!]{'discriminant.png'}{600}

### Subtitles for Math

Also in the main menu, there is an "Accessibility" submenu. Accessibility is enabled by default, but you can also select
"Show Subtitles" in the "Speech" submenu. This allows you to see math content verbalized. To do this, place focus onto
a math expression and hit [|enter|]*. At first, the entire expression is highlighted and there will be a verbal
rendering of the expression.
[!Speech string for the quadratic formula!]{'explorerfull.png'}{735}

As you navigate within the math using arrows, you can see verbalizations of the corresponding pieces:

[!Speech string for the radicand of the quadratic formula!]{'explorerpiece.png'}{735}

Under "Speech" you will find options for MathSpeak and ClearSpeak rules. The default is to use "MathSpeak verbose"
rules, which try try to read math "literally" without context. For example, it reads [`(1,3)`] as "left parenthesis 1
comma 3 right parenthesis". Other speech rules can produce more meaningful verbal renderings. For example with the right
ClearSpeak settings, the same math expression produces "the point with coordinates 1 comma 3" or "the interval from 1 to
3 not including 1 or 3".

### Voicing Math Out Loud

When focus is on math content, use the [|s|]* character to hear the math spoken. If you would like math to always be
spoken whenever focus lands on math, check Auto Voicing in the Speech menu.

### Disabling Tab Indexing

Some keyboard-navigating users might find it undesirable for each piece of math content to be tab-indexed. If this is
the case, then in the "Accessibility" sub menu you can uncheck "Include in Tab Order". Just note that in order to undo
this and make math content tabbable again, you will need to access the menu, and so you will need some way other than
tabbing to bring focus back to a piece of math content.
the case, then in the "Options" submenu of the "Accessibility" submenu you can uncheck "Include in Tab Order" and
"Semantic Enrichment". Just note that in order to undo this and make math content tabbable again, you will need to
access the menu, and so you will need some way other than tabbing to bring focus back to a piece of math content.
END_BODY

$images = <<END_BODY;
Expand Down
Binary file modified assets/pg/Student_Orientation/mathjaxmenu.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading