Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
889 commits
Select commit Hold shift + click to select a range
915c263
MDL-87521 behat: better error reporting if an adhoc task fails
timhunt Dec 22, 2025
e4c3310
MDL-87714 customfield: Add component/area to field number provider
sebastsg Jan 26, 2026
37ec33f
Merge branch 'MDL-87714-501' of https://github.com/sebastsg/moodle in…
paulholden Jan 28, 2026
8c49fde
MDL-87714 customfield_number: upgrade note for recalculate parameters.
paulholden Jan 28, 2026
2048b63
MDL-83325 filepicker: tidy up display of restrictions
timhunt Oct 1, 2024
b23182d
MDL-87593 lang: Fix strings order
mudrd8mz Jan 28, 2026
5370fa4
Automatically generated installer lang files
Jan 29, 2026
846ddd3
MDL-87087 tool_dataprivacy: Test data request by authorized user
andelacruz Jan 14, 2026
8e959ef
Merge branch 'MDL-86988-501' of https://github.com/paulholden/moodle …
HuongNV13 Jan 29, 2026
207f222
Merge branch 'MDL-87323-501' of https://github.com/paulholden/moodle …
HuongNV13 Jan 29, 2026
b013061
Merge branch 'MDL-87104-501' of https://github.com/paulholden/moodle …
HuongNV13 Jan 29, 2026
bada40d
Merge branch 'MDL-87018-501' of https://github.com/bhect0/moodle into…
HuongNV13 Jan 29, 2026
884a9b4
Merge branch 'MDL-86994-501' of https://github.com/mioyu-ubiq/moodle …
HuongNV13 Jan 29, 2026
8d4df26
Merge branch 'MDL-87087-501' of https://github.com/lameze/moodle into…
HuongNV13 Jan 29, 2026
f9280e7
Merge branch 'MDL-87521_501' of https://github.com/timhunt/moodle int…
HuongNV13 Jan 29, 2026
3382df5
MDL-87789 libraries: patch lti1p3 for certification support
snake Jan 29, 2026
65da222
MDL-86437 enrol_lti: Cast scoreGiven to float for LTI compliance
gcfgo Oct 2, 2025
d5cad3e
MDL-87185 block_site_main_menu: Add required library
Nov 14, 2025
c94a159
MDL-84966 core_question: Updated question bank tag filter
niko-hoogeveen Jan 26, 2026
ebf862e
NOBUG: Bump composer.lock
andrewnicols Jan 30, 2026
e05e709
Merge branch 'install_501_STABLE' of https://git.in.moodle.com/amosbo…
HuongNV13 Jan 30, 2026
8084242
NOBUG: Add upgrade notes
HuongNV13 Jan 30, 2026
50e4417
weekly release 5.1.1+
HuongNV13 Jan 30, 2026
7632786
MDL-87807 availability_grade: ensure required library is loaded.
paulholden Jan 30, 2026
604a1e0
MDL-87334 course: looser check for empty return field editing course.
paulholden Nov 27, 2025
a73abac
MDL-87396 mod_assign: Add availability check to notifications
izendegi Dec 4, 2025
3e49f34
MDL-87761 course: Add warning for phasing out subsection descriptions
sarjona Jan 29, 2026
223e070
MDL-86601 core_task: Add index for large adhoc task queues
bwalkerl Sep 16, 2025
5af16f7
MDL-86601 core_task: Add index for scheduled task lastruntime
bwalkerl Oct 22, 2025
9556da6
MDL-87520 core: Fix interpretation of CFG->branch in update API client
mudrd8mz Jan 19, 2026
052cf0a
Automatically generated installer lang files
Jan 31, 2026
6862165
MDL-87029 quiz: Refetch attempts in overdue task to avoid stale submits
cameron1729 Jan 29, 2026
918cc4f
Merge branch 'MDL-86601-adhoc-index-MOODLE_501_STABLE' of https://git…
safatshahin Feb 2, 2026
5182889
Merge branch 'MDL-78342-501' of https://github.com/davewoloszyn/moodl…
HuongNV13 Feb 2, 2026
9360d67
MDL-86905 core: Use proper link markup for email links
junpataleta Oct 20, 2025
6d9979b
Merge branch 'MDL-87761-501' of https://github.com/sarjona/moodle int…
cescobedo Feb 2, 2026
ae877e4
MDL-76437 gradingform_rubric: consistent styles for add buttons.
paulholden Dec 10, 2025
320eee7
MDL-86714 mod_scorm: parse reference file post-restore/import.
paulholden Oct 2, 2025
3408c23
MDL-87694 core: `headinglevel` display option for $OUTPUT->confirm()
junpataleta Jan 28, 2026
f8349fb
MDL-87694 profile: set top level heading when accessed as guest user.
stopfstedt Feb 2, 2026
608266d
MDL-87694 profile: change page title to "Login required".
stopfstedt Feb 2, 2026
d5f2132
MDL-87694 core: prevent empty heading in context header.
stopfstedt Feb 2, 2026
dc662df
Automatically generated installer lang files
Feb 3, 2026
8bdec47
Merge branch 'MDL-87675-501' of https://github.com/nvhai248/moodle in…
HuongNV13 Feb 3, 2026
f1f1738
Merge branch 'MDL-86905-501' of https://github.com/junpataleta/moodle…
HuongNV13 Feb 3, 2026
f9a69ed
Merge branch 'MDL-87520-501-branch-number' of https://github.com/mudr…
HuongNV13 Feb 3, 2026
e001ebc
Merge branch 'MDL-87396-501' of https://github.com/izendegi/moodle in…
HuongNV13 Feb 3, 2026
c708bb0
Merge branch 'MDL-87289-501' of https://github.com/raortegar/moodle i…
HuongNV13 Feb 3, 2026
078308b
Merge branch 'MDL-87334-501' of https://github.com/paulholden/moodle …
HuongNV13 Feb 3, 2026
6390af2
Merge branch 'MDL-87029-501' of https://github.com/cameron1729/moodle…
Feb 3, 2026
03a901b
Merge branch 'MDL-85653_501_STABLE' of https://github.com/marxjohnson…
Feb 3, 2026
036fc9e
Merge branch 'MOODLE_501_STABLE_MDL-84966' of https://github.com/niko…
Feb 3, 2026
3c68153
Merge branch 'MDL-86609_501_STABLE' of https://github.com/marxjohnson…
Feb 3, 2026
bb13942
Merge branch 'MDL-87606_501_STABLE' of https://github.com/marxjohnson…
Feb 3, 2026
0a580ed
MDL-87258 mod_lti: request access for PNA
rjnl Jan 26, 2026
e9e6e09
Merge branch 'MDL-87694-course-participant-profile-missing-heading-M5…
junpataleta Feb 3, 2026
582f2e6
Merge branch 'MDL-77162-filepicker-a11y-tab-order-repository-keyboard…
junpataleta Feb 3, 2026
a105edc
Merge branch 'MDL-87593-501-enfix' of https://github.com/mudrd8mz/moo…
junpataleta Feb 3, 2026
274d5cc
Merge branch 'MDL-87185-501' of https://github.com/durenadev/moodle i…
junpataleta Feb 3, 2026
2eb3228
Merge branch 'MDL-87199-501' of https://github.com/abias/moodle into …
andrewnicols Feb 3, 2026
3132cc9
Merge branch 'MDL-85535-501' of https://github.com/junpataleta/moodle…
snake Feb 3, 2026
a7c5fad
Merge branch 'MDL-83984_501' of https://github.com/santoshndev/moodle…
junpataleta Feb 3, 2026
03341ae
MDL-87559 core: Set $SCRIPT even outside public/
abias Dec 28, 2025
373ca27
MDL-87825 customfield_number: Handle shared fields in cron
sebastsg Feb 2, 2026
6803fd0
Automatically generated installer lang files
Feb 4, 2026
b25ed23
MDL-87352 admin: Add MoodleNet removal warnings
andimendunia Feb 3, 2026
fa81032
MDL-87757 block_myoverview: fix the heading-order
muhammadarnaldo Jan 27, 2026
364a762
MDL-87757 block_myoverview: Remove navigation role and behat update
muhammadarnaldo Feb 3, 2026
3702195
MDL-87600 gradereport_overview: Fix heading levels on the index page
junpataleta Feb 4, 2026
e193924
Automatically generated installer lang files
Feb 5, 2026
860fead
Merge branch 'MDL-87789-501' of https://github.com/snake/moodle into …
Feb 4, 2026
ff5c46a
MDL-87612 repository: safer unserializing of file source data.
paulholden Jan 30, 2026
5100441
MDL-87843 filter_tex: Switch to use Colour picker setting
HuongNV13 Feb 3, 2026
a80b692
Merge branch 'MDL-86437-501' of https://github.com/snake/moodle into …
Feb 4, 2026
49b2944
Merge branch 'MDL-87559-501' of https://github.com/abias/moodle into …
abgreeve Feb 4, 2026
8683b4a
MDL-86785 tiny_equation: Add timeout handling for mimetex execution
yusufwib01 Oct 11, 2025
557432b
Merge branch 'MDL-87757-501' of https://github.com/muhammadarnaldo/mo…
junpataleta Feb 4, 2026
aac49cd
Merge branch 'MDL-87258-501' of https://github.com/rjnl/moodle into M…
Feb 4, 2026
31a3e0e
Merge branch 'MDL-87352-501' of https://github.com/andimendunia/moodl…
HuongNV13 Feb 4, 2026
b39f3bb
Merge branch 'MDL-86444_501_STABLE' of https://github.com/marxjohnson…
Feb 4, 2026
60564c0
MDL-87870 filter_tex: escape background argument content.
paulholden Feb 4, 2026
f36fd44
MDL-87870 admin: tighten up validation of colour picker values.
paulholden Feb 4, 2026
833f55c
Merge branch 'install_501_STABLE' of https://git.in.moodle.com/amosbo…
Feb 5, 2026
70d026f
NOBUG: Add upgrade notes
Feb 5, 2026
e99b368
weekly release 5.1.1+
Feb 5, 2026
3988c4c
MDL-87338 core_table: avoid string concatenation.
lucaboesch Nov 27, 2025
aa9093c
MDL-87552 groupings: Striped hovering lines table with BS 5.
lucaboesch Dec 25, 2025
5f42fc8
MDL-87535 quiz: Quiz dates shouldn't show on secure page.
lucaboesch Jan 9, 2026
13ee421
MDL-87448 qbank: put margins to the end of the buttons to align better.
lucaboesch Dec 12, 2025
550afb2
Automatically generated installer lang files
Feb 6, 2026
a379081
NOBUG: Add upgrade notes
HuongNV13 Feb 6, 2026
ac802ad
Moodle release 5.1.2
HuongNV13 Feb 6, 2026
2d9bdde
MDL-78343 core_table: Improved HTML tag detection in format_text
davewoloszyn Dec 18, 2025
22287e4
MDL-77209 core: Make `More help` links open on a new tab
junpataleta Feb 3, 2026
34e60be
MDL-87492 mod_quiz: 'autosubmit' quiz attempt handling fix
Jan 16, 2026
cadb42d
MDL-87874 customfield_number: validation for maximum size constraints.
paulholden Feb 6, 2026
0686806
MDL-87874 customfield: expand size of decimal data field type.
paulholden Feb 6, 2026
25cac9b
Automatically generated installer lang files
Feb 7, 2026
c2d7628
Automatically generated installer lang files
Feb 9, 2026
44e0e1a
MDL-87892 admin: Fix MoodleNet removal warning
HuongNV13 Feb 6, 2026
a8f3b08
Merge branch 'MDL-87892-501' of https://github.com/HuongNV13/moodle i…
rezaies Feb 9, 2026
b1bff07
MDL-87892 admin: Fix MoodleNet check
HuongNV13 Feb 9, 2026
ed3851f
Merge branch 'MDL-87892-501' of https://github.com/HuongNV13/moodle i…
rezaies Feb 9, 2026
1f2f2e7
Merge branch 'install_501_STABLE' of https://git.in.moodle.com/amosbo…
HuongNV13 Feb 10, 2026
e409f30
weekly release 5.1.2+
HuongNV13 Feb 10, 2026
bfe4f1f
Automatically generated installer lang files
Feb 11, 2026
4850fd3
Moodle release 5.1.3
HuongNV13 Feb 11, 2026
1e0c486
Merge branch 'MDL-68062-501' of https://github.com/sh-csg/moodle into…
HuongNV13 Feb 11, 2026
0d25477
Merge branch 'MDL-86714-501' of https://github.com/paulholden/moodle …
HuongNV13 Feb 11, 2026
247b2d9
Merge branch 'MDL-87535-501_take2' of https://github.com/lucaboesch/m…
HuongNV13 Feb 11, 2026
29e2d74
Merge branch 'MDL-87448-501' of https://github.com/lucaboesch/moodle …
HuongNV13 Feb 11, 2026
0cfcfff
Merge branch 'MDL-87825-501' of https://github.com/sebastsg/moodle in…
sarjona Feb 11, 2026
a7deebb
Merge branch 'MDL-87874-501' of https://github.com/paulholden/moodle …
sarjona Feb 11, 2026
8629444
MDL-87492 mod_quiz: Add grade_submission task
Jan 16, 2026
235bdca
MDL-87113 filepicker: fix progress stuck after invalid upload
nvhai248 Nov 11, 2025
7830b17
Merge branch 'MDL-86659-501' of https://github.com/paulholden/moodle …
HuongNV13 Feb 11, 2026
e49fc4d
MDL-87597 core_message: Fix double-click to reopen message drawer
yusufwib01 Feb 11, 2026
d0a69c7
MDL-87458 bigbluebuttonbn: reset removes local recording references only
jfedericobn Feb 11, 2026
89eea57
Automatically generated installer lang files
Feb 12, 2026
69fce2b
MDL-87095 mod_lesson: add behat test for importing questions into lesson
Kredelirious Jan 27, 2026
8b1c412
MDL-87095 behat: reorganize lesson question importing tests
lameze Feb 12, 2026
26c7e57
Merge branch 'MDL-78343-501' of https://github.com/davewoloszyn/moodl…
HuongNV13 Feb 12, 2026
437d6a0
Merge branch 'MDL-87358-501' of https://github.com/paulholden/moodle …
HuongNV13 Feb 12, 2026
2ea2956
Merge branch 'MDL-87113-501' of https://github.com/timhunt/moodle int…
HuongNV13 Feb 12, 2026
e1c848c
Merge branch 'MDL-83325_501' of https://github.com/timhunt/moodle int…
HuongNV13 Feb 12, 2026
a58f0ef
Merge branch 'MDL-87095-501' of https://github.com/lameze/moodle into…
HuongNV13 Feb 12, 2026
e89fb4e
MDL-87075 core: Filter roles to include visibility permissions
christianabila Dec 3, 2025
7808e61
MDL-87945 webservice: handle invalid functions when adding to service.
paulholden Feb 12, 2026
06df92c
MDL-87657 cohort: fix permission check for viewing system cohorts.
paulholden Jan 13, 2026
3a713ed
MDL-85658 behat: Wait until the iframe is completely loaded
HuongNV13 Jan 8, 2026
99a219d
MDL-85658 core_h5p: Implement contentLoaded event handler
HuongNV13 Jan 19, 2026
f1e95a5
MDL-85111 qtype_essay: improve word counting logic
muhammadarnaldo Feb 13, 2026
c32438b
MDL-87482 core_message: Fix compatibility with libxml2 >= 2.14.0
andimendunia Feb 12, 2026
36493b1
MDL-87482 core: Better text comparison
HuongNV13 Feb 13, 2026
caae1d5
MDL-87946 github: Update GHA Database connections
andrewnicols Feb 13, 2026
67d24e7
Merge branch 'MDL-77209-501' of https://github.com/junpataleta/moodle…
HuongNV13 Feb 13, 2026
fe1f542
Merge branch 'MDL-81441-501' of https://github.com/paulholden/moodle …
HuongNV13 Feb 13, 2026
872fc36
Merge branch 'MDL-87075-501' of https://github.com/raortegar/moodle i…
HuongNV13 Feb 13, 2026
0728bb6
Merge branch 'MDL-87458-501' of https://github.com/jfederico/moodle i…
HuongNV13 Feb 13, 2026
f7e8903
MDL-87450 forum: Remove Bootstrap 5 table borders.
lucaboesch Dec 12, 2025
dd83c1c
MDL-86985 mod_data: Stripe and hover effect restored to presets table
lucaboesch Oct 22, 2025
713a9da
Merge branch 'MDL-87946-501' of https://github.com/andrewnicols/moodl…
junpataleta Feb 13, 2026
8c0aa1a
Merge branch 'MDL-86985-501' of https://github.com/davewoloszyn/moodl…
HuongNV13 Feb 13, 2026
0bdb88a
Merge branch 'MDL-76437-501' of https://github.com/paulholden/moodle …
junpataleta Feb 13, 2026
b299f81
Merge branch 'MDL-87600-501' of https://github.com/junpataleta/moodle…
Feb 13, 2026
a167f6d
Merge branch 'MDL-87597-501' of https://github.com/yusufwib01/moodle …
HuongNV13 Feb 13, 2026
34e1fc9
Merge branch 'MDL-87450-501' of https://github.com/junpataleta/moodle…
junpataleta Feb 13, 2026
b650870
Automatically generated installer lang files
Feb 14, 2026
1f60fd4
MDL-85301 aiprovider_ollama: Fix basic authentication
Apr 30, 2025
95e2111
Merge branch 'MDL-87552-501' of https://github.com/lucaboesch/moodle …
Feb 16, 2026
6f56529
Merge branch 'MDL-87338-501' of https://github.com/lucaboesch/moodle …
Feb 16, 2026
da5db34
Merge branch 'MDL-85658-501' of https://github.com/HuongNV13/moodle i…
Feb 16, 2026
f978082
MDL-78112 forms: support frozen filemanager form elements.
paulholden Sep 7, 2022
67affb8
MDL-87588 mod_bigbluebuttonbn: Fix missing recordings_deleted column
muhammadarnaldo Feb 16, 2026
32a5269
MDL-87967 output: ensure disabled toggle elements show tooltip.
paulholden Feb 16, 2026
17ddfe2
MDL-87187 bigbluebuttonbn: Fix record time during backup/restore
matthewhilton Nov 18, 2025
b4e8f59
Merge branch 'install_501_STABLE' of https://git.in.moodle.com/amosbo…
rezaies Feb 17, 2026
f656a64
weekly release 5.1.3+
rezaies Feb 17, 2026
5a282f9
MDL-87441 user: Align the "With selected users..." label with BS5.
lucaboesch Dec 11, 2025
fa08851
MDL-87919 theme: Fix restricted selected subsections in course index
Feb 13, 2026
2acc3bf
Merge branch 'MDL-87919-501' of https://github.com/aanabit/moodle int…
sarjona Feb 17, 2026
6e53ba1
Automatically generated installer lang files
Feb 18, 2026
e27ed6d
Merge branch 'MDL-85111-501' of https://github.com/muhammadarnaldo/mo…
Feb 18, 2026
f5e0449
Merge branch 'MDL-87482-501' of https://github.com/HuongNV13/moodle i…
HuongNV13 Feb 18, 2026
3f16028
Automatically generated installer lang files
Feb 19, 2026
b5bc0e3
Merge branch 'MDL-85301-501' of https://github.com/davewoloszyn/moodl…
HuongNV13 Feb 19, 2026
142e291
Merge branch 'mdl-87187-51' of https://github.com/matthewhilton/moodl…
HuongNV13 Feb 19, 2026
e13983d
Merge branch 'MDL-87441-501' of https://github.com/lucaboesch/moodle …
HuongNV13 Feb 19, 2026
2890b9e
MDL-88009 theme_boost: Disable input sanitisation for footer
andrewnicols Feb 19, 2026
4b23238
MDL-84045 core_courseformat: Restore section return functionality
james-cnz Oct 12, 2025
eff0a78
Automatically generated installer lang files
Feb 20, 2026
da1db5d
Merge branch 'install_501_STABLE' of https://git.in.moodle.com/amosbo…
Feb 20, 2026
09b2103
weekly release 5.1.3+
Feb 20, 2026
330d80f
MDL-86809 completion: Disable receiveagradegroup when marked as done
juancs Sep 30, 2025
fc59f17
MDL-88021 core: Set jsdoc destination within the public folder
junpataleta Feb 20, 2026
1a2afd7
MDL-87993 core: Allow toasts to be visually hidden
junpataleta Feb 20, 2026
5b88e5a
MDL-87993 core: Use visually hidden core/toast for the srlogger
junpataleta Feb 20, 2026
1378548
MDL-87993 mod_forum: Fix invalid use of SRLogger
junpataleta Feb 20, 2026
6148cd3
MDL-87442 theme_boost: Fix "With selected" select in mod_choice
andimendunia Feb 18, 2026
5136621
MDL-87452 lesson: Align the checkboxes and labels with BS5.
lucaboesch Dec 12, 2025
c0a02a2
MDL-87456 workshop: Amend action links to switch phase.
lucaboesch Dec 24, 2025
5f135b2
MDL-88011 core: Fix wrong version bumpings
HuongNV13 Feb 23, 2026
6bfb789
MDL-88030 library: Bump Behat and PHPUnit
HuongNV13 Feb 23, 2026
b1a4230
MDL-86524 questions: Delegate filter condition restore to plugins
marxjohnson Dec 1, 2025
0bbd133
MDL-86524 questions: Update set reference context after category move
marxjohnson Dec 2, 2025
305348b
Automatically generated installer lang files
Feb 24, 2026
4c2efc6
Merge branch 'MDL-87807-501' of https://github.com/paulholden/moodle …
HuongNV13 Feb 24, 2026
a8b365a
Merge branch 'MDL-87456-501' of https://github.com/lucaboesch/moodle …
HuongNV13 Feb 24, 2026
e5c4305
Merge branch 'MDL-87442-501' of https://github.com/andimendunia/moodl…
HuongNV13 Feb 24, 2026
8323043
Merge branch 'MDL-86809-501' of https://github.com/davewoloszyn/moodl…
HuongNV13 Feb 24, 2026
73b0dc1
Merge branch 'MDL-87452-501' of https://github.com/lucaboesch/moodle …
Feb 24, 2026
d3675d3
Merge branch 'MDL-87492_MOODLE_501_STABLE' of https://github.com/cwar…
Feb 24, 2026
7e9b1fe
MDL-85902 course: Convert activity navigation to a navigation landmark
junpataleta Dec 19, 2025
3ae6a15
MDL-85902 course: Better labeling of activity navigation components
junpataleta Jan 29, 2026
9acf96d
MDL-86866 core: Web 404 responses should generate HTML not JSON
andrewnicols Oct 9, 2025
60658f3
Merge branch 'MDL-88011-501' of https://github.com/HuongNV13/moodle i…
Feb 24, 2026
5adb6a9
MDL-87190 filepicker: clarify error when dragging a folder into picker
nvhai248 Nov 14, 2025
0e3165f
Merge branch 'mdl-84045_501' of https://github.com/james-cnz/moodle i…
Feb 25, 2026
53acc89
Merge branch 'MDL-87190-501' of https://github.com/timhunt/moodle int…
HuongNV13 Feb 25, 2026
f4da6d1
MDL-88036 mod_scorm: Fix duplicate scenario name
mioyu-ubiq Feb 24, 2026
7bfee7e
MDL-88020 enrol_self: Add Behat test for cohort restriction
rxdelacruz Feb 25, 2026
cc5c32b
MDL-86524 qbank_managecateories: Fix questionscontextid on restore
marxjohnson Dec 1, 2025
87be780
MDL-86524 qbank_tagquestion: Map qtagids filter to restored tag IDs
marxjohnson Dec 1, 2025
5f5f44f
MDL-86524 quiz: Update restore test with current tag filter format
marxjohnson Dec 3, 2025
6123fa5
MDL-86866 router: Use response_aware handler for status code
andrewnicols Feb 12, 2026
ed8e9db
MDL-86866 core: Do not log route errors
andrewnicols Feb 13, 2026
32d6f97
Merge branch 'MDL-78112-501' of https://github.com/paulholden/moodle …
Feb 25, 2026
df10e40
MDL-87949 gradingform_rubric: accessible "Click to edit" colour.
paulholden Feb 13, 2026
f533f30
MDL-29421 forms: return formatted frozen content for editor element.
paulholden Sep 7, 2022
dd643df
Automatically generated installer lang files
Feb 26, 2026
0302dd1
Merge branch 'MDL-86524_501_STABLE' of https://github.com/marxjohnson…
Feb 26, 2026
a2b0c71
Merge branch 'MDL-85902-501' of https://github.com/junpataleta/moodle…
Feb 26, 2026
453f78c
Merge branch 'MDL-88036-501' of https://github.com/mioyu-ubiq/moodle …
HuongNV13 Feb 26, 2026
1c8e047
Merge branch 'MDL-88020-501' of https://github.com/rxdelacruz/moodle …
HuongNV13 Feb 26, 2026
05441e2
Merge branch 'MDL-87588-501' of https://github.com/muhammadarnaldo/mo…
HuongNV13 Feb 26, 2026
f82060b
Merge branch 'MDL-86866-501' of https://github.com/andrewnicols/moodl…
HuongNV13 Feb 26, 2026
6b8eb56
MDL-60912 core_completion: Fix course completion percentage calculation
AnupamaSarjoshi Jan 16, 2026
2329be1
MDL-87905 Behat: pause incorrectly thinks terminal not interactive
sammarshallou Feb 9, 2026
ae00250
MDL-86691 questions: Fix incorrect set reference category contexts
marxjohnson Feb 26, 2026
1783fa7
Automatically generated installer lang files
Feb 27, 2026
82296e9
Merge branch 'install_501_STABLE' of https://git.in.moodle.com/amosbo…
HuongNV13 Feb 27, 2026
c688be3
NOBUG: Add upgrade notes
HuongNV13 Feb 27, 2026
e5429f2
weekly release 5.1.3+
HuongNV13 Feb 27, 2026
0bc9ae1
Merge branch 'MDL-29421-501' of https://github.com/paulholden/moodle …
Feb 27, 2026
d949fd6
Merge branch 'MDL-87967-501' of https://github.com/paulholden/moodle …
Feb 27, 2026
fd40e07
MDL-87980 mod_assign: Fix empty description display
laurentdavid Feb 23, 2026
9547082
MDL-87315 backup: Update set reference question category ID on restore.
marxjohnson Jan 26, 2026
329725c
MDL-86154 questions: Delete unused questions after restore
marxjohnson Jan 6, 2026
be95a3b
Merge branch 'MDL-60912-501' of https://github.com/AnupamaSarjoshi/mo…
HuongNV13 Mar 3, 2026
2a5c67d
Merge branch 'MDL-87945-501' of https://github.com/paulholden/moodle …
HuongNV13 Mar 3, 2026
c1de9b3
Merge branch 'MDL-87993-501' of https://github.com/junpataleta/moodle…
HuongNV13 Mar 3, 2026
1beba61
MDL-86112 courseformat: avoid a JS error modal when marking as done
usqfowlerj Oct 13, 2025
0e66dce
Merge branch 'MDL-88030-501' of https://github.com/HuongNV13/moodle i…
safatshahin Mar 3, 2026
0f28bf4
Merge branch 'MDL-87315_501_STABLE' of https://github.com/marxjohnson…
Mar 3, 2026
8923d6f
Merge branch 'MDL-87980-501' of https://github.com/laurentdavid/moodl…
sarjona Mar 3, 2026
d441207
Merge branch 'MDL-88021-501' of https://github.com/junpataleta/moodle…
HuongNV13 Mar 3, 2026
df9a67b
MDL-85322 block_html: trust dashboard content in WS context
Jan 21, 2026
a345c57
Automatically generated installer lang files
Mar 4, 2026
9c21b3b
Merge branch 'MDL-87905-m501' of https://github.com/sammarshallou/moo…
HuongNV13 Mar 4, 2026
8baa903
Merge branch 'MDL-86112_501' of https://github.com/jonof/moodle into …
HuongNV13 Mar 4, 2026
ae7baf3
Merge branch 'MDL-85322-501' of https://github.com/durenadev/moodle i…
HuongNV13 Mar 4, 2026
dade115
Merge branch 'MDL-87949-501' of https://github.com/paulholden/moodle …
junpataleta Mar 4, 2026
c1ab96a
Merge branch 'MDL-86691_501_STABLE' of https://github.com/marxjohnson…
Mar 5, 2026
7fd20ff
Merge branch 'MDL-87657-501' of https://github.com/paulholden/moodle …
HuongNV13 Mar 5, 2026
d75f86f
Merge branch 'MDL-88009-501' of https://github.com/andrewnicols/moodl…
abgreeve Mar 5, 2026
77f7c83
Merge branch 'MDL-86154_501_STABLE' of https://github.com/marxjohnson…
snake Mar 5, 2026
cf3eb72
Merge branch 'install_501_STABLE' of https://git.in.moodle.com/amosbo…
snake Mar 6, 2026
6b95c7c
NOBUG: Add upgrade notes
snake Mar 6, 2026
65b51ef
weekly release 5.1.3+
snake Mar 6, 2026
5d139f7
[NOJIRA] Add dockerfile
iiiulia12 Mar 12, 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/workflows/onebyone.yml
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ jobs:
chunk=$(((($count % $chunks)) + 1))
echo "$testname $testfile" >> ./chunk_$chunk.txt
done < <(grep "function test_" "${testfile}" | sed -r "s/^.*function (test_[a-zA-Z0-9_]+).*/\1/")
done < <(find . -name "*_test.php")
done < <(find . -name "*_test.php" -not -path "*/fixtures/*")
# Generate the matrix to run tests.
echo "matrix=$(ls -1 chunk_*.txt | jq -R -s -c 'split("\n")[:-1]')" >> $GITHUB_OUTPUT
echo "$count individual tests collected in $chunks files"
Expand Down
41 changes: 21 additions & 20 deletions .github/workflows/push.yml
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,14 @@ jobs:
image: redis
ports:
- 6379:6379
postgres:
image: ${{ matrix.db == 'pgsql' && 'postgres:15' || '' }}
env:
POSTGRES_DB: test
POSTGRES_USER: test
POSTGRES_PASSWORD: test
ports:
- 5432:5432
strategy:
fail-fast: false
matrix:
Expand All @@ -71,27 +79,20 @@ jobs:
db: pgsql

steps:
- name: Setting up DB mysql
- name: Run MySQL Server
if: ${{ matrix.db == 'mysqli' }}
uses: moodlehq/mysql-action@v1
with:
collation server: utf8mb4_bin
mysql version: 8.4
mysql database: test
mysql user: test
mysql password: test
use tmpfs: true
tmpfs size: '1024M'
extra conf: --skip-log-bin

- name: Setting up DB pgsql
if: ${{ matrix.db == 'pgsql' }}
uses: m4nu56/postgresql-action@v1
with:
postgresql version: 15
postgresql db: test
postgresql user: test
postgresql password: test
run: |
docker run --rm \
-e MYSQL_DATABASE=test \
-e MYSQL_USER=test \
-e MYSQL_PASSWORD=test \
-e MYSQL_ROOT_PASSWORD=test \
-p 3306:3306 \
-d \
--tmpfs /var/lib/mysql:rw,noexec,nosuid,size=1024M \
mysql:8.4 \
--skip-log-bin \
--collation-server=utf8mb4_bin

- name: Configuring git vars
uses: rlespinasse/github-slug-action@v4
Expand Down
2 changes: 1 addition & 1 deletion .grunt/jsdoc/jsdoc.conf.js
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ const templates = {

module.exports = {
opts: {
destination: "./jsdoc/",
destination: "./public/jsdoc/",
template: "node_modules/docdash",
},
plugins,
Expand Down
43 changes: 41 additions & 2 deletions .grunt/tasks/ignorefiles.js
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,31 @@ module.exports = grunt => {
}) + "\n");
};

/**
* Extracts ignore entries from a local ignore file.
*
* @param {string} componentPath the file path to the component, relative to the code base directory
* @param {string} ignoreFilePath the path to the ignore file
* @return {array} array of ignore paths to be included in the global ignore files
*/
const getEntriesFromLocalIgnoreFile = (componentPath, ignoreFilePath) => {
const ignorePaths = [];
if (grunt.file.exists(ignoreFilePath)) {
const ignoreFile = grunt.file.read(ignoreFilePath);
const entries = ignoreFile.split('\n');
entries.forEach(entry => {
entry = entry.trim();
if (entry.length > 0 && !entry.startsWith('#') && !entry.startsWith('!')) {
while (entry.startsWith('/')) {
entry = entry.substring(1);
}
ignorePaths.push(componentPath + '/' + entry);
}
});
}
return ignorePaths;
};

/**
* Generate ignore files (utilising thirdpartylibs.xml data)
*/
Expand All @@ -67,6 +92,20 @@ module.exports = grunt => {

// An array of paths to third party directories.
const thirdPartyPaths = ComponentList.getThirdPartyPaths();
const localStylelintIgnorePaths = [];
const localEslintIgnorePaths = [];
ComponentList.getComponentPaths(process.cwd() + '/').forEach(componentPath => {
const localEslintIgnorePath = process.cwd() + '/' + componentPath + '/.eslintignore';
const localEslintIgnoreEntries = getEntriesFromLocalIgnoreFile(componentPath, localEslintIgnorePath);
if (localEslintIgnoreEntries.length > 0) {
localEslintIgnorePaths.push(...localEslintIgnoreEntries);
}
const localStylelintIgnorePath = process.cwd() + '/' + componentPath + '/.stylelintignore';
const localStylelintIgnoreEntries = getEntriesFromLocalIgnoreFile(componentPath, localStylelintIgnorePath);
if (localStylelintIgnoreEntries.length > 0) {
localStylelintIgnorePaths.push(...localStylelintIgnoreEntries);
}
});

// Generate .eslintignore.
const eslintIgnores = [
Expand All @@ -77,7 +116,7 @@ module.exports = grunt => {
// Ignore all yui/src meta directories and build directories.
'*/**/yui/src/*/meta/',
'*/**/build/',
].concat(thirdPartyPaths);
].concat(thirdPartyPaths).concat(localEslintIgnorePaths);
grunt.file.write('.eslintignore', eslintIgnores.join('\n') + '\n');

// Generate .stylelintignore.
Expand All @@ -88,7 +127,7 @@ module.exports = grunt => {
'public/theme/classic/style/moodle.css',
'jsdoc/styles/*.css',
'public/admin/tool/componentlibrary/hugo/dist/css/docs.css',
].concat(thirdPartyPaths);
].concat(thirdPartyPaths).concat(localStylelintIgnorePaths);
grunt.file.write('.stylelintignore', stylelintIgnores.join('\n') + '\n');

phpcsIgnore(thirdPartyPaths);
Expand Down
4 changes: 2 additions & 2 deletions .grunt/tasks/jsconfig.js
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,8 @@ module.exports = (grunt) => {

const componentData = fetchComponentData().components;
for (const [thisPath, component] of Object.entries(componentData)) {
jsconfigData.compilerOptions.paths[`${component}/*`] = [`public/${thisPath}/amd/src/*`];
jsconfigData.include.push(`public/${thisPath}/amd/src/**/*`);
jsconfigData.compilerOptions.paths[`${component}/*`] = [`${thisPath}/amd/src/*`];
jsconfigData.include.push(`${thisPath}/amd/src/**/*`);
}

grunt.file.write('jsconfig.json', JSON.stringify(jsconfigData, null, " ") + "\n");
Expand Down
8 changes: 8 additions & 0 deletions .upgradenotes/MDL-85322-2026012001565471.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
issueNumber: MDL-85322
notes:
block_html:
- message: >-
Treat Dashboard (pagetype 'my-index') as trusted in web services so
get_content_for_external preserves embedded HTML (e.g. iframes) on user
Dashboard.
type: changed
12 changes: 12 additions & 0 deletions .upgradenotes/MDL-86524-2025120211115999.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
issueNumber: MDL-86524
notes:
core_question:
- message: >-
During restore of a question_set_reference, mapping of IDs in the
filtercondition is now delegated to qbank plugins.
If your qbank plugin defines a filter condition that uses database
IDs, add an override of `restore_filtercondition()` to the `condition`
class, which checks the condition's data and replaces the IDs with
mapped values if required. See
`qbank_managecategories\category_condition` for an example.
type: improved
8 changes: 8 additions & 0 deletions .upgradenotes/MDL-87993-2026022007035360.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
issueNumber: MDL-87993
notes:
core:
- message: >-
The `core/toast` JS module now accepts a `visuallyHidden` configuration
parameter to render visually hidden toast messages for screen reader
users.
type: improved
55 changes: 55 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
FROM php:8.4-fpm as php-base

RUN apt-get update && apt-get install -y \
$PHPIZE_DEPS \
libcurl4-openssl-dev \
libicu-dev \
libzip-dev \
libpng-dev \
libjpeg62-turbo-dev \
libfreetype6-dev \
libxml2-dev \
libonig-dev \
libsodium-dev \
libpq-dev \
&& rm -rf /var/lib/apt/lists/*

RUN docker-php-ext-configure gd --with-freetype --with-jpeg

RUN docker-php-ext-install \
curl \
intl \
mbstring \
zip \
gd \
soap \
sodium \
pgsql \
pdo_pgsql \
exif

WORKDIR /var/www/moodle

FROM php-base as builder

COPY --from=composer:2 /usr/bin/composer /usr/bin/composer

WORKDIR /var/www/moodle

COPY . .

RUN composer install --no-dev --classmap-authoritative

FROM php-base as php-release

WORKDIR /var/www/moodle

COPY --from=builder /var/www/moodle /var/www/moodle

RUN chown -R www-data:www-data /var/www/moodle

FROM nginx:alpine as nginx-release

WORKDIR /var/www/moodle

COPY --from=builder /var/www/moodle /var/www/moodle
132 changes: 132 additions & 0 deletions UPGRADING.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,138 @@ More detailed information on key changes can be found in the [Developer update n

The format of this change log follows the advice given at [Keep a CHANGELOG](https://keepachangelog.com).

## 5.1.3+

### core

#### Added

- The `core/toast` JS module now accepts a `visuallyHidden` configuration parameter to render visually hidden toast messages for screen reader users.

For more information see [MDL-87993](https://tracker.moodle.org/browse/MDL-87993)

### core_question

#### Added

- During restore of a question_set_reference, mapping of IDs in the filtercondition is now delegated to qbank plugins. If your qbank plugin defines a filter condition that uses database IDs, add an override of `restore_filtercondition()` to the `condition` class, which checks the condition's data and replaces the IDs with mapped values if required. See `qbank_managecategories\category_condition` for an example.

For more information see [MDL-86524](https://tracker.moodle.org/browse/MDL-86524)

### block_html

#### Changed

- Treat Dashboard (pagetype 'my-index') as trusted in web services so get_content_for_external preserves embedded HTML (e.g. iframes) on user Dashboard.

For more information see [MDL-85322](https://tracker.moodle.org/browse/MDL-85322)

## 5.1.2

### core

#### Added

- There is a new Behat `toast_message` named selector to more easily assert the presence of Toast messages on the page

For more information see [MDL-87443](https://tracker.moodle.org/browse/MDL-87443)

#### Changed

- `\core\output\core_renderer::confirm()`'s `$displayoptions` parameter now also accepts a `headinglevel` option that developers can use to specify the heading level of the confirmation's heading. If not specified, the confirmation heading will be rendered in an `h4` tag.

For more information see [MDL-87694](https://tracker.moodle.org/browse/MDL-87694)

### core_customfield

#### Added

- Added new `\core_customfield\api::is_shortname_unique(...)` method to determine whether a shortname is available for use inside a given handler

For more information see [MDL-87059](https://tracker.moodle.org/browse/MDL-87059)

### core_question

#### Fixed

- In order to prevent re-use of question version numbers after a version is deleted, the `nextversion` column was added to `question_bank_entries`. This serves as a counter incremented each time a version is created.
Do not query this field directly. Instead use `core_question\versions::get_next_version()` to read the value, which will initialise it based on the existing versions if it is not set yet. By default, it will increment the version number automatically, unless you pass `increment: false`. Because of this, it is advisable to call it inside a transaction, that is only committed after the version number is used in a `question_versions` record.

For more information see [MDL-86798](https://tracker.moodle.org/browse/MDL-86798)

### customfield_number

#### Changed

- In order to fully support shared custom field categories, additional component/area/itemid parameters have been added to the following:

* The `customfield_number_recalculate_value` external method
* The abstract `\customfield_number\provider_base::recalculate()` method
* The `\customfield_number\task\recalculate` helpers for queueing task instances

For more information see [MDL-87714](https://tracker.moodle.org/browse/MDL-87714)

## 5.1.1

### core

#### Added

- Added clean_string() that prevents double escaping in Mustache templates

For more information see [MDL-87066](https://tracker.moodle.org/browse/MDL-87066)

#### Changed

- The Hook Manager now uses localcache instead of caching via MUC.

For more information see [MDL-87107](https://tracker.moodle.org/browse/MDL-87107)

#### Fixed

- `restore_qtype_plugin::unset_excluded_fields` now returns the modified questiondata structure,
in order to support structures that contain arrays.
If your qtype plugin overrides `restore_qtype_plugin::remove_excluded_question_data` without
calling the parent method, you may need to modify your overridden method to use the returned
value.

For more information see [MDL-85975](https://tracker.moodle.org/browse/MDL-85975)
- When responding to pcntl signals, call existing signal handlers.

For more information see [MDL-87079](https://tracker.moodle.org/browse/MDL-87079)

### core_completion

#### Changed

- The `completion_info::clear_criteria` method takes an optional `$removetypecriteria` to determine whether to remove course type criteria from other courses that refer to the current course

For more information see [MDL-86332](https://tracker.moodle.org/browse/MDL-86332)

### core_course

#### Added

- The external function `core_course_get_course_contents` now includes the `candisplay` property for each returned module. If this is false, the module should not be displayed on the course page (for example, for question banks).

For more information see [MDL-85405](https://tracker.moodle.org/browse/MDL-85405)

### core_group

#### Added

- `groups_print_activity_menu()` and `groups_get_activity_group()` now include an additional `$participationonly` parameter, which is true by default. This can be set false when we want the user to be able to select a non-participation group within an activity, for example if a teacher wants to filter assignment submissions by non-participation groups. It should never be used when the menu is displayed to students, as this may allow them to participate using non-participation groups. Non-participation groups are labeled as such.

For more information see [MDL-81514](https://tracker.moodle.org/browse/MDL-81514)

### mod_glossary

#### Added

- Function mod_glossary_rating_can_see_item_ratings is now implemented for checking permissions to view ratings.

For more information see [MDL-86960](https://tracker.moodle.org/browse/MDL-86960)

## 5.1

### core
Expand Down
Loading