Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1418 commits
Select commit Hold shift + click to select a range
7cf323d
trim and alphabetize URLs in feedback emails
Alex-Jordan Feb 1, 2025
e7f0af0
make it so URLs in feedback emails always show the problem grader
Alex-Jordan Feb 1, 2025
aed3a73
Construct the emailable URL directly and don't use systemLink for that.
drgrice1 Feb 1, 2025
313eb68
Fix a debugging messages in the `formatRenderedProblem` method.
drgrice1 Jan 25, 2025
b1f4114
Merge pull request #34 from drgrice1/email-format-suggested-changes
Alex-Jordan Feb 2, 2025
a1b2955
Merge pull request #2523 from somiaj/reduced-cred-achievement-items
Alex-Jordan Feb 2, 2025
56d153d
Merge pull request #2579 from somiaj/achievement-leader-board
Alex-Jordan Feb 2, 2025
ada1b90
Merge pull request #2641 from somiaj/grade-test-for-others
Alex-Jordan Feb 2, 2025
7a31cc9
make only outer edge of achivements images transparent and fix a miss…
Alex-Jordan Feb 2, 2025
1506512
Merge pull request #2665 from Alex-Jordan/achievement-images
drgrice1 Feb 2, 2025
f1da2b1
Merge pull request #2662 from drgrice1/bugfix/format-rendered-debug-m…
pstaabp Feb 4, 2025
a7ab729
Switch the problem editor to use the debug format.
drgrice1 Feb 4, 2025
8699e27
Rework problem data (or the persistence hash).
drgrice1 Aug 5, 2023
8f0253a
Recompute timezone adjustments for a given date.
drgrice1 Jan 10, 2025
6f094c0
Merge pull request #2666 from drgrice1/pg-editor-debug-format
pstaabp Feb 11, 2025
39e62bf
Merge pull request #2649 from Alex-Jordan/email-format
drgrice1 Feb 11, 2025
db2c703
Merge pull request #2655 from drgrice1/timezone-adjust
pstaabp Feb 11, 2025
28b21ed
Merge pull request #2644 from drgrice1/persistent-data-rework
pstaabp Feb 11, 2025
82153a1
Split the CourseIntegrityCheck.pm module into two parts.
drgrice1 Aug 19, 2023
d9b8fcb
Add the capability of changing database field types when upgrading th…
drgrice1 Dec 19, 2024
a96f56a
Report the types of the fields that differ.
drgrice1 Jan 16, 2025
939f895
Don't show the "This problem uses the same source file as number N." …
drgrice1 Feb 13, 2025
fc7f210
Copy set level proctors when adding a course and copying sets.
drgrice1 Feb 13, 2025
a4806de
Make the Library Browser "Hints", "Solutions", and "Include Contrib" …
drgrice1 Feb 14, 2025
f78042a
Add the "Grader" header back to the Assignments when the "Grade Probl…
drgrice1 Feb 14, 2025
da75967
Merge pull request #2674 from drgrice1/bugfix/problem-list-missing-he…
Alex-Jordan Feb 18, 2025
d455f7b
Merge pull request #2673 from drgrice1/set-maker-checks-on
Alex-Jordan Feb 18, 2025
45224fc
Merge pull request #2671 from drgrice1/grouping-sets-can-be-repeated
Alex-Jordan Feb 18, 2025
d3997e0
Merge pull request #2650 from drgrice1/course-integrity-check-rework
Alex-Jordan Feb 18, 2025
ab56984
Merge pull request #2672 from drgrice1/copy-set-level-proctors-with-sets
somiaj Feb 18, 2025
e5fbbe2
When sorting achievements, make level achievements last.
somiaj Dec 16, 2024
555cb4e
Clarify that level achievements are listed and evaluated last.
somiaj Feb 18, 2025
b45b5ae
Actually handle failure to find a problem from a grouping set gracefu…
drgrice1 Feb 13, 2025
6fda742
Move achievement item use form to ProblemSet page.
somiaj Jan 23, 2025
a2bdaed
Updates to achievement items from feedback.
somiaj Feb 2, 2025
d663d9c
Remove use button from surprise achievement item.
somiaj Feb 2, 2025
6121f56
Use a hash vs an array to store user problems when using achievement …
somiaj Feb 2, 2025
3625914
Don't show use reward button when achievements are enabled but achiev…
somiaj Feb 2, 2025
9b53849
Apply suggested changes from drgrice1 in PR review.
somiaj Feb 16, 2025
304886f
Remove number of remaining items from Surprise.
somiaj Feb 16, 2025
58c747b
Merge pull request #2664 from somiaj/change-achievement-items-applica…
Alex-Jordan Feb 18, 2025
55b342b
Catch network errors that result from a keyset URL not working properly.
drgrice1 Feb 18, 2025
2528145
Switch the feedback emails to HTML.
drgrice1 Feb 16, 2025
63d59f8
Bring back the previous text message for a text fallback.
drgrice1 Feb 17, 2025
fc8515b
Remove the "click me" link.
drgrice1 Feb 18, 2025
a4100dd
Small typo on the Sample Problem category
pstaabp Feb 25, 2025
091efac
Merge pull request #2678 from pstaabp/sample-problem-typo
somiaj Feb 25, 2025
a27d643
Merge pull request #2675 from drgrice1/feedback-email-html
pstaabp Feb 25, 2025
c988719
Merge pull request #2670 from drgrice1/graceful-grouping-set-failure
Alex-Jordan Feb 25, 2025
d77931e
Merge pull request #2676 from drgrice1/lti-1_3-keyset-network-error
Alex-Jordan Feb 25, 2025
bb23dbc
PG Problem Editor file selector
drgrice1 Feb 19, 2025
a8f0868
Update the pg-codemirror-editor to pull in a bugfix.
drgrice1 Mar 1, 2025
79dced1
Merge pull request #2677 from drgrice1/problem-editor-file-chooser
pstaabp Mar 4, 2025
06e1712
Merge pull request #2679 from drgrice1/pg-codemirror-editor-update
pstaabp Mar 4, 2025
f6fbbf3
Check paths before rendering static files.
drgrice1 Mar 13, 2025
18a5b44
Check paths before rendering static files.
drgrice1 Mar 13, 2025
4184aae
Merge pull request #2682 from drgrice1/check-download-file-paths
dlglin Mar 13, 2025
4c05f12
Merge pull request #2683 from drgrice1/check-download-file-paths-hotfix
dlglin Mar 13, 2025
e074766
Add missing maketext call.
drgrice1 Mar 14, 2025
0571001
when copying a course including its sets, don't copy the lis_source_i…
Alex-Jordan Mar 18, 2025
e6abfa5
Merge pull request #2685 from drgrice1/add-missing-maketext
Alex-Jordan Mar 18, 2025
ef05f1a
Merge pull request #2643 from somiaj/sort-level-achievements-last
Alex-Jordan Mar 18, 2025
0243e2a
Update the strings in the webwork2.pot file.
drgrice1 Mar 18, 2025
370f2b7
Properly quote file names in the regexp used to extract backup times.
drgrice1 Mar 18, 2025
a80be41
Do not consider parentheses to be illegal characters in file names in…
drgrice1 Mar 18, 2025
f6d0dbd
Merge pull request #2688 from drgrice1/problem-editor-backup-times-qu…
pstaabp Mar 25, 2025
fa947ff
Merge pull request #2687 from drgrice1/localization-update
pstaabp Mar 25, 2025
ded52af
Merge pull request #2686 from Alex-Jordan/no-copy-lis-id
pstaabp Mar 25, 2025
747b083
Rework the warning and exception handling in the config file safe com…
drgrice1 Mar 30, 2025
3b9a306
Fix an issue with conflicting JSON modules in use in FormatRenderedPr…
drgrice1 Apr 2, 2025
a4388bf
Instead of a local `die` handler share a variable to the safe compart…
drgrice1 Apr 3, 2025
5e81aa9
Replace all of webwork2's direct `JSON` usage with `Mojo::JSON`.
drgrice1 Apr 4, 2025
0bfc8e0
Completely remove the `JSON` dependency by switching PG to using `Moj…
drgrice1 Apr 4, 2025
4970e0e
Merge pull request #2689 from drgrice1/improve-course-environment-err…
Alex-Jordan Apr 5, 2025
6395021
Merge pull request #2692 from drgrice1/format-rendered-problem-json-c…
Alex-Jordan Apr 5, 2025
0c28eae
Sanitize the courseID from either the URL path or the request paramet…
drgrice1 Apr 2, 2025
b8e663a
Merge pull request #2691 from drgrice1/sanitize-course-name
somiaj Apr 8, 2025
b930fe0
Add a couple of `use Mojo:JSON` statements that are needed.
drgrice1 Apr 6, 2025
2a7a209
Also remove the json packages from the docker build.
drgrice1 Apr 8, 2025
0030b92
enhance doc2 for achievements
Alex-Jordan Apr 11, 2025
7b813ba
Merge pull request #2695 from drgrice1/json-issues
Alex-Jordan Apr 15, 2025
ad18de4
Fix random order page change issue.
drgrice1 Apr 11, 2025
8ee41c0
Merge pull request #2701 from Alex-Jordan/achievement-help
somiaj Apr 15, 2025
1de70d2
Merge pull request #2699 from drgrice1/gateway-random-order-page-change
somiaj Apr 15, 2025
e93db54
Restore previous behavior of the "Scroll of Resurrection" achievement…
drgrice1 Apr 18, 2025
7516cc3
Adjust the message that is displayed when the scroll of resurrection …
drgrice1 Apr 18, 2025
9fb8bb6
Also revert changes to the "Necromancer Charm".
drgrice1 Apr 18, 2025
50143e0
LTI section identification
Alex-Jordan Apr 15, 2025
688fd34
Merge pull request #2707 from drgrice1/resurrection-achievement-reset
Alex-Jordan Apr 21, 2025
f0256d7
Fix the import form date shift input on the sets manager page.
drgrice1 Apr 22, 2025
ad17123
changes to email template for feedback
Alex-Jordan Apr 20, 2025
20ef0a9
Update templates/ContentGenerator/Feedback/feedback_email.html.ep
Alex-Jordan Apr 23, 2025
7a94bab
style "last submission" row to make it more clearly delimited in HTML…
Alex-Jordan Apr 24, 2025
bacfbe8
update feedback text template to be consistent with html template
Alex-Jordan Apr 24, 2025
c93a918
restore border radius and change border color in html feedback form
Alex-Jordan Apr 24, 2025
26c801c
improve message at start of feedback text template
drgrice1 Apr 24, 2025
21ff097
A little code clean up.
drgrice1 Apr 24, 2025
8c8621d
Merge pull request #35 from drgrice1/email-code-cleanup
Alex-Jordan Apr 24, 2025
2d4cbcc
Merge pull request #2717 from drgrice1/import-date-shift-fix
pstaabp Apr 26, 2025
8edb453
Merge remote-tracking branch 'origin/main' into WeBWorK-2.20
drgrice1 Apr 27, 2025
684b673
Improve loading time for the achievements leaderboard.
drgrice1 Apr 20, 2025
ebd2e99
Speed up deleting of global user achievements.
drgrice1 Apr 20, 2025
f3c27bf
Fix memory leaks.
drgrice1 Apr 14, 2025
ba749a4
Instead of weakening the controller in the around_action hook, ensure
drgrice1 Apr 17, 2025
0399c10
Merge pull request #2703 from drgrice1/memory-leaks
dlglin Apr 29, 2025
a6abcd4
Merge pull request #2709 from drgrice1/achievement-leaderboard-speed-up
dlglin Apr 29, 2025
f18833f
Merge pull request #2710 from drgrice1/delete-global-user-achievement…
dlglin Apr 29, 2025
6d725a8
Fix classlist exporting with users that do not have passwords.
drgrice1 Apr 17, 2025
3ab1d1a
Speed up class list importing.
drgrice1 Apr 21, 2025
75c1889
Fix an issue with feedback emails with text and html body, and an att…
drgrice1 Apr 4, 2025
f2e158a
Speed up loading of the "Users Assigned to Set" page.
drgrice1 Apr 21, 2025
fe65e0f
Make WebworkWebservice honor showEvaluatedAnswers when rendering a pr…
somiaj May 5, 2025
9a3e2d4
Merge pull request #2694 from drgrice1/text-html-attachment-issue
pstaabp May 6, 2025
cda2c60
Merge pull request #2714 from drgrice1/users-assigned-to-set-load-spe…
dlglin May 6, 2025
fc85f79
Merge pull request #2713 from drgrice1/classlist-import-speed-up
dlglin May 6, 2025
54d2c85
Merge pull request #2723 from somiaj/render-rpc-honor-show-eval-ans
pstaabp May 6, 2025
8070718
Merge pull request #2700 from Alex-Jordan/LTI-section
somiaj May 6, 2025
387d6dc
Merge pull request #2705 from drgrice1/classlist-export-w-missing-pas…
somiaj May 6, 2025
9d5c0ec
Change the version to 2.20 and remove the license from files.
drgrice1 Apr 29, 2025
43a71e2
Merge pull request #2722 from drgrice1/version-update
pstaabp May 6, 2025
311ec9e
Merge pull request #2708 from Alex-Jordan/email
pstaabp May 6, 2025
5f2f90d
Remove the current version in "Information for Downloading" from the …
drgrice1 May 6, 2025
87ab726
Rewrite the WeBWorK::Upload module.
drgrice1 Apr 3, 2025
ada3591
Merge pull request #2725 from drgrice1/remove-current-version-readme
pstaabp May 13, 2025
e4cecdb
Merge pull request #2693 from drgrice1/upload-utf8
pstaabp May 13, 2025
a712653
Speed up assignments of achievements.
drgrice1 Apr 20, 2025
c3cb35f
Database code clean up.
drgrice1 Apr 15, 2025
b575e55
Convert the conf/database.conf.dist file to a Perl module.
drgrice1 Apr 9, 2025
7191216
Finalize the PG CodeMirror Editor for the 2.20 release.
drgrice1 Apr 25, 2025
31188a0
Update the version one more time to include the spell check save fix.
drgrice1 May 5, 2025
eb01732
Merge pull request #2702 from drgrice1/db-layout-module
pstaabp May 13, 2025
051afdd
Merge pull request #2704 from drgrice1/db-exception-rework
pstaabp May 13, 2025
252a36a
Merge pull request #2719 from drgrice1/freeze-pg-codemirror-editor-fo…
pstaabp May 13, 2025
ddc7534
Fix file uploads.
drgrice1 May 14, 2025
e926b89
Make sure that the course directory is included in a course archive.
drgrice1 May 14, 2025
b795782
Remove the filtering of large courses on the course admin "Manage OTP…
drgrice1 Apr 24, 2025
d81c523
Protect against a user in the admin course changing or resetting thei…
drgrice1 Apr 24, 2025
d2527c6
Merge pull request #2728 from drgrice1/bugfix/upload
Alex-Jordan May 20, 2025
0cdd913
Merge pull request #2711 from drgrice1/assign-achievements-massive-sp…
Alex-Jordan May 20, 2025
d30a5d0
Speed up achievement scoring.
drgrice1 Apr 21, 2025
74ba4de
Speed up the achievement users page.
drgrice1 Apr 21, 2025
68a2f5f
Merge pull request #2712 from drgrice1/achievement-scoring-speed-up
Alex-Jordan May 20, 2025
abe7125
Merge pull request #2715 from drgrice1/achievement-user-editor-improv…
Alex-Jordan May 20, 2025
b937168
Merge pull request #2718 from drgrice1/manage-otp-remove-large-course…
Alex-Jordan May 20, 2025
19dedc5
Speed up the assignment of achievments when importing achievments.
drgrice1 May 20, 2025
cde953e
move helper tool buttons to above problem list
Alex-Jordan May 21, 2025
82ac1ff
Merge pull request #2729 from drgrice1/achievement-assign-with-import…
Alex-Jordan Jun 2, 2025
c4ef16d
Implement suggested workaround for erroneous extension loading with C…
drgrice1 Jun 3, 2025
029d767
Update the pg modules to include Plots modules.
pstaabp Mar 21, 2024
5dd5066
Rework check_modules.pl.
drgrice1 Jun 13, 2025
114d196
Merge pull request #2737 from somiaj/pgplot-libs
pstaabp Jun 17, 2025
d90c6cf
Remove old documentation
pstaabp Jun 17, 2025
79f2c55
Merge pull request #2736 from drgrice1/mathjax-chtml-issue-fix
Alex-Jordan Jun 18, 2025
5ad7734
update package lock for caniuse-lite
Alex-Jordan Jun 18, 2025
ef28c8d
change package.json and package-lock.json indentation to use tabs
Alex-Jordan Jun 18, 2025
4ae21f0
Merge pull request #2743 from Alex-Jordan/update-package-lock
drgrice1 Jun 18, 2025
07a964f
Fix two missed tabs in package-lock.json.
somiaj Jun 18, 2025
f8f5c19
Merge pull request #2744 from somiaj/fix-missed-tabs
drgrice1 Jun 18, 2025
61880f3
Merge pull request #2741 from drgrice1/check_modules-rework
Alex-Jordan Jun 18, 2025
c818053
Merge pull request #2742 from pstaabp/remove-old-docs
drgrice1 Jun 18, 2025
127bc6d
Add back the "real" upload check.
drgrice1 Jun 19, 2025
7e33f21
Merge pull request #2745 from drgrice1/bugfix/no-empty-uploads
somiaj Jun 19, 2025
ea3d51b
Merge pull request #2730 from Alex-Jordan/achievement-buttons
drgrice1 Jun 19, 2025
2069e0b
Fix an inconsequential warning when a new achievement is created.
drgrice1 Jun 19, 2025
3c03e09
ability to cap the number of problems per page in a test
Alex-Jordan Jun 3, 2025
d9a0735
Merge pull request #2746 from drgrice1/bugfix/achievement-creation-is…
Alex-Jordan Jun 19, 2025
acdfa6c
Merge pull request #2735 from Alex-Jordan/cap-problems-per-page
drgrice1 Jun 20, 2025
9451f73
give hints about password fallback
Alex-Jordan Jun 20, 2025
b9aa3b8
Merge pull request #2747 from Alex-Jordan/passwords
drgrice1 Jun 20, 2025
34435af
bring the courses.dist/modelCourse course.conf file closer to a gener…
Alex-Jordan Jun 20, 2025
378c410
Remove the localization `tense` method.
drgrice1 Jun 23, 2025
47161e4
Check the file name for valid characters when using "Save As" in the …
drgrice1 Jun 24, 2025
f2e99a8
Update the pg codemirror editor dependency to pull in quote like fat …
drgrice1 Jun 24, 2025
bc1b182
Merge pull request #2751 from Alex-Jordan/course-conf
pstaabp Jun 24, 2025
10c38dc
Merge pull request #2753 from drgrice1/localization-no-tense
Alex-Jordan Jun 24, 2025
9f8bde8
Merge pull request #2755 from drgrice1/problem-editor-save-as-check-f…
Alex-Jordan Jun 24, 2025
622dcb8
Merge pull request #2756 from drgrice1/pg-codemirror-editor-fatcomma-fix
Alex-Jordan Jun 24, 2025
92ba038
when updating courses, check for standard sylminks
Alex-Jordan Jun 20, 2025
1d1ab17
Create missing symbolic links in a course templates directory when up…
drgrice1 Jun 25, 2025
7b04983
Offer an option to fix directories and links when renaming a course.
drgrice1 Jun 26, 2025
261e667
Remove the code for OPL and Contrib set definition files.
drgrice1 Jun 26, 2025
8e76dcd
Merge pull request #2758 from drgrice1/remove-opl-contrib-set-def-code
Alex-Jordan Jun 27, 2025
0ab4513
Merge pull request #2757 from drgrice1/update-links-completion
Alex-Jordan Jun 27, 2025
180f978
Move JavaScript of LTI 1.3 login self posting form to a JS file.
taniwallach Jun 30, 2025
4bfbff2
Delete a unnecessary comment with a typo.
taniwallach Jun 30, 2025
d962f47
Merge pull request #2760 from taniwallach/js-out-of-html-templates
Alex-Jordan Jul 2, 2025
435a549
Initial Checkin of search code
pstaabp May 20, 2025
69cbd18
Rework the search box for the sample problems page.
drgrice1 Jun 27, 2025
5743ae9
Merge pull request #2759 from drgrice1/sample-problem-search
Alex-Jordan Jul 3, 2025
236070e
Fix a potential XSS vulnerability in the past answers table (the Answ…
drgrice1 Jul 3, 2025
f53500a
Fix a potential XSS vulnerability in the past answers table (the Answ…
drgrice1 Jul 3, 2025
f58e997
Merge pull request #2763 from drgrice1/past-answer-xss
pstaabp Jul 8, 2025
8fe7336
Merge pull request #2762 from drgrice1/past-answer-xss-hotfix
pstaabp Jul 8, 2025
d119c61
Change LTI update to allow selecting multiple sets.
somiaj Jun 20, 2025
8f9a398
Merge pull request #2749 from somiaj/lti-update-multiple-select
drgrice1 Jul 11, 2025
87fa549
record/update user lis_source_did for LTI 1.3 even when grade passbac…
Alex-Jordan Jul 12, 2025
5622ca6
Update the `webwork2.pot` file.
drgrice1 Jul 15, 2025
03a6de0
Merge pull request #2767 from drgrice1/update-localization-pot
pstaabp Jul 15, 2025
936520d
Reset the cookie session before Mojolicious saves it.
drgrice1 Apr 18, 2025
0528f60
Merge pull request #2731 from drgrice1/session-tangling-fix
Alex-Jordan Jul 18, 2025
febbb30
Translate webwork2.pot in ru_RU [Manual Sync]
transifex-integration[bot] Jul 20, 2025
3a1e393
Translate webwork2.pot in ko [Manual Sync]
transifex-integration[bot] Jul 20, 2025
d43149a
Translate webwork2.pot in fr [Manual Sync]
transifex-integration[bot] Jul 20, 2025
f73732c
Translate webwork2.pot in fr_CA [Manual Sync]
transifex-integration[bot] Jul 20, 2025
3e20e7d
Translate webwork2.pot in el [Manual Sync]
transifex-integration[bot] Jul 20, 2025
32236ae
Translate webwork2.pot in zh_CN [Manual Sync]
transifex-integration[bot] Jul 20, 2025
455c70f
Translate webwork2.pot in cs_CZ [Manual Sync]
transifex-integration[bot] Jul 20, 2025
6d474b3
Translate webwork2.pot in he_IL [Manual Sync]
transifex-integration[bot] Jul 20, 2025
ab9d87b
Translate webwork2.pot in es [Manual Sync]
transifex-integration[bot] Jul 20, 2025
80cb75a
Translate webwork2.pot in hu [Manual Sync]
transifex-integration[bot] Jul 20, 2025
4948a85
Translate webwork2.pot in de [Manual Sync]
transifex-integration[bot] Jul 20, 2025
0e170e3
Translate webwork2.pot in zh_HK [Manual Sync]
transifex-integration[bot] Jul 20, 2025
8feb191
Merge pull request #2777 from openwebwork/tx_translations_update_1861…
drgrice1 Jul 20, 2025
da6824f
Merge pull request #2779 from openwebwork/tx_translations_update_426a…
drgrice1 Jul 20, 2025
54e2ace
Merge pull request #2774 from openwebwork/tx_translations_update_69a3…
drgrice1 Jul 20, 2025
a1c9c8c
Merge pull request #2780 from openwebwork/tx_translations_update_1991…
drgrice1 Jul 20, 2025
332d09b
Merge pull request #2773 from openwebwork/tx_translations_update_b662…
drgrice1 Jul 20, 2025
b8a936a
Merge pull request #2775 from openwebwork/tx_translations_update_2c8d…
drgrice1 Jul 20, 2025
21a2cef
Merge pull request #2776 from openwebwork/tx_translations_update_57f4…
drgrice1 Jul 20, 2025
f3c30a0
Merge pull request #2778 from openwebwork/tx_translations_update_e78b…
drgrice1 Jul 20, 2025
44d25a3
Merge pull request #2772 from openwebwork/tx_translations_update_6cdd…
drgrice1 Jul 20, 2025
1f4ad3d
Merge pull request #2771 from openwebwork/tx_translations_update_97ac…
drgrice1 Jul 20, 2025
96ac18a
Merge pull request #2769 from openwebwork/tx_translations_update_d23a…
drgrice1 Jul 20, 2025
50997a0
Merge pull request #2770 from openwebwork/tx_translations_update_9cda…
drgrice1 Jul 20, 2025
f1eee3b
Fix the session expired message in the problem editor.
drgrice1 Jul 15, 2025
f576c3d
Merge pull request #2766 from drgrice1/pg-editor-session-expired-issue
pstaabp Jul 21, 2025
7c33a93
Merge pull request #2764 from Alex-Jordan/lis-source-did
drgrice1 Jul 22, 2025
75974fd
Merge pull request #2721 from openwebwork/WeBWorK-2.20
drgrice1 Jul 22, 2025
92bbe13
Merge upstream WeBWorK 2.20 into UBC branch
ltdevopsbot[bot] Jun 19, 2026
7c7e14f
fix(db): register UBC LTI 1.3 and DelayedJob tables in DB::Layout
xcompass Jun 19, 2026
2881efa
fix(authen): repair merge-broken verify() compile error and logout in…
xcompass Jun 20, 2026
c55b203
fix(merge): repair 2.20 API breakage in UBC auth, LTI 1.3, and sessio…
xcompass Jul 2, 2026
6c1f16a
fix(security): resolve CodeQL alerts gating PR checks
xcompass Jul 2, 2026
8598c9b
style: perltidy pass over UBC-side files (Perl::Tidy 20220613)
xcompass Jul 2, 2026
b626507
style: second perltidy pass for two non-idempotent formations
xcompass Jul 2, 2026
0209dd0
fix(merge): restore OPL set-def generator and repair Caliper JSON enc…
xcompass Jul 2, 2026
fd333fe
fix(merge): add missing 2.20 prod deps + restore dropped constants
xcompass Jul 10, 2026
13adde4
fix(docker): bump PG to 2.20 to match WeBWorK 2.20
xcompass Jul 10, 2026
5ea3ed2
test: add docker-compose.test.yml to run the stack locally
xcompass Jul 10, 2026
a172935
refactor(saml2): adopt upstream 2.20 SAML2, retire custom Mojolicious…
xcompass Jul 10, 2026
bf35ad8
build(perltidy): pin Perl::Tidy 20240903 to match upstream; un-fork u…
xcompass Jul 11, 2026
5623700
build(ci): adopt upstream check-formats.yml, drop UBC linter.yml
xcompass Jul 11, 2026
80f8551
FIX build, imports, lti auth/ags, saml2
ionparticle Jul 16, 2026
e34edcb
EDIT remove # of attempts in student progress
ionparticle Jul 16, 2026
5defecb
EDIT make perltidy happy
ionparticle Jul 16, 2026
eaf28df
FIX unarchive course fails due to opl symlinks
ionparticle Aug 4, 2026
b13e353
Net::SAML2 0.86 security fix now requires cacert
ionparticle Aug 5, 2026
dfb05a0
EDIT lti1p3 CourseCreator config admin user MFA
ionparticle Aug 7, 2026
285e61a
StudentProgress 'no time limit' for no limit tests
ionparticle Aug 7, 2026
be69646
ADD scripts to update all lti admin, course tables
ionparticle Aug 7, 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
  •  
  •  
  •  
17 changes: 17 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
root = true

[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
max_line_length = 120
trim_trailing_whitespace = true
indent_style = tab
indent_size = 4

[*.yml]
indent_style = space
indent_size = 2

[*.pg]
trim_trailing_whitespace = false
50 changes: 50 additions & 0 deletions .github/workflows/check-formats.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
---
name: Check Formatting of Code Base

# UBC adaptations from the upstream check-formats.yml (kept otherwise verbatim so
# it stays in sync with upstream): declare least-privilege permissions to satisfy
# CodeQL, and add UBC's default branch `ubc` to the push branches-ignore list.
permissions:
contents: read

defaults:
run:
shell: bash

on:
push:
branches-ignore: [main, develop, ubc]
pull_request:

jobs:
perltidy:
name: Check Perl file formatting with perltidy
runs-on: ubuntu-24.04
container:
image: perl:5.38
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install dependencies
run: cpanm -n Perl::Tidy@20240903
- name: Run perltidy
shell: bash
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

prettier:
name: Check JavaScript, style, and HTML file formatting with prettier
runs-on: ubuntu-24.04
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install Node
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Install Dependencies
run: cd htdocs && npm ci --ignore-scripts
- name: Check formatting with prettier
run: cd htdocs && npm run prettier-check
32 changes: 0 additions & 32 deletions .github/workflows/linter.yml

This file was deleted.

3 changes: 3 additions & 0 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
name: CI to Docker Hub

permissions:
contents: read

# Controls when the workflow will run
on:
# Triggers the workflow on push or pull request events but only for the master branch
Expand Down
1 change: 0 additions & 1 deletion .perltidyrc
Original file line number Diff line number Diff line change
Expand Up @@ -20,4 +20,3 @@
-nlop # No logical padding (this causes mixed tabs and spaces)
-wn # Weld nested containers
-xci # Extended continuation indentation
-vxl='q' # No vertical alignment of qw quotes
8 changes: 8 additions & 0 deletions .prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"arrowParens": "always",
"bracketSpacing": true,
"printWidth": 120,
"semi": true,
"singleQuote": true,
"trailingComma": "none"
}
31 changes: 17 additions & 14 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -30,10 +30,10 @@ RUN echo Cloning branch $PG_BRANCH branch from $PG_GIT_URL \

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

FROM ubuntu:22.04
FROM ubuntu:24.04

ENV WEBWORK_URL=/webwork2 \
WEBWORK_ROOT_URL=http://localhost::8080 \
WEBWORK_ROOT_URL=http://localhost:8080 \
WEBWORK_SMTP_SERVER=localhost \
WEBWORK_SMTP_SENDER=webwork@example.com \
WEBWORK_TIMEZONE=America/New_York \
Expand Down Expand Up @@ -71,6 +71,7 @@ RUN apt-get update \
imagemagick \
iputils-ping \
jq \
libarchive-extract-perl \
libarchive-zip-perl \
libarray-utils-perl \
libc6-dev \
Expand All @@ -94,23 +95,21 @@ RUN apt-get update \
libextutils-helpers-perl \
libextutils-installpaths-perl \
libextutils-xsbuilder-perl \
libfile-copy-recursive-perl \
libfile-find-rule-perl-perl \
libfile-sharedir-install-perl \
libfuture-asyncawait-perl \
libgd-barcode-perl \
libgd-perl \
libhtml-scrubber-perl \
libhtml-template-perl \
libhttp-async-perl \
libiterator-perl \
libiterator-util-perl \
libjson-maybexs-perl \
libjson-perl \
libjson-xs-perl \
liblocale-maketext-lexicon-perl \
libmail-sender-perl \
libmail-sender-perl \
libmariadb-dev \
libmath-random-secure-perl \
libmime-base32-perl \
libmime-tools-perl \
libminion-backend-sqlite-perl \
libminion-perl \
Expand All @@ -124,13 +123,12 @@ RUN apt-get update \
libnet-oauth-perl \
libossp-uuid-perl \
libpadwalker-perl \
libpandoc-wrapper-perl \
libpath-class-perl \
libpath-tiny-perl \
libpandoc-wrapper-perl \
libphp-serialization-perl \
libpod-wsdl-perl \
libsoap-lite-perl \
libsql-abstract-classic-perl \
libsql-abstract-perl \
libstring-shellquote-perl \
libsub-uplevel-perl \
Expand Down Expand Up @@ -176,15 +174,20 @@ RUN apt-get update \
texlive-xetex \
tzdata \
zip $ADDITIONAL_BASE_IMAGE_PACKAGES \
&& curl -fsSL https://deb.nodesource.com/setup_16.x | bash - \
&& curl -fsSL https://deb.nodesource.com/setup_20.x | bash - \
&& apt-get install -y --no-install-recommends --no-install-suggests nodejs \
&& apt-get clean \
&& rm -fr /var/lib/apt/lists/* /tmp/*

# ==================================================================
# Phase 4 - Install additional Perl modules from CPAN that are not packaged for Ubuntu or are outdated in Ubuntu.

RUN cpanm install Statistics::R::IO DBD::MariaDB Mojo::SQLite@3.002 Perl::Tidy@20220613 \
RUN cpanm install -n \
Statistics::R::IO \
DBD::MariaDB \
Perl::Tidy@20240903 \
Archive::Zip::SimpleZip \
Net::SAML2 \
&& rm -fr ./cpanm /root/.cpanm /tmp/*

# ==================================================================
Expand All @@ -211,7 +214,7 @@ COPY --from=base /opt/base/pg $APP_ROOT/pg
# 7. Apply patches

# Patch files that are applied below
COPY docker-config/imagemagick-allow-pdf-read.patch /tmp
COPY docker-config/pgfsys-dvisvmg-bbox-fix.patch /tmp

RUN echo "PATH=$PATH:$APP_ROOT/webwork2/bin" >> /root/.bashrc \
&& mkdir /run/webwork2 /etc/ssl/local \
Expand All @@ -228,8 +231,8 @@ RUN echo "PATH=$PATH:$APP_ROOT/webwork2/bin" >> /root/.bashrc \
&& npm install \
&& cd $PG_ROOT/htdocs \
&& npm install \
&& patch -p1 -d / < /tmp/imagemagick-allow-pdf-read.patch \
&& rm /tmp/imagemagick-allow-pdf-read.patch
&& patch -p1 -d / < /tmp/pgfsys-dvisvmg-bbox-fix.patch \
&& rm /tmp/pgfsys-dvisvmg-bbox-fix.patch

# ==================================================================
# Phase 7 - Final setup and prepare docker-entrypoint.sh
Expand Down
42 changes: 23 additions & 19 deletions Dockerfile-prod
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,10 @@
ARG WEBWORK2_GIT_URL
ARG WEBWORK2_BRANCH
ARG PG_GIT_URL=https://github.com/openwebwork/pg.git
ARG PG_BRANCH=PG-2.18+
# PG releases in lockstep with webwork2; 2.20 needs PG-2.20 (PG 2.18 lacks
# getSampleProblemCode, the reorganized Plots::* modules, and WeBWorK::PG::Localize,
# which breaks the PG Problem Editor and plot rendering).
ARG PG_BRANCH=PG-2.20
# CUSTOM: allow customized OPL repo & branch
ARG OPL_GIT_URL=https://github.com/ubc/webwork-open-problem-library.git
ARG OPL_BRANCH=ubc
Expand All @@ -30,7 +33,7 @@
############################### CUSTOM #############################
# Webwork Node Stuff, separated here for caching purposes

FROM node:20 AS npmww
FROM node:26 AS npmww

WORKDIR /npmww

Expand All @@ -50,7 +53,7 @@
############################### CUSTOM #############################
# PG Node Stuff, separated here for caching purposes

FROM node:20 AS npmpg
FROM node:26 AS npmpg

WORKDIR /npmpg
COPY --from=base /opt/base/pg/htdocs/package.json .
Expand All @@ -65,7 +68,7 @@

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

FROM ubuntu:22.04
FROM ubuntu:24.04

ENV WEBWORK_URL=/webwork2 \
WEBWORK_ROOT_URL=http://localhost::8080 \
Expand All @@ -84,15 +87,15 @@
PG_ROOT=$APP_ROOT/pg \
PATH=$PATH:$APP_ROOT/webwork2/bin

ENV WEBWORK_DB_HOST db

Check warning on line 90 in Dockerfile-prod

View workflow job for this annotation

GitHub Actions / build

Legacy key/value format with whitespace separator should not be used

LegacyKeyValueFormat: "ENV key=value" should be used instead of legacy "ENV key value" format More info: https://docs.docker.com/go/dockerfile/rule/legacy-key-value-format/
ENV WEBWORK_DB_PORT 3306

Check warning on line 91 in Dockerfile-prod

View workflow job for this annotation

GitHub Actions / build

Legacy key/value format with whitespace separator should not be used

LegacyKeyValueFormat: "ENV key=value" should be used instead of legacy "ENV key value" format More info: https://docs.docker.com/go/dockerfile/rule/legacy-key-value-format/
ENV WEBWORK_DB_NAME webwork

Check warning on line 92 in Dockerfile-prod

View workflow job for this annotation

GitHub Actions / build

Legacy key/value format with whitespace separator should not be used

LegacyKeyValueFormat: "ENV key=value" should be used instead of legacy "ENV key value" format More info: https://docs.docker.com/go/dockerfile/rule/legacy-key-value-format/
ENV WEBWORK_DB_USER webworkWrite

Check warning on line 93 in Dockerfile-prod

View workflow job for this annotation

GitHub Actions / build

Legacy key/value format with whitespace separator should not be used

LegacyKeyValueFormat: "ENV key=value" should be used instead of legacy "ENV key value" format More info: https://docs.docker.com/go/dockerfile/rule/legacy-key-value-format/
ENV WEBWORK_DB_PASSWORD passwordRW

Check warning on line 94 in Dockerfile-prod

View workflow job for this annotation

GitHub Actions / build

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ENV "WEBWORK_DB_PASSWORD") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 94 in Dockerfile-prod

View workflow job for this annotation

GitHub Actions / build

Legacy key/value format with whitespace separator should not be used

LegacyKeyValueFormat: "ENV key=value" should be used instead of legacy "ENV key value" format More info: https://docs.docker.com/go/dockerfile/rule/legacy-key-value-format/
ENV WEBWORK_SMTP_SERVER localhost

Check warning on line 95 in Dockerfile-prod

View workflow job for this annotation

GitHub Actions / build

Legacy key/value format with whitespace separator should not be used

LegacyKeyValueFormat: "ENV key=value" should be used instead of legacy "ENV key value" format More info: https://docs.docker.com/go/dockerfile/rule/legacy-key-value-format/
ENV WEBWORK_SMTP_SENDER webwork@example.com

Check warning on line 96 in Dockerfile-prod

View workflow job for this annotation

GitHub Actions / build

Legacy key/value format with whitespace separator should not be used

LegacyKeyValueFormat: "ENV key=value" should be used instead of legacy "ENV key value" format More info: https://docs.docker.com/go/dockerfile/rule/legacy-key-value-format/
ENV R_HOST r

Check warning on line 97 in Dockerfile-prod

View workflow job for this annotation

GitHub Actions / build

Legacy key/value format with whitespace separator should not be used

LegacyKeyValueFormat: "ENV key=value" should be used instead of legacy "ENV key value" format More info: https://docs.docker.com/go/dockerfile/rule/legacy-key-value-format/
ENV DEBUG 0

Check warning on line 98 in Dockerfile-prod

View workflow job for this annotation

GitHub Actions / build

Legacy key/value format with whitespace separator should not be used

LegacyKeyValueFormat: "ENV key=value" should be used instead of legacy "ENV key value" format More info: https://docs.docker.com/go/dockerfile/rule/legacy-key-value-format/

# ==================================================================
# Phase 3 - Install required packages
Expand All @@ -116,6 +119,7 @@
imagemagick \
iputils-ping \
jq \
libarchive-extract-perl \
libarchive-zip-perl \
libarray-utils-perl \
libc6-dev \
Expand All @@ -130,7 +134,6 @@
libdatetime-perl \
libdbd-mysql-perl \
libdevel-checklib-perl \
#libdbd-mariadb-perl \
libemail-address-xs-perl \
libemail-date-format-perl \
libemail-sender-perl \
Expand All @@ -140,23 +143,21 @@
libextutils-helpers-perl \
libextutils-installpaths-perl \
libextutils-xsbuilder-perl \
libfile-copy-recursive-perl \
libfile-find-rule-perl-perl \
libfile-sharedir-install-perl \
libfuture-asyncawait-perl \
libgd-barcode-perl \
libgd-perl \
libhtml-scrubber-perl \
libhtml-template-perl \
libhttp-async-perl \
libiterator-perl \
libiterator-util-perl \
libjson-maybexs-perl \
libjson-perl \
libjson-xs-perl \
liblocale-maketext-lexicon-perl \
libmail-sender-perl \
libmail-sender-perl \
libmariadb-dev \
libmath-random-secure-perl \
libmime-base32-perl \
libmime-tools-perl \
#libminion-backend-sqlite-perl \ # we're using mysql instead
libminion-perl \
Expand All @@ -170,13 +171,12 @@
libnet-oauth-perl \
libossp-uuid-perl \
libpadwalker-perl \
libpandoc-wrapper-perl \
libpath-class-perl \
libpath-tiny-perl \
libpandoc-wrapper-perl \
libphp-serialization-perl \
libpod-wsdl-perl \
libsoap-lite-perl \
libsql-abstract-classic-perl \
libsql-abstract-perl \
libstring-shellquote-perl \
libsub-uplevel-perl \
Expand Down Expand Up @@ -230,23 +230,27 @@
texlive-xetex \
tzdata \
zip $ADDITIONAL_BASE_IMAGE_PACKAGES \
&& curl -fsSL https://deb.nodesource.com/setup_20.x | bash - \
&& curl -fsSL https://deb.nodesource.com/setup_26.x | bash - \
&& apt-get install -y --no-install-recommends --no-install-suggests nodejs \
vim

# ==================================================================
# Phase 4 - Install additional Perl modules from CPAN that are not packaged for Ubuntu or are outdated in Ubuntu.

RUN cpanm install Statistics::R::IO DBD::MariaDB Mojo::SQLite Perl::Tidy@20220613 \
RUN cpanm install -n \
Statistics::R::IO \
DBD::MariaDB \
Perl::Tidy@20240903 \
Archive::Zip::SimpleZip \
Net::SAML2 \
&& rm -fr ./cpanm /root/.cpanm /tmp/*

# App::Genpass - used by LTI1p3's CourseUpdater
# Data::ObjectDriver - used by DelayedJob
# Bytes::Random::Secure::Tiny - used by LTI1p3 for secure random string
# Minion::Backend::mysql - let us reuse webwork db for Minion job queue database
# Net::SAML2 - for Shibboleth auth
RUN cpanm install App::Genpass Data::ObjectDriver Bytes::Random::Secure::Tiny \
Minion::Backend::mysql Net::SAML2 && rm -fr ./cpanm /root/.cpanm /tmp/*
Minion::Backend::mysql && rm -fr ./cpanm /root/.cpanm /tmp/*

# ==================================================================
# Phase 5 - Install webwork2 and pg which were downloaded to /opt/base/ in phase 1
Expand Down Expand Up @@ -275,7 +279,7 @@
# 7. Apply patches

# Patch files that are applied below
COPY docker-config/imagemagick-allow-pdf-read.patch /tmp
COPY docker-config/pgfsys-dvisvmg-bbox-fix.patch /tmp

RUN echo "PATH=$PATH:$APP_ROOT/webwork2/bin" >> /root/.bashrc \
&& mkdir /run/webwork2 /etc/ssl/local \
Expand All @@ -288,8 +292,8 @@
&& debconf-set-selections /tmp/preseed.txt \
&& rm /etc/localtime /etc/timezone && echo "Etc/UTC" > /etc/timezone \
&& dpkg-reconfigure -f noninteractive tzdata \
&& patch -p1 -d / < /tmp/imagemagick-allow-pdf-read.patch \
&& rm /tmp/imagemagick-allow-pdf-read.patch
&& patch -p1 -d / < /tmp/pgfsys-dvisvmg-bbox-fix.patch \
&& rm /tmp/pgfsys-dvisvmg-bbox-fix.patch

# ==================================================================
# Phase 7 - Final setup and prepare docker-entrypoint.sh
Expand Down
Loading
Loading