From 3528a7e1c74802553349dc5bf8baa197734ac8f3 Mon Sep 17 00:00:00 2001 From: Michael Hawkins Date: Sat, 5 Oct 2024 00:39:48 +0800 Subject: [PATCH] [docs] Adding release notes for 4.5, 4.4.4 and friends --- data/versions.json | 25 +- general/_releases/4043_release_graph.png | Bin 37747 -> 0 bytes general/_releases/4050_release_graph.png | Bin 0 -> 39621 bytes general/releases.md | 15 +- general/releases/4.1/4.1.14.md | 25 ++ general/releases/4.2/4.2.11.md | 17 + general/releases/4.3/4.3.8.md | 59 ++++ general/releases/4.4.md | 2 +- general/releases/4.4/4.4.4.md | 62 ++++ general/releases/4.5.md | 387 +++++++++++++++++++++++ nextVersion.js | 4 +- 11 files changed, 588 insertions(+), 8 deletions(-) delete mode 100644 general/_releases/4043_release_graph.png create mode 100644 general/_releases/4050_release_graph.png create mode 100644 general/releases/4.1/4.1.14.md create mode 100644 general/releases/4.2/4.2.11.md create mode 100644 general/releases/4.3/4.3.8.md create mode 100644 general/releases/4.4/4.4.4.md create mode 100644 general/releases/4.5.md diff --git a/data/versions.json b/data/versions.json index d2833ab09a..43fbcc7337 100644 --- a/data/versions.json +++ b/data/versions.json @@ -3,7 +3,6 @@ "versions": [ { "name": "4.5", - "codeFreezeDate": "26 August 2024", "releaseDate": "7 October 2024", "generalEndDate": "6 October 2025", "securityEndDate": "6 October 2027", @@ -12,8 +11,8 @@ { "name": "4.5.0", "releaseDate": "7 October 2024", - "version": false, - "releaseNoteUrl": false + "version": 2024100700, + "upgradePath": "https://docs.moodle.org/405/en/Upgrading" } ] }, @@ -45,6 +44,11 @@ "releaseDate": "2 September 2024", "version": 2024042203, "notes": "Unscheduled minor release" + }, + { + "name": "4.4.4", + "releaseDate": "7 October 2024", + "version": 2024042204 } ] }, @@ -97,6 +101,11 @@ "releaseDate": "2 September 2024", "version": 2023100907, "notes": "Unscheduled minor release" + }, + { + "name": "4.3.8", + "releaseDate": "7 October 2024", + "version": 2023100908 } ] }, @@ -164,6 +173,11 @@ "releaseDate": "2 September 2024", "version": 2023042410, "notes": "Unscheduled minor release" + }, + { + "name": "4.2.11", + "releaseDate": "7 October 2024", + "version": 2023042411 } ] }, @@ -246,6 +260,11 @@ "releaseDate": "2 September 2024", "version": 2022112813, "notes": "Unscheduled minor release" + }, + { + "name": "4.1.14", + "releaseDate": "7 October 2024", + "version": 2022112814 } ] }, diff --git a/general/_releases/4043_release_graph.png b/general/_releases/4043_release_graph.png deleted file mode 100644 index bda6d04e206da790d3624bd9f4ca6d502524259e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37747 zcmbrm1yo$kp6(qb5Hz?Gf(Cbj2Mf};JHZ`-J0!RScXx-zwUGpO0*$*nG}c%nw|URJ zXXbn}=dM}z>(y4h*WSCTc2(`F=l6d)R6$Mx^)2DsXV0FYN=b?-J$r@_4gY?R_yYdU z0n4L>e;|F6)O39I46Xa=^*n(djp*64_s^ungjL+q50_kZuqBAzoXpV^6ZesmhzW~- z#!wKe{tBr!`n{anE5{H@2nykB(8#lsG5i^!;ip?|BphET`K~+c!Y8l{_V7b704u@4 z^%n$o8s%u_>Tc?KX?r<0ryEvi@sx#sJm!Do?EU@y*|XJ`l!yOJ)gfZK{4=5T3W@KZ z2}ZvFlD`w*aSal#eKjo zFG81~gxzCm)r73&i5Mutlmt+WFML_D_UB$Xt+P`EH@wF%fxjcD^fS0ll5%2ZX2$7# z{p%Lree$@$`8peAudpy?Y;<&V=bk*j?9ZPO*9gq7UB#*6wzjrXQd2FteiF*lCE#LX zCnqPH^G0itb8=2~cD@iWg3>ZDV2Ag7`SK+dEx)0EbaZ-VX6M@{cw!stZQ$ELzp))F z-sn_$rlg(C&E%963wTy@v$MbF(&lqbQZq7+3=jYO{p(0j6?sXheqdl=91QO2(Sj<_ zB@hr0;Ns#w9rg2-ynx7YV0^OQisaw*`RrdSSGW`H?=7Fh-y6L7JCQ9OUG?(s#Gen6 zv(Nudn7{j%YX|^8FXp-jm87Drv1>3S>M+eXVW;Mlm1%2e6z|arM)hqVy?Oz^FpAUD z)9`GjMvAaAFfuADD|3>FtFm%)%gf9EwTIo;Z^w7d%<0XlWoqc8{KXS)lLO=9tb&4i zU`2BZZ*T7$1^Dsk^2Nh(*Vfja4wK4hg^Pou+I--o(S8~ssn&eJKt}B!D{)u0_tf?W z9gMn2+ey{Iil3>v5dU4{`hO^YOc?cHd?!qs<|?h_Tx#z_%gNM~K&^zw*ey+opRX8a zJ1jn;1BgE>sc6XC16**qIAa9)92x-2V}{(wVE{HDp9@D2rNQPW!@_5EgB)&g=EN(8g!E0R`u`b`xw^ zyU_*~Sy6_I;>uovpikk!bS@{++xzA5ikZuy@9SO?vm9&24zc&eS6AN*CGo-vv%?Nd zXB*MJ332NKJ-}raG8$UD^ZoE6u5-!IWTxq_y_Q`Ox06Aa^jKJ=$&<ifiZSh%+M& zV~+)YH)M9|Pk+dtRsSJRD`jW82$L(u#yt5k8#N7h%~WKK97MI+uBHe^0GhVvz^$8Rj`}sSjUWT|JVDN?-9IRfOp*`tMmzr55M*7rS;Sq`|7t=Q%y;;XyM=PC8s5BfbOqm*})ji7;KzDuiQJ$=MJ z8-jmz$DLxrkuT4rEgN5SjIAsmmEm9yzSsj7%4KmuVPp?p4B!bP*-FKZ=f@uFN@nyZ zK50@b=#%p9+H7{hh~xnl6H{gZUA3YBubqmv`0d$h*{;&4y4>z@Z3GTi2M2rj({kEu zBtxBC{n)2Rc#F+c5k0(h0vy2$yfX^zIw(ph#a+M30CmzkZ~Q_dX+c{^0eeI5mQ~Lk zp-_~xk@Teu8rlTbuPJEP?pc)vN`9ZGlp-mnA9mk0nwkTc?H(H$lb9~oRK4>pdpLIa z!838A%fhy*xUCeq*4HHvOOEa_#>`=?fO&#gx-BijeR9V(!z z6qhBr+U=}03Vdo{ex_%h$V7&YIntihudw3}crPAmp9KYGJ;7EM{Hin7bU7p+X zl}Ry2f6eRTWnEMd$_&8B&hglpslwsrec}K>Mo|<=gLdatTq>-0K?M-2+ zAebq_MqqeG!inuY&}m&Q6|>3s&M%u1=c8_z#d0<&L{me7i~MYuC@PCkYav;k;cQTt zHG}4EmhoY1<72@kNGaxeCw=VzSX8VP39hMM8UlD$w#A0WG9L+?PPaMEq$X5vIHmH; zoIX6-8Ydn%ZU#cq*i4k;2l)$2mE;bXY-*SuJk}C)G%@U1-cPh!L4quA&>D9I?aJqx zJ0N9}awdzKeD=Ni@&Gh!&mt!Plc!HbZtfDBqdz)u@eYRdL*(pkuz&^=*(&^u^3Y-Z z#cnzizk1t*c<(6IQ9IGEKdNoofTS8|DhDxlpmrAEop;_gaN^ME_TbFwkgF~D6Lor9 zrhbk0gcydiJNWR|&g)WKqdm_1V-PgyzTwS{9r`uUj@>&IqX7UK@C7dV%-MOawjz0# zCkJ34bhSK&;F#TAEuQFu3Od5c$&c^vnSa`;#fQ+}mJeOd*VyhULBx}$hY5@qEw?&v zC@RW(t$-d8pn`$m^*Mc`j8JM)2Q%rKjd!w!q2Mp)4d zq|qrGLUw*9SH4(R+Yv5E{zbMoOOMU*xLDlxuIhMrQ1zVuClWbI12p;_{phug&_?6O zuc?h@Bvc2Y){egTXI-u?)NK;wn&V%x43n=2Z@~nQM@jcwBm561 zHO>ofc+V`?B@LcE`_8QX5Rk$4c)9F9w<1F}nLR1M7l0wcK*YJ8=(%MAu0NVt__%j5 zhgYMt!!DMR6rWsxO0&L&u4GlJV7mnbeSn@;MDK|E2U!yzeHsX5E_K*dZr+He41N>b z7K0^XZ^OUPOpCdmX=NUQ+v7~clC3v;noX=KVIXa&^t(t~X>Q1}<7_75_m;y&dT_;J zmC4SwGx8S~mdAs{tXRe)=*n3Z5wa;T(iout1v6+=F*j| zRE~zoxVQ?a^Uo3vyiVVM(#h)uUm)a^>6m-261fuxt(sC zpKog=D`k6EXv;)_=R9z2a=?fKQ%}LdN;nx1ZE^b{7GG&Kr6C|i3ta^br%y1QB`rls zL*%q#-Vr1+Fy3=Mgerw4Yipk`QwlKN+AR-pYvMvHG*sIwk`Xe@Zg}kypdn=dg;68GlB#fNc(W(k) z0-XgCz(T5}X8XOaToeKQRC{}kT{p6eC6&z)@pkOyN^#v8cq%%?*$M9BQYl%ywj%=V z1f$Kordx-4Wq0V?Tox+|>SHaC*axWHBh+YY>s-Bi_7?5Pax|N$o{YQJcG7PO>|x6* zp(UGfoLf^rl%Jo249gvhwJ}4c6+x`z*Db`JLo{u24$jinFFxc*o zT4A*Z%Y(;^uZ~wbaMElieHLXFk_!$@(KVWHqw^OA1sOHS3>R8%CV$kXq~Jv{Y2th+ zU$I^M(AQYTJ-XlKu_5mAh|@+?b-_<_X@!Y*B04rTt+A20rKg2bf zIa+SW&w|E*i^z&w*{k=fb#GBii99bHlz1{vlwwTkg2K_%QrmbiiOXM<2{E{$Jcv(bED`m5#+tLP%fU35?7F9=UV*5TqZ zUoP{#P0e3}-GHob$HVO@Pi&eeH-DY3Bir@w2uB}h$fMVLne#oy1}Mu)Os)`D#@PM7 zIF;g6*6d~K{8Z{ly)~c5SI5rrsi{$wi69(POAS{!He5aHT}-iXmFZHfto4XP&C(7V}liyhAQ zi3fjh=569|!-T$X(DCJ9YLnS_;8RY zVouMgdhY9h=(=PHq}zx^8K~B$`3@g13Tc_~!PbQs*5RPh2#vbZ+1ZMWBYp8#f!ply zH5UK_r0vV&h>DEV*dleq*8%;QqFtD!JFmszBi^9WXn^i=Mn)eyOpZvS(IM{!6UrCm zG=$8LQ#d8RRQl9f-p*t!Re^t|EVq_*95?GG$nTVVORqWc7aB=!yNC+L6|DWjG2N|= z>|_Ijy8IM!uq(kT5NNLM%ZwAEWE<& zB2>m7{9T87C=}f%xjdW7PSl@_p77HYc)8KiE5Ky3%oQ}r{^+wO&?@8a!fwXZbbbC% z6jnL9p^*P@4YeY+mEB#Qu9Zz9a3z@rs;~GD3-(z5S%eRGzF!^O9WYKM?tRd#YOZ(d zeXoAf#JqcbIK{E`W?-fhj0A-}f7JZU$ zs4t5?(!h`ViBEn_NWgoOt>d|B)-QJJbyK6|uZN|KMo8ogOi7nZhHh@Z^>ehGd9@h* z%0J*#fD&fnLo<4c8X)NMl@n$b>a?T05epzf%2yKk2vHnot&yvsN2=9u;MGy zK-1jZsp~627@h0iG>_>MlaH6a(H;ZjCg^L*xr!z4up5D*FMEfQxdQ_*az*jQfF?61 z9~#+57apaJwI?+yve=GU|^>J^u<0J_{EkoHO|ghEKT#AUrsa2 zsh{e4dd$rd95xI6!02RUS*>ezpESMO&CrkSF#5J6u%v8f+m=+Y8l4WBIW|SJ-phAf zjX+?oW#O^mtE;tLJ~rM}5z*j9Krr6HsfALsBVX5`iU2U>8OVJ6FhnG4_kOhLf1&a9 zCRL_Sad)w>JlOX=1qzXi1>1dog#4H*Z3rJra5Tq}oyh9IzA)eXB1uf1ADNM1KM%!= zE%o;F7oCxl<5JURM*R@5`wi8pMgNn@5#J(nK9}A!MF583ALEJb`X!_3pIW|c{9|iF z-k561XP4va??n(92S?0C6O5Tl`TE-zPZ9Nk|A^4|QwPbokT_Nz6PS$-)PzRv?cn80 zlAtFca5bzT0AYz3o#Pv^d!UgQUh09~<0}QBw0FlpPCx-8cD(o6EAF~vl^7vnNI(32 z+9>W=@H~?xdw2G*K70tk*P0~^iwm#tujsltQ3{n`B9cRNC%$BH^*G2Jff5!4GTpeL zWQfFi9S>hRnuS!$%6AN46$-&lV+Wz^&0b957^#N%1m8l%7~Tgc=y;R*V~Efuq6Jei zVjxq!I1|(g%548ZDVj~km5NyVDp0<%lGK-VTQlJPPc7~_xo(ym5Qp%D<4Tg^b z7!n}wA1YP0YNmn*Ta>-{Dw#iZ*SG=i+YgfM-N0)KKT0I@<%jUN4Fhm|Ok7NIO~_%} zf!N-rsaI)29iu4)Z;VWSGFxXccaep+Lzcm;+nvZ8E*Uy0%nvft(=)4VvP*5AX#pfi z9>8ow@(7)D?6C*$(;kb$bPzqry`16JTJXA2dFdr+_!9+HywTOT9M8@p>X2fyilW6= z4=AlhR|ZRX(e_`KGrc3-1{ zbFaTh%67WTO%%puEsCR=Sp(>qLsxzbbxLN}?28|bZ0h-{T_wmfT)t`fxGVs*6G0?L z3A%3$j1!aanZ5VxSzoxa7)9^6KaowLfNDW+EMDw%`~51)z1s{RHsC{$3J>?19;fN(jD`?FsqQdGi|{gOtD zg)vSM1^7Ie8ng6d#9zBPy!}9`Pj^}Ou3#P|2pTdFXWivu`*vt_Oj7QhBO>`+>5Sdv z{F0{78d6uTDpBoBVK)Y%&|7@c~ti;P?s8ox`;b~lA5Ir1Ufkulg!ZaoMo5n z$2)>cr{7acVza)TUv9Sx)tI_i+scU_-%UR{0R1ptBV`D!z8~Ma?W*R{Q=Qr~PVu-n z;fh-c?Poi@-w6BNAR~g`Jpl1t4(nDf<9=0O*&_v*6JB0b^QVhXlZpc_kBH=o#+?s) zCIEGZeG6o`T|Ke*U?z|7L4!O%jS``J{#)K)oU1;G*=3t=q*mks-yVo#kV&$sAL5L*$symv#}&NYVb5Xd7gj|u3*`8llg`+W;EIZsNVFi{5G=_aQo zU-^ehj{EuQyu!RTb!&pL*e%K+V!>~Dsl@t_g`!ET(fMjQYY{|$hWRD!SRea?{kXHM zqjTt7*AJ{OvYIn#q7Iq5FxV=^O;MkYIc{IeRionpKwi&-$q=)%nvI=dSgPz=OW+MN zVLJAuUGi=k=gbT$$2toVxo6(3w9@E}PwmNrZvkru<3g>|UVE7!aVMRO_w`WNN^BjS z9Zaun+Q?@Y)9qkU`DS&63FdB(NG^kk0nOOmYDe;K?0=;9_BMGeA$@?^$>fMvLhg9X z&KYgW0aP9*GOOK>o@i~pHJi&SZUtK`*AVB zV5sBWtRmHix3{A>#t-N3>w6}YeIqTqsbxe`g~Fk6I=Wk%p0~Od=4?gA0Ktw8wKzzy zFaKk?Z|Q@um;TzlL9&rv>5|+-sFQt-?W!yNbfvlJK*H8&t-RXB{R?T6`LsCSeOc=v z4lk&2m)9IJf?|JW&y9ju(RjR&+sF_drwyxOdMmpNxUnvzYDAYv4!^H>HtyA@-iqEU z?xbbk8-p((QMChnP02L$C!36 zr*Bf}Y{5mA_hFkwv5}xenY!(m>$FF{)M4WVEE8L=p!>s(Hd)!Zy(0OH$XLa{a>3`m zAO!YjX47jGQ(KRK4ERgm(#DHNO*$K~Z2d3m)K=Kc9{dwVOAb8>!eQH{%}6%ZV3 z#rt-|e7amyMMY%`2sXIs<<4^Zke13y5YNA^4<{l>*7J{5GdIg2-mYhYLUvLz4Lhkg z_n0n>b6IC=`<^7QQ{RYaMr~hOY3)Aym(M0ixw#J44(!X!w?uLjauiN(?#9O6;$S#1 z=gTf|^%SkP;5;Fk&$7MS+++*C_f7l#9gGj2exabdNz{1S_UsR-noaxT&;rxeZ?aml zsd?@U_>U?=|3P;qH9nGeTolh95MkH+5eJAO-RxRSHY2@3D5oZLe?#0K3qFVoR2mcCA;M;-!G4GC;aX89_a5R;un*sxGL86<^=JdAH1T+K028H=!88 zI)zXn(4j1>#cC{xQhaJzKs&))1o61I!h?gWrX^dd46A`_@~u{C)k52q`Ut}NxPh~? zGZ|S~PNFXnGzrqkZ{Nzu$Z(KIRz$-wn}I=&z>W~7HvChAfs2i8!s)%1C3ssl0n~YT zXbq=FXu-+Z{xLR6T9GZ!B-$Ao!-`Z$r{J96m z$0G5OMw!7cLySTg{s{^q`Rf;``iO?Lb3s8t_$10xPEJlJC@3{GHBXJ?tA#~MVq#Ec zwa4!M{{G&cK|F9CpNI%KP$X0=7mkVr;cbLEF4St?@|R)t&!0cp*x2B^*%*BN`Weh2 z_c+aOBF$#)cW*BRO00#{V}9J39aX0RIOVR-|RRdF^NRZ;9#u zj(Yz~8>!+TdG=Yggn+rK$Rahjcu-3f?n#0_{SFvTPN)1nGjyMoT45kh~NYCpQw6ESRH0rM^u)-n34UDi6w7XsiC!XdPYXY9xX@L@Gt`f#Rjrj zgUz4St#CY5f=De*Esgxb0t?=^HrRxh3Y3@@ykT$c?d?M&Bd6h1cJF@e z(9&7z{M(R}V_u97 zgeSY{GvqXvWbW~*VBmnJ%Zh`S_6Am-r)|UpBUcL8Yc{Nh{gxMh+`ZEFu3^8(-(da9 zB%=4x`K(VZ{qX@1S2f}t1o7=rGn?(Ht_VK5H~VPiJ7W*44U^|SP2OyD%2gN5WZRkB zTMD0khmXr2u1ep?(f4Yh-SBysLq6nS?J4U!V*AoqGTt{d;7CfAq!+?+{K&qrx1^Z$ zc<6UMLDCSya^S*(|0nHt9zFe2ti$)SlCO4p_|P$-(0sYQ7pHk0kFHV^2HPze3yq@( z;Rng25i%$sPasayG+wsi|8w8RkgRRf#?Ozcut!&?r4efY!eA~ggKh6_mnzAi* z-8GwYBAM=#)Ud4aq0d69z*gsiM@5|MSUFt1yI&NtJkk-!DEa{?l27CHo}VOOSGSOD z0H(t-{yV`Hy1%KG5*G?$%CtPX&@Iu*qQ5*fELW!WA33(+@B%bEc3>D2Y4dA z^r=cT7}({q?W8Zz(b$U_xwZPq@FJLhBIlp58q_6oB{fr+pH)pM{GQFfe|& zOIYlm+|8rg6yj;HnW;Cn=M-ca(!3h8A+Y&fwZ~d_la{?Om%k~9X%>+Fi5Ne#H2d{f zr=b$+h-_FAZaa#g10@TWgj{%LV2>F=YI3yYdK_P!3`!i@OFrr2MGs|hR*u&DFkvTk7q*^#UC<0QF6(z1P0t^1bcav2BXegHl~|Kie_s$%6ZF0inOzOSz&H zM-s>*%A!_8j`h8| z~?(8l8okeXUAaJ9$XR+zpy!?pyIsbl1u0J@b3Vr5R67n&E^oK{M3Q>14+;aKPIeaQ&o0W22u~viiGIpQLBX|jVTN9E-Pcky*0KB zuRBWs9cL}EY32It7}&c1_%UA4tNAV#%Mqq0!$lr|!A|1|o*9b`qj@%wXBSL`iz)Ic zk&(CQbi-()9vZX~6<;knWIXF)j($5`{ieAfO2NReA1YCT0$&I3OwZEYJ1YrSD*=H_ z3$0t_326su9ClVTQIRqe?)uX7dO~3`wu>f`qG%O%OJx;HL$I8W`#)R#!X8H@#co>EB8b#_ zU$X?>1+MOE`;+QPe;KG}#qYf{l?xEY66v-;BA$poJte6oW)H`_*VlC60-r3Qp2_F} zn&ld5zQeEHGjp|Od4&Lj$2(uM4m=|RU&u@3vaq;2W>>x&Npx(8?*eY`?KPzXf~*EaD`8RkB4 zL_5e}!a%`H>d$Gg2^YWU6*-viTV+;Dte&NN8u^fm-8rnm-eYxcHN7;v_RMP>jWGgp zyfk$(T4F_DLP_-zsJk*CI-D1od4F9v^E3aXiDu@KLBGoSK(!gxn8#b@*6N?CYTR*P zk6Ljkn@M`6U1w}nReqjKZd=etqN$KDP?mXjd5 z+?Q2BZDEK^91I-=J$J=6cvtxIVPE_FX|+M8$%Ex`W8kabzsFw#5>Ig)Sbhar@LIJw z7&w2!JDrU6rkH%+m2@u=&yBA9Cle3IpooCI&0XDh$&pW!uXou?W~M>kuJ4-N3~NwQ z^@Q*$jkPT8bEQOG-ET}!wELt6s1ob zcXcvp7d$3j5Ng~xGvi0Pz3_=^;-c$;u5M+EO;gV6q|5jOtwN_Tz>B~1a4#HTW$<>}? z*NeJwYMBqTIDnYjjhRaOCe9pB?J+K0(?w?ukdIeeDOwX|4;d83Q$DbsH}kN>o+@b}+~!nhxyz=^YI<419!{KWhNs_&l>Zy5b6*l|d#|@5 zYyPm`Kh{T<;6v&QRr}pyb(5GgE5|fS9g&V_w7NsD z7lyekOEaZZfbCZIOky2459>uz&kt?CdBLS^=xh{b{aNPml^{q|b;9aT=fGktpOvGl z2x3}UpKYsc%v?i+*~$)t76{HJpco;A+;1%oDOI|2)!A3m$%M!zDdg`qDu5yB#j`$1 zCZ@)F8n~X4S+S*~jjecQ+j9ja6=jb-poahqlJ@8K9dAs_=9vVqa$Xt5=hoaL(pE6@@=_99QKLX|3tx?ZFLIqRGF3PqNMg&%gXP zz@+Xbfry!xteK*@Ac{y%T%ysfQPlq!xzMwHkFtIUyP=_wfytUpJ?0|gS{otv3|WgD zB9c2O(rH`%W-0#q^Jy5wQEd+(0WG=m&EH>T&FrWhju32c_hw?mra1|zO*B=+Nf}Ip z-V5twiBss@^iTi59YmhL^i~*`2wFNZ*?5c2geqgWKi_a!=jO=Gk-`Pxts#TVk7j74 zRZs-*BVU}OGTipt-XGn%43stM4N{@7t1}08CNCiIGl}%9o)KdcjG+DAb?MA)M}S?nzFr~AbzyXI2Qi=5T&c&}fEFR7wpuH}kP+}Y@XSaCR~pcWm+d)s|PbNOz0 zUH57$Km+7j{n70kv*P-?zy#-3e^6AdGekNLMcZAz7BCB-1g)YfJVpsUq~ z9bIiEtwo8ixI*^u9oGWwL2|%hJYQ<71D{7}0vL_^Ar1Vd$EwXBP_I>0zA#OzTUY{e zwTr8w5FVH|N*ZC|{d5mPt`z)P;i-SCBdplHI6iOzZI(neZ6dWLoAvS>ml*wpIup!) zBxLK0+f%;cURAVf`^#TtX0J>F_mD)BUt5Cpz|})N^_qXGK^CuQWj%INXXi3=+QI;7 zKC8mBNF2CjYE>Lksx`J&bB>QQLSq3%y%Ng+GFGuE8aey2KAvg z{E@+evTxsJQl43BW9Ugwr_gU_bTDVavp2X}vYSN6VVy|eqzb90uNBO2WS;y5#2XjB zdJ^b3%46-GNh1q5@Vm+YXyUq~qvIJ)M*~;d=)czR$t<$>ZXA%xy~;MFmTmFiMh-=j zHEn5LNSmEwhOK;q!sh_upMJ);b@>WM!|rn_G8%yd<>hu+LWJ$rEz`ahtL z&g0zzImnB~Lrl(jHLDT*qrZ4w{Y(%iO|9qFsI6AV9-7PxZcMq86KiM=YkAC6QrlbR zOAUvG-_HnwGx!%r_Sx|sCP3yblw0f5Q#4zT^~?RrzEdOuhP^EhEnG;}V8L2>g-v+jPz~fr$9`2)aj&ggedmE!z;rmD zlh4UQ>WlTsa+m9%S7yPs*P73mkN4%b)c{51Y3O!zy4lQw;I*XQzB4Z;(m%mLZp($W z$(7Bfk zz#4apJ~l}!oftCl^st@i^|?5JAxY`Z(^*uMEl}QXZ<;XwVQw(T7YCC;C2f~m_f}W4 zpJZwT{+A+>KR$OwU7P)-VWp&`q@w2ag5go{EG+$lgQZ~!;Q_g_MBHjUsZ#@so%{k7 zlk~4G-zY1C3B6DViHOY1tZb+&EaCf^7#n-74L6_?wtAiB(se1)1CYZf>o{a3aw0^! zNW;XmQrYiCn3$O0ZiuHydbpxvWN1j|nt_T}Aq9?9*I`c?{-u`**MJaes;b}t)(Ui- z_xygTqZ1QsjEoiC1Y|0&DJUqaHFPvI_Q{DAUgM(#!PQd2Tb2FX%E~cgw)1m zLD#*oEqLj}HMFz}3kt@aoTaQ(?BF`1hldAT7k(0jS-7}x-v+`%Tfjdiz2NdbT&)rk z(tk=Y;12co)4~Nocmfvz0f9pn8SZj;^E4s&jA$GB&$9lZ`}fX?|608NrB+-eeW(8( zBfqfFk~03o9PeBJMu|%4Z+tj|MWA43S7yMqg8NOP28{Q2cfazLNx-#W1=>j`?E2Sm z6HB#5U|`@=srpAo5(bRl28uit#F{JZ_g6_uOt{W^&WisNE|$kg=EL>S@I&j0UB7A4 z*RNlHhza>m9k#i-8SbxPN`iY+w0`6k!&Txsn|fim&&1)}0U+}+rE25bCoe&L-P7Xt z36e z6}kcoLK|(=c2uRCJ?>KIRN{}&(B zzbL~0-m1eO3n$SEL?08RWrMR>r3+$zUr!8)>wl^}6T(5R81zvG8 zze_*mC-F`F6w;8iV($r^XkV zD{@Gm^5q0FRy%sZquNrRh|%49&`Dr;3XD*3E#u{-nL z?24%L$}03nCXnP6PAWMhUZ{w)2E=Hfsb1jmhTKUw-guQx7%!$ih#2zF&FovOW&TqM&}l zKB3jtv?gyq_=P0OH=D+S)66U?cTa$!)~b>>Si53nUUrSR;ypM~;ta9YAx-XP;L=>l znQ_Y^l^uba8|-fk1*7T6)7`C`Ohv#~%+s;&h5>*Ey+KC7rP&_OI(ZsTtVEfU{k1uv zMDW17-o2?43)3xng`1}hY=7f)enO)oAP_WWp5=n-<}`W`jRlM1A1rMx>&Y!g z>cAAHfo+h^_0a6J52QL~>I@q1pYl+&q*OZ7T`MGJKt}`}^dF9QvlEO@So-ee2ymi$ zI&FGaR;KytZGIo)k$KEuuQlv)Z3Q#gqF(IYU4*Pe9SL2Eh{MWt;P#p?9eVN&%r^o( z-DPdy1(0i8yw-)y*MsRU>LaCZ^Jb~fPaNnFxJP!U(b% z)7?$#qIY*+L8?moy&i?OxIOla&97$?S}G2_GxmRq^>}kSm@YEfDBu6~_|-4BUC_dn zrKNU+vVeAEP!XS)EN#yp6bX&hTWW%f$XW8693*Tt_2UvZpMaU8;9mvcBH0Wyk1wu9HdJai7~6-mttMu@~EEOwPhX;bewy{CiJ4^pMaYrNxIF4OWfMk&$BeC>(@kcLff~Ca~1{Rb;ZHY#Ui<<(Ndu8Bf!{)x#+ z%ylq4YEtA$A+4`86OqjQVpuMABOhtQr~k*mw&+&B`F&S@*DrXqc;oVgxk3#s700T= zU6&J*cr2u^5XG65lXA1Gs<3>wRziPK2A4I2_S*jJ&-S*L$QhkRxU|CZU)P59Z(ohe zp+fFw@{l%<-R(B9=j4pEbJdfA5Yn? zZE|As#rb{savMKpQS*=uHWMex!~#lbkX>De^3NZ`aWOx%dj5jgZdEj&G@FaI_q>4B z)l$8UpX6Q|UQBz-6VOmcVS~S(^a6LBvF$}qM4H&Dt>Aa7@|ppQ{<}-(xIPz876Fr6h_tQM(`Y1zILOuYQ&)N$wjdC|fN{A0@-T`&zj<7@FKGUCO z#L~7$Q5u~2rb57rRZWDaA*Hn@D>#&ro181iRL#Z#3qG?NO7Q)!){^ge>(Z6NMwMuz z&hRAx2jAIB_6(QaNW~x-6+Bcyx#OIrvGv!lU8Rk3M5(BDl0*$j#5IkE-PPWxsEDMb z%#s!3!TkHpqqv3rgFoA&hF@gC?x{8 zZD*{aTJ`oI-%rWv&vysN72zD+@_$-d*pwV30I^;EUCaGQIZa%dM>^O@_G2cKcuZw- zPlLpF54beuAnlxLK3?{QJ1d_a$$)6y)zao;hUao2ihxc3XWA3*_XuF1w;=oqE^b{ zHUa2JkylLrq7n^?qFaUUsy&tdaj9XW}9bPWI z(de^21}!#1dcT{Q9y3O$qOHXbgj68I*2@`(B#v6j!L}EYM6WB}qp(Z(+(m|_`K0<# zgIpgUDrTMXE;mf)dl_`OJ%0^O1ye4mU0VFU#aNggDMCvh8E$oR8YsmuxOdsW&G>HC-VU6wX>IHhRcb&qCU}YwPU%g)yoHezhlSS*+kAS zkmXUum%(zg--Zmk%Y_^8@6eu|nBY^BAUG$!BJsT*Aja%6?XOu{xNEmbCw1fcw4>}e z<>uuI0S39s=?-11ID}bDT0Hb^WHUGP5p3@g~EEx!wN7B^k~I~G8X8}-ZOHi%Vv<)XCd^gGMafm@Br z)>%7(zkz^dRbO~`Fqw~o?4d111OIH5rRkCc-`EPX&sDn^tx|F`x6 zR(|jkIVX_Tye+7D<>-0UJ1r+W0H&{gAz~bwV}O+UsD=QaY2-UlAD$f_@@LMu&i`sL z8Jl*QUIQ0JTH{xoLrPVJKW_as&4@4{f{4>}llP$Ea#bYip|-*KiugRK!82agm&m~Tw6l&wrH^tJ$JK5ES%nGF7!KA# zK)`aS%{!C&u`-FB`n%I$s&{J0?L^>m4QMUJgN_sHNY2pkvqzFQG?$iz^5;!DZ3taa zFgx_K6(8FljW5U7&Y>txhhF0#G5s6`%6sF<8n2lBAA@f-I}`8~iLOk&+C9@+#{BZa zI`Twau7!pG^6ivzbM9{+_x31~ZcyE_egQ&TFT!SWoQ;?a_PKXI zHQf*JC~F4On~#v*(4XF(QWkP9U6GhvA8lts7s{dG{)y^M-{kE4K}QIzFH?wuJjK1MaR*c6 zEplkUX{)zS+k)-`Q3_o@@8v{|t8xK3IWB5**NB*KWs34oA+4A9sf%pu%pD7X>4o~P?_g3_weY$BDxlumn#6FLM5ceZuR zvSMql=m9HK);{39mD|ySTerZ^l+uXA7Y7-JFHdK?#MlJovoPL~cmL^}R!G-jc-4Tm z(*>Z)&uWLj>}R_c_bNQOW~|b2TQ)aXo!&~FHM1{_WsvuB3EWf5CqEqa0qADNHqV+F zM9jksjDJyKR)5D3v4^_D*>8>pFL7esXNGvhewaCd$1OrE%8$}n^AE$A*n(~C9(O(H zmAe&2LVBI+r-<&249H{fKi2rJRpEuimvM|7<@yK_lIkNO?&RWGDckqkW0j7kd%raZL}wc6 zi+a*PIscQGuPboQ1}6f#0RI4@n7u9O&mo3rj2Yg=yX<3Dqi5S!xR4fRn(q0w@c+Zw zTZYBab?L$+L?J+cUb&(PUm^v znfJUi^Ud|0Ij4SbRRh&~?^Ua+*1GR|t&(r^c9(X;Ci9z#H#y)VXI!gy<2~V^$nl_) zkFIkGca-O=_$W{T&ThJfZBz#-AOEQFq)oh~N=WCBhVjws^u(h@!rCRnGXU3)gi zCZ(mbR%xT_U2;Gsr>@0C!ks6+6P8sASkaX`-x=NA$k43WR2=UKR2UZiNy}MQTk}OM z*PfJrHmQ8c3m}*fV(=AHdCu zBmO(E#h(7i+jj)>qNw}kB#?SZ_2^H%!`;ZDXAc(`20??^JR$MHvts7&J~qu1>Z4`;bpGiBW?M3tqvtmyk4CQ&GxXh9PlIKdvnvzZbW+|zzag8 zG{siBhZ^0<`CJYi#pT$?JMe{~K{5j9_Dq|@JBty8@ZX@88@q2mL+X!AYj$CU`aUsf z#tT8D)W)p9>4mZ3z{5-47 zs^ce37x^mnuYqAiYwlPhcW(;ir2T6si1~~LBZmRXR5#V&0W6j0pxcg2oO_j#1GS7m z=t=+nOjMZ2q3RKFd6hF`Ej_`j5p81&fXo2pQ{Z#mCegJC7cpm^4qw@xEN3RW`>m)z z5k-Qsh9-A+=iLk0>zm(8br*{LzZ8+Ic##RO!WEfCeio~lu!yW2PsUSxa_QWO!jT}A zuX*2;KV%6L(G^C}zALavS*lxmV!nGXIA*roP%u7r+-__wvgeO-o|oiu4M^}6a>3JGj8Wq0Ux@8My0Y(hDqZ*kdelFI(JHZ+B= zUsl3d@xFq?m$g`iaD8F0FvDG-vF;fMwjV{4jgiaeB)Iy8%gpJd*c0pHQComP$i!(^ zV{p(Ah|_HHH9RMSmK%z^F#CNvX+UmnUs^mHTR53(8<1b?(t3<96l2E*FU_}vb*vwu ze0kCR#lW3q&E@()+#7DIUbWW%<@KTfDHGb&_vpAJq22TIIz&W7HiprzPrToWh%C*_ zBp}|de?kex8yf{WG!J^<6=Heg=G9vDI=T~B#w+L=XYRJ zU~E2BDbMYq2uIibOU+p3h`a`>=+1$jL+Y;Pky^^-mh-21Y6f=v)&;F6FVGH~+b>X0 zU33BlRZW-;Gn~FZEIFA}TU$FqsuTRPLa{_0B|~?2cQ5shM#;dXGnDF3dULYurrwbe zQ(_64C|DIp?$wZVdIgJ+(8A2o@^9Cxnn!U%1 z_$AS+{{&E>$>atTrls|tBQ{Q*vEn9vF*7rx^OT-w!UAk#!_x8o&%PW@RG(4*;NTj+ zlxxQLw$G<`X(OBbQZuHUuYs}E<>kNs?3Zgg@~5B*BT)aN|DKrG4;O=v{6{Rs>rjaT zRRc}svG+HOT>L2tZ(lxp#0qKli)^hZRxcVF8d^sk@cp;mw$cWJ-t4ixzX9j#YAtK? zb$YS3kFC~E04ql>sPcfU(XVf^23JomT~cL3VKA6X&I-S{>${iF!~nRPAmHV@2&orO zyxYE@hM&<;BJL^&VYmpU%F(D4O`=x7T5R-8%WHaOreM+{*0>&9xm*82!vaMa^%;Gl zQ06E0E3d5VCQ7H4UGX!LWd1wM$Zyw}1?#t>xvPF)>}% zA?zdF-QB~(*c`hu{{H@wZf^V%-8rI6gtAn4a-sBGs2U)PYAq<-fh>EsvbuWxxrZ_Eazl-^ILkc0L~*lnd@^2mfTp?r2e_j2o!dDpAN=<(H~& zT|LqPfyT$jQIppFa-qRrl^7?RsoC-G9oPPY!~YMQMywV5$LZ(}22D8NxQj6}RvRam zU3H><`hzql?ni^Kt_^7c-3AOu&pR9w%5o+{Hdxh6dm@nh$zaz=dm>ZuOuJSc%A`Oh z8ca(QU`?Hq8G8~*uH(IJGi``T)TkAAGfs*VNvq+^589g+`F3Tm12j5mV#uFCdtzBZ zxo||i!jXc9hi4=?wOz`OH;clHebRkhjUzMQO0tT3mPOBIZ2x;Jwz=s83oYnrRJ3Qg z&Qm(tplerQmnji?j>>pv3?;c5pJB(y8M~B+>C?;6f0ru#8R1_qgO6?h$A*h=W}Yrj ze3N7nl2FZ6n*U~N{~(#erad=!!?}qPH2~enE_x5swYkkmzi&95?t%ri%Ww%zsir_d z)M`@Atl9y$UEi#D7UG!gJD;d61ykV_X;wO6I zMFwN?Z083;{86VRTC%}>)VK4GVFh*P-REa-*t)uW z{YQlb+kP5urlu4nU>+b)>%MX6hv}=B>T$BKO;;EnJ{=Z6BPRXgvZe<$RJ=F1o<&VI z)%i8oI%vV|{i?T({4j+&!K_V)Kpj{4RjazRNDgdZ0kxtJ^)$r`C2{bDES{oTw-a?s zeTwPEl#VWya%+nw{UV^9*U33fSIWkOJ>AjIE`=o5yYszTXm&y%9?Oz~rOIRiU9%># z*gYMXxG9`tah1ViQT@Jc4}@-6Al~VAp~8`h%#iu8;*1q#&%{?5>%5@ti{lb(#kHX~ z9qqyPoti`XmeG-7Z!H?{e%#gxy~WPqclpNkIi^>xh|RA2SEz(5PGyLey_v{xUW3Z) zcc^`rwJ%?}-#lrhY*GJ0<8(l8Bzc0%MVW$VXVgsfvjWW}cqDjb;~;##NrjyqouL=H zX0m44-VFU^8aZBhmH3YBOi6RNLq~mWW8S99`CAe&D&EaXcGwWBfk+xeRX}kV?$;h+CE=#4>3$m>1ZBLPdaFBPh?!KI~ zm%jCkEZpHy+vy)N>hnN4AakBddTDHGxp1=_J7qN$)x|TDB=~#vxkUF64|$~FFghKu z5W*0a50mYR=4|6dCu-`jnHRHT-t}+`^~jrTnU7G)-YuL7OdUXs>`Lds68FPkDB?1>gq)t7Os{HBNx7>XdB2^=z1NNu1x81+JVkQsG8GOqA{n)D_LiBM zP>)W~&4K&=6xl>p+tUyM6XRej|o zJXNH9M*lppa3zsQZT3|yWtPq6OWX*{&_WjJ=jXwj5%Co*LS2aQzA5Ohh+Rf4>ty~( z_Qr@nriN*R!( zZ8&t&6{|ql!s(3sK>}oVga^0W1e`eP-U?R}N!UmixjS?#Y>iB`ccEw*&2GStoglr+ zxH`>cdd&7oSdpaYoP>ziKHUL+$6aC3OxYYQl7?m4cW-JKR;-aC&1iuvNb|Ik4eO3{ z-++_aecgL5YY}!Scj)52g7r8pfQcT%dXmArrIf!Ix;-_T>`^dR39A=gNcyR{Ze8uZ zRM=snexS;A(!SlErYS4YAF&s^v$~_8sa2_n-Zfex!~D5@luGSO=yO?1FSey2X0?Rk zc80kF#_v>zS*6WA=M?g+#XRofMZK`0_-&C_|V$Y@OX8>Y29v9$;>xGx-$)PkLOvOYgYfNEj2Iqa}CS^|adO@dky zgn#>_M-mAup+`&F-a6$sH<`9vc}G|?yb_iSpIlmOWNse*nMxqOrGvVsE?XZlJi;nY z^D;Y6`849<2`;LBIki7k)Si+;yHC{cZMsN%;E8{0^QxA#qVIjgXQswRLh-np+fN`2 z5&4VB60y$3A*4?J-E!5!@-PzY+Tc8p*;pqF%78ZJRsE_i*PUdjTCFSyibp&N1*%rI zKq|ihaL_VZD$~3Z0ycp?Q_=bATEu>=g|i<9X$?q|Z(%3ncnLStf;nljU>exQn9)O&Q2ziIgnu(>g;@H~hLOL3=l zpdpGNu2(Djc*;=d#(1jw7jYA}e&w(yO8AT=%XCWMp;jag?fb2XHyMu$b;oJx-SmQddx;^J_CHkix=XJ~U6@A~(dB-1MZH?2UE)(`P&+(%AmKq_n)yk= z!VPQ*Y;~~4#hdM0Uy0?y4ZK>p7)*!}VjXrJJ_Jm)x`7#SaoHwQR5s(sDd;5kdHAr4 z-gir1P66#H@ofcENtG)P5AyUD7z%;LU(=#1Y4=m^V(cuJ@dZ1}0|rcg_J*CWz52|i zXvB$-k`nx`sa2-^UDIe3F{l-Dc{$|cQT{7`{Jj{}OUxjCShQLKmcdaJiI`xjRA(X= zVV3HlW3|wCO^Y$hL9tFEj8sn(m#$^qw`)R{#=-gZs0wJcU2m|S(BmTId7R*6REx@XC?F%GSIR^_wOg!{ zR=L2DDzbNtHQN|#$0I5<#b=TzR-PtC=H|&hXnM2HFeh3{Qd=N`U%?QtQb{Q86%iwf zMmMln`o%P)o-|7;R8M%77&k(gXQ|0XLA`dQ*-THV)sWc^Zj(R8WNDgA3t%tQbQr4| zluVP~Mrg>DqaIi3f?uEIBM=)z?6%_1aGz%@JFQ^&@2PN0RzgQDn45OsM|M%+!0C{H zM}UI2U-#wWuw-ky5_PlAZa05@`D*racWuP-PMSW}f^5|L5r0~Yz}J|_07w3@6Y{FT zlQ65Kd;XH_{>8IjSq{v>=n?MJ+aENB`l#;WGlh@tZM&bsxn|Ds)FBFDMq}~u#yl}u zh{uy0O%jZ_NApQ2so744h3cl40`H}1%J&DXyV^a%0#8m~2iK=7=dx{!d$5%ou@OwH z2FUTlK2WX820$TSM)3m!dd;Rtd=(kp#0`u*GP+NV>8+(MR17w1Q*jbU!6t|{wH#-xA=JbSr7O9FulWTt$ zAGyLmSHmQzDr4~0@t*H8sz%aP1O}XEKk9vECDwE=w7`G9zfSjhHX|c5QDt|77#&uY z{7^QLakITNnKHw(#4d|g!N%D^`P1*~+PGOf^8g?Af)W`h01sEsf|cN9`3prGT56bj z&fCylgtS&SitbDw)*xEMVo-f8KmT1jT)K6WeC+<5L%@=7`E)9&QH$9xY+RzIL(%|DH`Bij089ESDq9rL7lgOXP?Rk8% z)KdwsQ=OfA?=J=Z9s9FjYa*K-Rv1&^Og_~74hdXKD;oGkDn-C~aR};fY`;q5%D-PT zJ==cV7dcv;=t80yy0Z_~_1&oPtr5Ont-^PvJd0^?uEmuWXR${L<5J?w*jLx{cZ*xN zd=SI*cZ6j_*K6p?*q?9@=q1R&~%Wx80sg1?QNs&eL!Cy07iwApQe zr=pPJV8tWma=qzaxS=LeEXvKIENLEF@FI;&Hy0$pUUV6OGIHBHMt6}^E~H{kYqLf8 z6;cDhN-%r1YrD=R$z+=X6J%Nm<6hNI9NUtAJhXuVsQ!LOK=;I)Ms=E#_3kTAg?Ek? zH_{_JM35y9YNWcdf2@$l{Y>l*-`C#L{q3dD&|x)M7)tB>M#449P0h%$Aiz-q@J8Ud zteA=6AVsaKLxbacYODIg0~M7w&I!WGr`OTw=bWzeb{Jqx@@;#}r54B@jzuy?i=FGKCH*-<5}VKVhiojeOY}Hb)}0gHJVFW z)3}Q0UFsZqASpQ5;CB zZOd2vqc`qSm=z2Dae!I-4o!FR7M26gV%7eobGrreRjrh4KoA^mL%g-qk#=Rc`QwS_ zPI(L_Qm87rwa8@D|Gr@JyzrM;u9sTTe*x78@!Rh2l?Nq5YEJk$tE(aFyPW5_EDA|0 zaQT{-;hRc*v~|#Lv<|kjocq%&nv(UsjbZagi&5IM>iBsF4GuIj>2a=(WUTlxqv+$IosFU9Sjr z=zo~Pk%oD<`aH1*Mm{zQDG~y*uDLZ7me|&Tz!L#f=2`8hR=oX%n@GLPy{1;zFvyF` zH7u0hbRV5F^dqAU~s1crlWmOFMte1l^amV3f z@=%7e;-GD?v43yDQNX^9A7)&no~yE{&HQ#27AnrDEQ${yJX^4KznA9Nfy~-jN!$bd z1uz3A*fzbc`NH%1=2~vHE}-3|w^C9h&;1F>WC!7v&ht0+V{19LF(l6WT{%|-&2`_p zBJl{48qIzca+S)`lFHV*o;5U!S0do0Efae4|C#3)5&&)88AiFTeu`7KkG7!LOLG4x zFJ`1rpJxkm+Mr`4SrED%7=G34hh!DzH@S+Zc=8gc%2wn=+GP8?MX8LVd$FE|l>IV& zbsx8dT-U2}y@*Z3=P+QBmLh~V(dhGDDDUiBqvPLxg&~rrtW@#0KHOqc3+Lz`>Y+uPVn(!;l$joCclS-kfp{3c*x1-WAaK5$?!?Nk5i9Ln&_lY;?jeMoLuTrXmqN zSxa+#vuH{RuTJR8|NbMIy43C>_>5@5gPbC*fn!t(1+0Hl6a5<&Y?Y~hG6=rIEGoC|1&T;!5cXUo2p*dy+;&DT?@Fa$gj+=-R=?s#frPuv`qm6BUjoK>o zeHlg(_3B#m3-N|$eU-CxlgEptn(6b){%cA=W_zkFIVIC1)q01!qe}~1X2q4T`F;W1 zN7sP=eZ}AOP5ec+eFbTa4rs8gvKt5%?TZ@r__ zAl?7`e@BytJ31(ZgkZ#$PATX?mWsxqs8?%PRP(2Vp%|No;XMvuu)Lz;CjYY!eeM5l zAT+f9hDP`w;HS84vMoibg;iCY3Yo8Z2~F@LM$Ohxbl8zg6AJZCQRqQo>ER=rsM;5p z?g;p&{X14xMHJeflG)T+4(dnsAnG$>Pa66gI)4z}!$JJw&%TSGuDUv*A0USY#a$Q! zhyBynC2ed<74i&$v52?Eq<)Z`C!!H!o$o_FW&EYwPxxvUs9JZATR9y;XLs8Rs9qQ698>(Iu zBSqyQoQ4`Et?kPfAYqRaeVHbcRtcdZxL_1<_M+pf@FQjsRNI`C6tcevl+{1nhgOL? z6Cvimb01nI-TxpQQ14n{wRWu+MU}F|Flw-r2>L4h|0fOqkPiP~42Qu#j{&r_JyTQa zRCsnM-T}pZm{iUzE~fsOX`hiY-K)~l(m$3sJ~<)ri|FJ1!_T1VN>INQB%j)(2cnGg z+V>NRO6fFUgMaKtRs2LIBy8{R|M}*J9W7%K5qI`&*as2+xRm~1c*?`lzc@fNP5R2N zUa(I^Uwh&pA!YCkI(6}~s|m5+pQ+CnaB4p?!9*E+{YRGpJ#UTPY$*@PWysGcDdVIz zBTm$bqFj6_`{o}^n6Dv_d-wE1sR~+?w}8%5G`e@SdW&VNtOvn7QO|nZo$#HgLWL-RQOhHW!`htk4^33 zz{U2j0o5fbk`7OBVsk4kIgi+3Wn9*Cn*}(7a&5LXScM9troq48qoMiFBf^&WX9aHj z=@EEoM4~=59}z@Y)`zDW;N6iF2!9dFZ>kr3*jS*^)1B$ShzcC7DHo6Zc~4B0_Vddp zox02oyz}$U0{4?VhEn{FH;K7C-F^~@x}LHwmn8Y*ksw@9@ z1Z)g{O!AF=F#h_SJVn~#WXwd}u!h$qOlM_#$dIoORXo9pC-qQdU(36Sl_=waz2F0w z+i}savRj!c;V9a@BbR*a&1I$qOn_6+<7nQ~b9>>kh)wVq3NNP>If4-Gri;N;+E{oj zhLAmEPiyboH5LctpMaXxb<~0^{vs=*&FOn0IV@e_uo&c+le*zlppSt9`vbJr0iPlM z^Ad9BE!D{yR<1*81z1#g#a{tyMvz#6+VuqB4BR1c4B_yPNNH&znugJKcu63k}1kSGR~F!dkyJba4pwHBHrcldpF417^lRYF&`2(|O?h z4ft0w>*iu9Z@HcT54m>z`r!zJPFltCc>213!4d7M1(7gtt$iKd6`IfKxb-b((IC;{mD$Wfc^lsP?HU02|V0cI^aZG_k`P? zAsbs%%qSP_;0A2DiF1v-mbz|^(&`1Wzb-Ja{$2i@apMKhy*;<`~Pk7PYuD1 z69iWc?lPE{%bil$YCF9N>JqiLt|Oo8K9VrXdVPs2C4vK2cz4d+5ol9sQ{rPAEmH^u2-T82(oy98SY{j%ZHx3{yzFy{}RX+3$!c{o0a zZCbF~8rifC;KhqW*%nV^SSlOc$gn0qxNGlIza|q&ARRsTRYT3sTJ--4P1LYbweWVI ztoisLmAi0@K*aWjBd^y$;nQx{wM4gpT+`3=;$4l;Qk}{hz6d)DfapdwW5WKK$2wM_ zhJ3^2IheUa%bpUtu%S`7&C2;IR(`t5WKvQ?QDXCmsXJsfZgsx!$yLCAfD@alW1?#X zskzU06JbD5o_w*=1QzLQ?9^X}eIqgaFD#t5f*E-n+fsRH|GJU(2h8_&&S4YyPcV7d zKNuO$Itlne@t8oMQT;~rh;CrK3v0k09WA5fZGwqX^Udl*iB!4Yv4kq2@VCjz+Tv&lLq?RF&I zrXvSO#oyx6JZNL|auV|n`zYe21J3@^i=^+q7p^PqYmO_sasU9Lx;vQ~3rIn%`HNBG zB_Z{*a-nrUHlqrj(yZW@3O_(o+99^L(wrNqUD-mHmB5dX0_4~sbet8FoiF>avP;zv zv$<)CgOmV2tAH1$?N#QnoEpQvAU?@Y*IKI*iplf)8#*x(_|EC@mQpIlT`1e^fK?!; z*xIu0=*OhvPmeM}r7rkCI~?eSWoD4QW+>$AvI%2*DU{Y^GL=UfrU~Z#k?i5U0THy< zX@~a&Pq)CT-ufxgRI6>Pi2+t*_i`QrVt@DTWoN@p){3@(TB)5=3TePCJTIn#O0@>} zJi-v(*h?!)y=kf?lriz}fW)cuz$^an7mM9{T(VwG>~qMG-WPxNjzuZt)w zA!mj;8_kh5Dm#xRIm%wESw+)?6U(l2EQn-xn!Fe5j*glM2d%~E1ZmnoL)E;#knJx) z2%8Iob&|GMXNPo-+}(C!&sH}&w|-BmkgUhc7r zu4wmg!s0J!spzBga0iGkt4kRIAumm-0FgXc#pbd`h{d`D%dzUG zL5$^g!r~@{7R8eearz)9qy5X^gU3Pc6 zhwmj$6&c8`t=;Q8@cg;zof~9!Awt5pC%L;LT5#v0DF{;Y?21e8RPD9ZF2e+Z3%ugb z(&eu4cL3$DwsupQ0?#P0UU$1&P{C95aJOy=v(@Y4yTCW))Au7o`&RvukBfYCVd(4c zv7=ypS%#1#Ui}W$?`*7RJB35n26~$Ir`=r;Wk0V9NW{;<*W>anSCY zm+h45X&&!a%qo0;i(Bg=ZjX+EBG0A4h?{O|9x227%?Jr}xV&|2%=NNPyJ%MSA#rz; z_GfybTm`*lGUU*#=IT%p{ERsf)Z%pOyX|gNo}C=j#F2I06a@pKlaMb?vvW*k{v>F= zpEg>o`;`+znlmeTy`igwkDKrxWsA_E>86_Yo`GB_4ZB%XxEDUIVKxyIX%PZ*kmofz z{@AlX$z!9tcQo3*UDPEwwx$EDW}f`80mGGi<0B_LuM~5%wd?z+GVPb&Gfd%EB7VmA zTsCzcm-ZcgSiuco`u`%?P$iL#ZTo`KtvNe6ZJ*h>kL1mwde(}2Zf@?6;)x?c4#T${rEx=r?BZTt!X59~X9h%-qGnz? zxxJ-Dg%Qp?dSw}>L~m3k!O)!kJh^ z=KT*)>NxJCy}i9ZGPaa({`)b)Cdoe>+h5!NeJb-W`pHMEw>I2KSy@?pDAnMX_b($t zL$Ulx0(z~u5od0wjQNia&WiiZizk6%DD|5C#~fuLkBguB#3+Zr{39A<59~5P?GvGr zU%FQqk62p@K9-|0c&34WI1OR2c;2`^owCJW0=@i6ivrakeQD{AL+Av`(Y}B9mLawM z1*o1iDv0`8lrud><@Fs#+^{NNeIT-H398qk8|35+`KLSm3eO8*kypHBh`tS6}tiyo$sh`;#OIM?WL+)7KiV1Fl)uJi2~->m$4d zD$DipUJA9+?g81*M)cn%IVN13FuEH%%=Rq-$YZsd*q_`wnX{Yvo)sGDl?>Q!0c0Ln z2HiA0>3Bx+26+EfEuuC-D{rMLDkrIUu&=pBf9zXsj9?dDU}sVHQ%aNFCXG&f-M2J1 zalybGg3>`gA)wYTL(EPx9%_e_CrV|jaFmofXg$r@@sF4^{n^s7##~or!a|E~_t%oO z=Y@lHKSzXhCN*2ZkrjJa{oE-udWCE@@KDth2|E!Fuavm~;VriHs^);XBz&Aw9XrnF z_m3AbL-I4ibp6j1TB@bbbk12P5tsL1dPt{4-OjFuYD6~8Y4@mO2tY$xmMg1G zWZUHPV`1+2;I8ACfWuAwH~&*XwS7z{wFbrb)AePEOjB)Dwm036)#B!)tw6WlJ+=*b zlz>^0Slj>s7A!rE{PLnsg~jxdep#7e_LjWCzLvd)8EdKDUk_rumfVi}j6y@?DXyLj z0lCUG;?g&`EIBV+Zn1?zb8{rB?$fF*}oyW=Xytw#XhEGTdZVUWd>1L!48|L(8Yg zYhm{A0QQ%WWq zcpUIC12#4J%;r;5IIL=ifGUU92FHE2ZjY~A-Q3izNh@gBN51YL();rEeZrv>RgZd* z+OG9WHFT75*tW`jYE0EdO3;C5(LgaV673&dAx6_Xh9_>SF>}%$=%O{<#B~EVx(4#K zPFAK@FDSSy(A>W`IJQZs+^lS{+!B?LPIBdYp73+cg)W`-iWSoz2lGEjgYXnt=g9E3 z<=4d|9BkDfgdIdY%+FXB`3KB{X z>)f%iCcf9lqEJ*E(E`y@xR^Dx=)1tvN~0uj8(S%y$wg0p@Hpl`h&-faVQ7Hd;+ywpUC3D^_Mu9QwfD0JML|zupq*2z#BUefxx0}PsogzK{>U+P8t8&%`L~c zg<_o0?Ma9WeYT0U}5Q2>&wWB4o)R- z)U?=pK6gpj8B~0_D}gMKS9=ov)5kW{b= zE@}$1+eT+nV(N=}=Q_pp96`OFi*@crm!TxIVdp~nB0)4mEsI-$ylMY6N@zmI>V<%s zCJq5>oxUyIQZC8sLQ+@rjR`QE?%SVPD2l`+;?~kuS>Ljt&t5)vJaQ&~iTgZ2iuC5} zoYK27Bu%im;e+%2uyt5vvxcV1TJD|=x*wbx0AIEXwYj@-Ux}ibV_3N2!pFlENtZNj z2`0+Kn4-!joo@*gk~Dvy8^tc0;e6_NaV{aTyuK|R#NMcaxo&lfVV!=G&t7Kor?xEn^KoY`?2nENCFQ`qqfaK#9Fp{UikwUH;A$Iif2^11RXsn)?=3I=}wdg&D)R zu(NA5=fRWJcg|GerI8hidv$9x>hpV&G=NCF&u4cI8`#+UBA%a2iIh7R0z2lRJn6g@)R~LR&COyS;U7EDDQhGI z6LdQdwUN7e@?xD))w}cRF580yfXJUYb_e>CUtPSxhN!MdCMnK(E%4nDY$BUx@Li1nvl0f9V}xP>~V~8Jzj} zp`O&l181EA)WUI>++6SB)^@-Tx(Rd7%GIC*6cpvbz6AulE6++f%9W86d!e^~m{v;C zIvW5=7E34~$%TM(is`AjV%AvfgW1KU?Joh8O}=PocxTdLA63T**r~(9#C$kBg5vnS z;MskQVY(jCmH>9#qrlW=Qh=hOGXPMZMTv_WjN@gywcD)+?X(ndxl=wY(p|6G9E_`; z!wBqc6W1+^h>-4#&Qim}l_p(B603Zhj1q9OSQ$SK&@G-RH^-pvTL4MfeSY^-K=}5x z#BM-_)N?6*{_~SAff3q`ZMp36QOs4L@+8x?2}#qZB)BZ#6PiJD0UlqGJKCn%@AP6~ z+2ec+kdZBsvA}>w$EK1M^Pe-r;oE@$M)pJ`lKKyHiAK5xyj_!HCDzWNdqKsI0)z7c z?CoR7?IrcwBqTPrJ{Yx;5OnotHdX1btfeU|N~y4k@e2vDo?sfK?uUtq*-M&cK0=q6 zrOuikE*nn)3T4`cvppV=qL0=BpyK{sk;`>jS-`Y<62*q)iGrs(S(;Fgzrj-Ok^po- z)rbM(&N%r}uKczyhqfwcqUpyvxg18$r>*6S?56JrH;Y=xY9W!mdfl>5O;erkAC|{& zbtSB2kLllD80gRO=0{vE?*~9iA~G7P5MuV%*w)5^lB|*{7PI5e_4op7$IFrHbL_PH zse(<4Eqr-rV#Uf4mVk0OD^{rs@Nu4YrcQ2Z-=qZv^k5j=&)%8IUq?T0yROz%>2*EK z9_OvdDio2FLsv&qq`DRvMOiv`TI$G#TjZPuvA;`GkOcG%9DLUz5dQHh{0Uj3=CG9~ z_fX3RkBd@wHU6qo%KG5>_<})~;{wsR*Vk`}(mpJzXWZ7v5g^Yl)Hcn;#3I#8ruo`e zAqP)&C2zvYP8V@8x}wMhXiq-m)ulmL>rQ>7Gd%cjl<2ArBqcwOUVn${OA9nw-;VwO z12j`46b;J1NqsN?Fl@2OX_bVH=(n?bZ%$XpqY$*ldoUYM@bU6+Rt+XAgu-qS&$6Lfe`R?eUA;R#fQ#M{!$69OaJ-A)Hg_+;mLJssvj|pGHx&$f z>a8qYKv(-%pd7Z}|2sgh1)D^`p?ld};MhuMw$?(fSRsoeLOm|=>)zoCLC@HuXne?- z1mWFg3%0d^=z_SR`%n#&;i?w-XYT zESAP~um|?$r_FyN!a1T$)lua15T99((+A`T91W-RBo7|oW(9Le5RV-wkH+0v+upulx? zbII*m7^XCkFA!+I@Ak+t(1+W#CD)8{T!k-?UMiUa)WP?Itdvh!hH-#5YSs_^oXKY^m$Tlf zn1tQ$DAVl94f4f_JfK3{EQ0dL@o5(r!rv|9m})(?B$jp;0aHm zd!(C;gaS^w9=B$6M~|>#b&P?rT#LYYF}X=evekDNoVJ&A+PlZX>cg3CHlv^ziiZ0`=^UoUz)aXf<`~lKC${f6o zn;_}gfyhtOYc+sp+h%%|U-k~cDG0r!9?Nw>E zio--clUtLdDTmk7AKIvRaXENm%DLSeJ$%OKhSJ}_4;pWvg0aRYSsR>ZUk?k&u4oro zmXuJPhlaPi_KF$l-7H@05qjrmJkIB+eBr#%pJ_lV#FR$;oxnYPT!@ay zw{x+@!0?;f?j}c%ja#nS7K1H4HrYge$0V4A(VWQ{qpOAmQNw*kL^Uz%a0zRgqfb_y zaeJ0`Mhd!-LAhadY=-;(7BH5Xx5o0(qZ*uj0gtQh0m0gz$8+H7= za1tW16%e4FKj%4BzF{QHrL{uQ4={{6S*5`c1#=_H2(?u3@y`4e)fq-8X9d$huB{a_ z;OJ-QWpXzp?M6si+4aziY#@;x4vyr~bd53wszb{1w7X~(w}Xjejb-c8pB>6|$1c-o zyGf*7OoSq+(9jO~k>SSbt~&RYUZ7HMl#1s5OOW1t#pqQ00GY{{ab%?)U-PIeIL#bImJ5g_qW9Q;8I0m@aHM?MUAsAfv{E zzb0#5JaRM~^t1aox$cCgt#QxYp`ojchYPF#{K-D0Sz>3^@`*U@Y(u^mp};()4T4#m z%G`+sl^+jvx|AC+hWv}0;?=&+wKtwW40k#`ddZF#R}M*#x&Mf&f2Oqio%R%N7bitE z9P=6*^p)Q`Ab<%-yLncC(5H=Xo!Svty@(3!@1^kPDOkHQQi5@He-QHv&i=)ZgcbNJKft0gzo^2^D*W3;*Rd8#eDY{v}#goaBCzApwTp_a!J`;=1+6Ma<-DMW_Lfy^xe*A-$7o7~sMRAhxt&1x z<*ntH`CUaO=lOK$T3KQ1grhK`_on-=mwRX*1g7-d1d_i&OYbB;V6p*F_I&fIjAg#5 zDoK_Sws0pO*tp@=Y{iF@vO)Hme$E5^qlUIISICWZ4J-PHA$F>Po z1=}+hyVHsQlu471wx1s@N0ij;H?^IKK18D%k1lBHewXI^0?3z<^GoU8>mnia+=fQ$ z2Xr_1{pFJpAeVc(+`0#&fzn!P2T7LJx@$<%As7KA#5vA+q`&r^ezbN~l}dHv{SOQ< zzmxTweC_};vQ8ZlDikxunD@&|6J~pjr7~0>tl>EmqQ!vCtygjWD<{XRyS?Fjzm{iD z3V8r?fERvuYUs;wkYW;rf|C0|DFsLIX()p8e+A+O9r=+(6}j(d0$<#rP7O*sdQ)j4 zUq25b;`#Wy3v|hM9`HSS%wE@{;IERycU{ntcVM80pjOD@?}<<+T{b%hJMheuDwcnv(p&dIvCg ze#6EiVQcGtW2in_>#rn4M8RQZ%ImvQd@r46ZRh$B_QM5+A&2dngokG9X8?+LRIi8Y z<14*#QDLRE5CHI*{lw`D2#tH(sDYiCVUcK87U2ddim}=13d1}RnQ3a6aXrr(Ewh_Dg(X*h;y0_?IzvUnz3I?Nk*dw_ySqNVt3xQ$TB}pSoN7ehVyLppo zzpmJ7PMzVu&rd`YTok$U_ok$x13d}PSDUk@LmH5P5TOA82q7T5Jzv%~ZhWvMJI&mT zq?fB-jaNhZV!A=EdpOaw`>^Fl@vcAD6mPZ-`Yj0&Q4siQ4|`m008ps`AVjSI@VEzj zD@WD4;&i%zkD43{%qLE4O%1uYZ=-2{&mH$eUt2H^?BtHat5cq_v_7(CZ)5HHm=Hjt z{gwicB*_32$>RY+gf0XCoPVi!YWdoew-YzL)39@ye&iig>UkyBw~tuYg(-)!?)|>t8I`u(L96mfHFEmJj_HhlnV!jp<>HPC&uPH*H^aYqSqyyn0t@Gy;gq z*zl`@w4Ac4qWS3m+xs6$ci$m>4M8`s8@^GuCZp(-D`jha%iiJ`-vt`_=meb_*Bo5{ zJl$Q_WD%JV0Z5ms(=y9HoKsNSc(#0r-nV)4zKUP``aq8{H9LRZ_Kg`Bu%A44(VvNk zhyvF*J*-kE#Kz(C-mYF5K&QijDbwaXW*E2LKRJKC^OoaiPJ}KrG-`bVyf=?#&PjT+ z-LIL5hys@)ckU@nex+WMzq9e2b>vpo$%d$JYtirM{tuwII~~^%IycU!#$a<<`U^Gv zv1M;Jo%!iv-*wQ^<#%efS&mrFld|^bH%Yhebqe)bP-!*Bk)Q-EF_E ze#B_hj$7}OqUXg5cy9dD3qbaGBuo;T5I)4TSQzYkP#mM%mwQu~@txbB|_=&A%8vvDdlXdDH`V>X+ zp3Qw=)Y4fcfBHfhynN_qY2TTp6)K@KE?#Xp+vo34L_~qglj);heh=_=Yh-d=gz>bKBh=_=Yh=^zc;lPfFh=_=Yh=_=20^z`ph=_=Y fh=_=YXae~!#VNypGVgg8I}0pay;1cYalZ=S;+ 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 literal 0 HcmV?d00001 diff --git a/general/releases.md b/general/releases.md index 2f0383b1be..76b8784c51 100644 --- a/general/releases.md +++ b/general/releases.md @@ -15,11 +15,11 @@ This page lists all official releases of Moodle, grouped by branch in reverse ch ## Version support -The most recent [long-term support release (LTS)](https://en.wikipedia.org/wiki/Long-term_support) version is Moodle 4.1. The next LTS version will be Moodle 4.5. +The most recent [long-term support release (LTS)](https://en.wikipedia.org/wiki/Long-term_support) version is Moodle 4.5. The next LTS version will be Moodle 5.3. -![Release graph summarising the currently supported Moodle releases in a visual form](_releases/4043_release_graph.png) +![Release graph summarising the currently supported Moodle releases in a visual form](_releases/4050_release_graph.png)
Release graph key @@ -90,6 +90,17 @@ Minor releases dates differ slightly from release to release depending on the ti ::: +## Moodle 4.5 + + + +:::info + +Bug fixes for general core bugs in 4.5.x will end 6 October 2025 (12 months).
+Bug fixes for security issues in 4.5.x will end October 2027 (36 months). + +::: + ## Moodle 4.4 diff --git a/general/releases/4.1/4.1.14.md b/general/releases/4.1/4.1.14.md new file mode 100644 index 0000000000..44d4175a13 --- /dev/null +++ b/general/releases/4.1/4.1.14.md @@ -0,0 +1,25 @@ +--- +title: Moodle 4.1.14 +tags: + - Release notes + - Moodle 4.1 +sidebar_position: 14 +moodleVersion: 4.1.14 +description: The release notes for Moodle version 4.1.14. +--- + +import { ReleaseNoteIntro } from '@site/src/components/ReleaseInformation'; + + + +## Accessibility improvements + +- [MDL-83047](https://tracker.moodle.org/browse/MDL-83047) - All headings now have white background colour +- [MDL-82677](https://tracker.moodle.org/browse/MDL-82677) - Upgrade screen can have poor contrast when a background image is set +- [MDL-82948](https://tracker.moodle.org/browse/MDL-82948) - Border of <blockquote> tags has insufficient colour contrast +- [MDL-79288](https://tracker.moodle.org/browse/MDL-79288) - Colour contrast issues with the accessibility toolkit's heatmap + + +## Security fixes + +A number of security related issues were resolved. Details of these issues will be released after a period of approximately one week to allow system administrators to safely update to the latest version. diff --git a/general/releases/4.2/4.2.11.md b/general/releases/4.2/4.2.11.md new file mode 100644 index 0000000000..c89ffc1a07 --- /dev/null +++ b/general/releases/4.2/4.2.11.md @@ -0,0 +1,17 @@ +--- +title: Moodle 4.2.11 +tags: + - Release notes + - Moodle 4.2 +sidebar_position: 11 +moodleVersion: 4.2.11 +description: The release notes for Moodle version 4.2.11. +--- + +import { ReleaseNoteIntro } from '@site/src/components/ReleaseInformation'; + + + +## Security fixes + +A number of security related issues were resolved. Details of these issues will be released after a period of approximately one week to allow system administrators to safely update to the latest version. diff --git a/general/releases/4.3/4.3.8.md b/general/releases/4.3/4.3.8.md new file mode 100644 index 0000000000..7efa96ba1f --- /dev/null +++ b/general/releases/4.3/4.3.8.md @@ -0,0 +1,59 @@ +--- +title: Moodle 4.3.8 +tags: + - Release notes + - Moodle 4.3 +sidebar_position: 8 +moodleVersion: 4.3.8 +description: The release notes for Moodle version 4.3.8. +--- + +import { ReleaseNoteIntro } from '@site/src/components/ReleaseInformation'; + + + +## General fixes and improvements + +- [MDL-77625](https://tracker.moodle.org/browse/MDL-77625) - Repeated quiz restoration to same course references original course questions +- [MDL-80965](https://tracker.moodle.org/browse/MDL-80965) - Random questions no longer display their source category on the edit quiz page +- [MDL-83268](https://tracker.moodle.org/browse/MDL-83268) - H5P API Version Unsupported: running 1.26, requires 1.27 or higher +- [MDL-68676](https://tracker.moodle.org/browse/MDL-68676) - Cannot remove assignment submissions in "Separate groups" group mode +- [MDL-75692](https://tracker.moodle.org/browse/MDL-75692) - H5P content keeps flickering when resources is resizing after initial display +- [MDL-79628](https://tracker.moodle.org/browse/MDL-79628) - Move the navcache out of $SESSION and into MUC session cache +- [MDL-83163](https://tracker.moodle.org/browse/MDL-83163) - Fresh install fails if there are dependencies on format plugins +- [MDL-82875](https://tracker.moodle.org/browse/MDL-82875) - Hidden questions should not be included when exporting from the question bank +- [MDL-81987](https://tracker.moodle.org/browse/MDL-81987) - One second Redis timeout causes exceptions instead of degraded performance +- [MDL-80225](https://tracker.moodle.org/browse/MDL-80225) - Recordings go missing because they are marked as Dismissed +- [MDL-83235](https://tracker.moodle.org/browse/MDL-83235) - "ORA-00932: inconsistent datatypes: expected - got CLOB" error during upgrade using Oracle +- [MDL-82995](https://tracker.moodle.org/browse/MDL-82995) - Broken Audio and Video in Text and Media area of Feedback activity +- [MDL-80929](https://tracker.moodle.org/browse/MDL-80929) - Backup/restore "Include custom fields" setting is not observed +- [MDL-82740](https://tracker.moodle.org/browse/MDL-82740) - CSS filter does not apply to monologo icons added in themes +- [MDL-83264](https://tracker.moodle.org/browse/MDL-83264) - Error when adding random questions to a quiz using a "top" question category +- [MDL-82492](https://tracker.moodle.org/browse/MDL-82492) - Performance issues in Grader report due to inefficient HTML output +- [MDL-82494](https://tracker.moodle.org/browse/MDL-82494) - User profile field names are formatted using the wrong method +- [MDL-82804](https://tracker.moodle.org/browse/MDL-82804) - The "Nothing to display" notification is inconsistently applied in reports +- [MDL-82488](https://tracker.moodle.org/browse/MDL-82488) - Double encoded custom field names in report editor +- [MDL-82957](https://tracker.moodle.org/browse/MDL-82957) - Bulk action section checkboxes are not correctly aligned +- [MDL-81612](https://tracker.moodle.org/browse/MDL-81612) - Current extension date not displayed when editing an assignment extension +- [MDL-83094](https://tracker.moodle.org/browse/MDL-83094) - Persistent error when sortorder or descriptionformat for customfield is NULL +- [MDL-83050](https://tracker.moodle.org/browse/MDL-83050) - Collapsed sections on course index is not highlighting the correct element when scrolling +- [MDL-79020](https://tracker.moodle.org/browse/MDL-79020) - Can't edit completion settings when bulk edit is activated +- [MDL-82389](https://tracker.moodle.org/browse/MDL-82389) - Disable Notes Lock Setting not working +- [MDL-82909](https://tracker.moodle.org/browse/MDL-82909) - Inplace editable loading icon stopped spinning since conversion to SVG +- [MDL-83205](https://tracker.moodle.org/browse/MDL-83205) - Redis set EXPIRE can't be < 1 +- [MDL-81157](https://tracker.moodle.org/browse/MDL-81157) - File picker UX issue with button colour in small screens and border CSS issue +- [MDL-82255](https://tracker.moodle.org/browse/MDL-82255) - TinyMCE can't create blockquotes without direct edit of source code +- [MDL-82220](https://tracker.moodle.org/browse/MDL-82220) - Error "Can't find data record in database table groups" when restoring activity to the other site using group custom field + + +## Accessibility improvements + +- [MDL-83047](https://tracker.moodle.org/browse/MDL-83047) - All headings now have white background colour +- [MDL-82677](https://tracker.moodle.org/browse/MDL-82677) - Upgrade screen can have poor contrast when a background image is set +- [MDL-82948](https://tracker.moodle.org/browse/MDL-82948) - Border of <blockquote> tags has insufficient colour contrast +- [MDL-79288](https://tracker.moodle.org/browse/MDL-79288) - Colour contrast issues with the accessibility toolkit's heatmap + + +## Security fixes + +A number of security related issues were resolved. Details of these issues will be released after a period of approximately one week to allow system administrators to safely update to the latest version. diff --git a/general/releases/4.4.md b/general/releases/4.4.md index 2ea02c82d2..c0a60db956 100644 --- a/general/releases/4.4.md +++ b/general/releases/4.4.md @@ -34,7 +34,7 @@ Moodle supports the following database servers. Again, version numbers are just | [MySQL](http://www.mysql.com/) | 8.0 (increased since Moodle 4.1) | Latest | | [MariaDB](https://mariadb.org/) | 10.6.7 (increased since Moodle 4.1) | Latest | | [Microsoft SQL Server](http://www.microsoft.com/en-us/server-cloud/products/sql-server/) | 2017 | Latest | -| [Oracle Database](http://www.oracle.com/us/products/database/overview/index.html) | 19c | Latest | +| [Oracle Database](http://www.oracle.com/us/products/database/overview/index.html) | 19c (increased since Moodle 4.3) | Latest | :::note Database prefixes diff --git a/general/releases/4.4/4.4.4.md b/general/releases/4.4/4.4.4.md new file mode 100644 index 0000000000..f4b6c5d530 --- /dev/null +++ b/general/releases/4.4/4.4.4.md @@ -0,0 +1,62 @@ +--- +title: Moodle 4.4.4 +tags: + - Release notes + - Moodle 4.4 +sidebar_position: 4 +moodleVersion: 4.4.4 +description: The release notes for Moodle version 4.4.4. +--- + +import { ReleaseNoteIntro } from '@site/src/components/ReleaseInformation'; + + + +## General fixes and improvements + +- [MDL-77625](https://tracker.moodle.org/browse/MDL-77625) - Repeated quiz restoration to same course references original course questions +- [MDL-80965](https://tracker.moodle.org/browse/MDL-80965) - Random questions no longer display their source category on the edit quiz page +- [MDL-83268](https://tracker.moodle.org/browse/MDL-83268) - H5P API Version Unsupported: running 1.26, requires 1.27 or higher +- [MDL-68676](https://tracker.moodle.org/browse/MDL-68676) - Cannot remove assignment submissions in "Separate groups" group mode +- [MDL-75692](https://tracker.moodle.org/browse/MDL-75692) - H5P content keeps flickering when resources is resizing after initial display +- [MDL-79628](https://tracker.moodle.org/browse/MDL-79628) - Move the navcache out of $SESSION and into MUC session cache +- [MDL-83163](https://tracker.moodle.org/browse/MDL-83163) - Fresh install fails if there are dependencies on format plugins +- [MDL-81987](https://tracker.moodle.org/browse/MDL-81987) - One second Redis timeout causes exceptions instead of degraded performance +- [MDL-80225](https://tracker.moodle.org/browse/MDL-80225) - Recordings go missing because they are marked as Dismissed +- [MDL-83235](https://tracker.moodle.org/browse/MDL-83235) - "ORA-00932: inconsistent datatypes: expected - got CLOB" error during upgrade using Oracle +- [MDL-82995](https://tracker.moodle.org/browse/MDL-82995) - Broken Audio and Video in Text and Media area of Feedback activity +- [MDL-80929](https://tracker.moodle.org/browse/MDL-80929) - Backup/restore "Include custom fields" setting is not observed +- [MDL-82740](https://tracker.moodle.org/browse/MDL-82740) - CSS filter does not apply to monologo icons added in themes +- [MDL-83264](https://tracker.moodle.org/browse/MDL-83264) - Error when adding random questions to a quiz using a "top" question category +- [MDL-82492](https://tracker.moodle.org/browse/MDL-82492) - Performance issues in Grader report due to inefficient HTML output +- [MDL-83122](https://tracker.moodle.org/browse/MDL-83122) - Matrix exception when deleting a user +- [MDL-82494](https://tracker.moodle.org/browse/MDL-82494) - User profile field names are formatted using the wrong method +- [MDL-82804](https://tracker.moodle.org/browse/MDL-82804) - The "Nothing to display" notification is inconsistently applied in reports +- [MDL-82488](https://tracker.moodle.org/browse/MDL-82488) - Double encoded custom field names in report editor +- [MDL-83173](https://tracker.moodle.org/browse/MDL-83173) - My courses cards three dots container overlaps the layout in classic theme +- [MDL-83204](https://tracker.moodle.org/browse/MDL-83204) - No space between "Policies" and "Get the mobile app" link in theme footer +- [MDL-82957](https://tracker.moodle.org/browse/MDL-82957) - Bulk action section checkboxes are not correctly aligned +- [MDL-81612](https://tracker.moodle.org/browse/MDL-81612) - Current extension date not displayed when editing an assignment extension +- [MDL-83127](https://tracker.moodle.org/browse/MDL-83127) - Ordering questions cannot be edited if hints store NULL for "clearwrong" +- [MDL-83094](https://tracker.moodle.org/browse/MDL-83094) - Persistent error when sortorder or descriptionformat for customfield is NULL +- [MDL-83050](https://tracker.moodle.org/browse/MDL-83050) - Collapsed sections on course index is not highlighting the correct element when scrolling +- [MDL-79020](https://tracker.moodle.org/browse/MDL-79020) - Can't edit completion settings when bulk edit is activated +- [MDL-82389](https://tracker.moodle.org/browse/MDL-82389) - Disable Notes Lock Setting not working +- [MDL-82909](https://tracker.moodle.org/browse/MDL-82909) - Inplace editable loading icon stopped spinning since conversion to SVG +- [MDL-83205](https://tracker.moodle.org/browse/MDL-83205) - Redis set EXPIRE can't be < 1 +- [MDL-81157](https://tracker.moodle.org/browse/MDL-81157) - File picker UX issue with button colour in small screens and border CSS issue +- [MDL-82255](https://tracker.moodle.org/browse/MDL-82255) - TinyMCE can't create blockquotes without direct edit of source code +- [MDL-82220](https://tracker.moodle.org/browse/MDL-82220) - Error "Can't find data record in database table groups" when restoring activity to the other site using group custom field + + +## Accessibility improvements + +- [MDL-83047](https://tracker.moodle.org/browse/MDL-83047) - All headings now have white background colour +- [MDL-82677](https://tracker.moodle.org/browse/MDL-82677) - Upgrade screen can have poor contrast when a background image is set +- [MDL-82948](https://tracker.moodle.org/browse/MDL-82948) - Border of <blockquote> tags has insufficient colour contrast +- [MDL-79288](https://tracker.moodle.org/browse/MDL-79288) - Colour contrast issues with the accessibility toolkit's heatmap + + +## Security fixes + +A number of security related issues were resolved. Details of these issues will be released after a period of approximately one week to allow system administrators to safely update to the latest version. diff --git a/general/releases/4.5.md b/general/releases/4.5.md new file mode 100644 index 0000000000..bb0cd5b1d1 --- /dev/null +++ b/general/releases/4.5.md @@ -0,0 +1,387 @@ +--- +title: Moodle 4.5 +tags: + - Release notes + - Moodle 4.5 +sidebar_position: -405 +moodleVersion: 4.5.0 +description: The release notes for Moodle version 4.5.0. +--- + +import { ReleaseNoteIntro } from '@site/src/components/ReleaseInformation'; + + + +If you are upgrading from a previous version, please see [Upgrading](https://docs.moodle.org/en/Upgrading) in the user docs. + +## Server requirements + +These are just the minimum supported versions. We recommend keeping all of your software and operating systems up-to-date. + +- Moodle upgrade: Moodle 4.1.2 or later. +- PHP version: minimum PHP 8.1.0 *Note: minimum PHP version has increased since Moodle 4.3*. PHP 8.3.x is supported too. See [PHP](../development/policies/php.md) for details. +- PHP extension **sodium** is required. See [Environment - PHP extension sodium](https://docs.moodle.org/en/Environment_-_PHP_extension_sodium). +- PHP setting **max_input_vars** must be >= 5000. For further details, see [Environment - max input vars](https://docs.moodle.org/en/Environment_-_max_input_vars). +- PHP variants: Only 64-bit versions of PHP are supported. *Note: Changed since 4.1*. + +### Database requirements + +Moodle supports the following database servers. Again, version numbers are just the minimum supported version. We recommend running the latest stable version of any software. + +| Database | Minimum version | Recommended | +| --- | --- | --- | +| [PostgreSQL](http://www.postgresql.org/) | 13 (increased since Moodle 4.1) | Latest | +| [MySQL](http://www.mysql.com/) | 8.0 (increased since Moodle 4.1) | Latest | +| [MariaDB](https://mariadb.org/) | 10.6.7 (increased since Moodle 4.1) | Latest | +| [Microsoft SQL Server](http://www.microsoft.com/en-us/server-cloud/products/sql-server/) | 2017 | Latest | +| [Oracle Database](http://www.oracle.com/us/products/database/overview/index.html) | 19c (increased since Moodle 4.3) | Latest | + +:::note Database prefixes + +Since Moodle 4.3, the maximum length for the database prefix (`$CFG->prefix`) is 10 characters. Installation or upgrade won't be possible with longer prefixes. + +::: + +## Client requirements + +### Browser support + +Moodle is compatible with any standards compliant web browser. We regularly test Moodle with the following browsers: + +Desktop: + +- Chrome +- Firefox +- Safari +- Edge + +Mobile: + +- MobileSafari +- Google Chrome + +For the best experience and optimum security, we recommend that you keep your browser up to date. + +## Major UX improvements + +### Course hierarchy improvements + +- [MDL-82385](https://tracker.moodle.org/browse/MDL-82385) - Course hierarchy support for the mobile app +- [MDL-81767](https://tracker.moodle.org/browse/MDL-81767) - Add a mod_subsection button to the add activity button +- [MDL-81771](https://tracker.moodle.org/browse/MDL-81771) - Display delegated sections in course Activity report +- [MDL-81765](https://tracker.moodle.org/browse/MDL-81765) - Add mod_subsection to core +- [MDL-81766](https://tracker.moodle.org/browse/MDL-81766) - Display mod_subsection activity card like a subsection in the course page +- [MDL-81769](https://tracker.moodle.org/browse/MDL-81769) - Allow mod_subsection to override the activity actions dropdown +- [MDL-82495](https://tracker.moodle.org/browse/MDL-82495) - Display sections in user Outline report and Complete report +- [MDL-82376](https://tracker.moodle.org/browse/MDL-82376) - Implement an alternative to the move icon in the course index +- [MDL-81648](https://tracker.moodle.org/browse/MDL-81648) - Allow the delegate plugin to add new breadcrumb nodes +- [MDL-81681](https://tracker.moodle.org/browse/MDL-81681) - Make section page header reactive +- [MDL-82357](https://tracker.moodle.org/browse/MDL-82357) - Prevent subsection from being moved into another subsection +- [MDL-82324](https://tracker.moodle.org/browse/MDL-82324) - Show dropzones into the section page when the section is empty +- [MDL-82146](https://tracker.moodle.org/browse/MDL-82146) - Display delegated sections in Logs report +- [MDL-80191](https://tracker.moodle.org/browse/MDL-80191) - Enable delegate plugins to include delegated sections in the backup +- [MDL-82478](https://tracker.moodle.org/browse/MDL-82478) - Add "Delete" option to subsection page +- [MDL-82480](https://tracker.moodle.org/browse/MDL-82480) - Add "Move" option to subsection action menu +- [MDL-81683](https://tracker.moodle.org/browse/MDL-81683) - Add subsections to the move activity modal +- [MDL-81725](https://tracker.moodle.org/browse/MDL-81725) - Display subsections in the course index +- [MDL-81798](https://tracker.moodle.org/browse/MDL-81798) - Prevent the course to try creating mod_subsection instances once the section limit is reached +- [MDL-82510](https://tracker.moodle.org/browse/MDL-82510) - Add new action menu for subsections + + +### Assignment improvements - phase 1 + +#### Assignment settings + +- [MDL-80741](https://tracker.moodle.org/browse/MDL-80741) - Remove redundant "Never" option from "Additional attempts" in assignment settings +- [MDL-80743](https://tracker.moodle.org/browse/MDL-80743) - New option in "Additional Attempts" setting to enable unconditional automatic attempts in assignment + + +#### Assignment submissions page + +- [MDL-80747](https://tracker.moodle.org/browse/MDL-80747) - Revamp the submission status filter on the assignment submissions page +- [MDL-80750](https://tracker.moodle.org/browse/MDL-80750) - Implement a "sticky" footer on the assignment submissions page +- [MDL-82195](https://tracker.moodle.org/browse/MDL-82195) - Add a link to the submissions page in the assignment's secondary navigation +- [MDL-80748](https://tracker.moodle.org/browse/MDL-80748) - Make the table header "sticky" on the assignment submissions page +- [MDL-82681](https://tracker.moodle.org/browse/MDL-82681) - Enhance the "marker" and "active participants" filters on the assignment submissions page +- [MDL-80746](https://tracker.moodle.org/browse/MDL-80746) - Revamp the initials filter on the assignment submissions page +- [MDL-82295](https://tracker.moodle.org/browse/MDL-82295) - Introduce new contextual menus for the editing options on the submissions page +- [MDL-80744](https://tracker.moodle.org/browse/MDL-80744) - Implement user search filter on the assignment submissions page +- [MDL-82508](https://tracker.moodle.org/browse/MDL-82508) - Revamp the workflow filter on the assignment submissions page +- [MDL-80745](https://tracker.moodle.org/browse/MDL-80745) - Revamp the group selector on the assignment submissions page + + +## Other major features + +### Add AI subsystem to LMS + +- [MDL-82627](https://tracker.moodle.org/browse/MDL-82627) - AI subsystem MVP +- [MDL-80891](https://tracker.moodle.org/browse/MDL-80891) - AI placement: Text Editor (image and text) +- [MDL-80890](https://tracker.moodle.org/browse/MDL-80890) - AI placement: Course Assistance +- [MDL-80894](https://tracker.moodle.org/browse/MDL-80894) - AI provider plugin: Open AI +- [MDL-82411](https://tracker.moodle.org/browse/MDL-82411) - AI provider plugin: Azure AI +- [MDL-82609](https://tracker.moodle.org/browse/MDL-82609) - AI provider action settings + + +### Add SMS subsystem and gateway plugin type + +- [MDL-81924](https://tracker.moodle.org/browse/MDL-81924) - SMS subsystem MVP +- [MDL-80960](https://tracker.moodle.org/browse/MDL-80960) - Create SMS API skeleton and gateway plugin type +- [MDL-80961](https://tracker.moodle.org/browse/MDL-80961) - Implement AWS SMS gateway plugin and hook SMS MFA into SMS API +- [MDL-81732](https://tracker.moodle.org/browse/MDL-81732) - Create UI for SMS gateway instance management + + +### Implement Open Badges 3.0 + +- [MDL-43938](https://tracker.moodle.org/browse/MDL-43938) - Allow duplicate badge names +- [MDL-82057](https://tracker.moodle.org/browse/MDL-82057) - Import/Copy badges into other courses +- [MDL-82503](https://tracker.moodle.org/browse/MDL-82503) - Merge "Manage badges" and "Course badges" reports +- [MDL-82168](https://tracker.moodle.org/browse/MDL-82168) - Improve badges workflow: Move enable badge action to a modal +- [MDL-72354](https://tracker.moodle.org/browse/MDL-72354) - Show always issuer details when creating/editing badges + + +### Notification Improvements - phase 2 + +- [MDL-79716](https://tracker.moodle.org/browse/MDL-79716) - New notification: Upcoming Assignment Due +- [MDL-79718](https://tracker.moodle.org/browse/MDL-79718) - New notification: Upcoming Quiz Open +- [MDL-79733](https://tracker.moodle.org/browse/MDL-79733) - New notification: Assignment overdue +- [MDL-79734](https://tracker.moodle.org/browse/MDL-79734) - New notification: Assignments due in 7 days + + +### Enhance icons utilising Font Awesome 6 + +- [MDL-82500](https://tracker.moodle.org/browse/MDL-82500) - Enhance the call to action on the My Courses page +- [MDL-82211](https://tracker.moodle.org/browse/MDL-82211) - Update icon_map with the latest icons from Font Awesome 6 (plugins) +- [MDL-82212](https://tracker.moodle.org/browse/MDL-82212) - Provide a mechanism to deprecate and detect deprecated icons +- [MDL-82497](https://tracker.moodle.org/browse/MDL-82497) - Update icon_map with the latest icons from Font Awesome 6 (core) +- [MDL-82498](https://tracker.moodle.org/browse/MDL-82498) - Update pix/s emoticons with the emojis from the emoji-data library +- [MDL-82938](https://tracker.moodle.org/browse/MDL-82938) - Consistent table sorting icons in report builder editor +- [MDL-80562](https://tracker.moodle.org/browse/MDL-80562) - Reports converted to use report builder should use an ellipsis for the actions menu +- [MDL-82210](https://tracker.moodle.org/browse/MDL-82210) - Add support to Font Awesome families +- [MDL-82476](https://tracker.moodle.org/browse/MDL-82476) - Remove non-SVG icons +- [MDL-81589](https://tracker.moodle.org/browse/MDL-81589) - Use Font Awesome icons in global search + + +### BigBlueButton + +- [MDL-82520](https://tracker.moodle.org/browse/MDL-82520) - Create New Setting to Show/Hide Presentation File on Activity Page +- [MDL-82872](https://tracker.moodle.org/browse/MDL-82872) - Extend meeting_events with subplugins +- [MDL-82854](https://tracker.moodle.org/browse/MDL-82854) - Log for analytics callback should store the raw data +- [MDL-82447](https://tracker.moodle.org/browse/MDL-82447) - Remove mobile plugin from BigBlueButton plugin + + +### Quiz and questions + +- [MDL-72397](https://tracker.moodle.org/browse/MDL-72397) - Improve question category management UI +- [MDL-76665](https://tracker.moodle.org/browse/MDL-76665) - Allow admins to deactivate Safe Exam Browser templates even if used in existing quizzes +- [MDL-78662](https://tracker.moodle.org/browse/MDL-78662) - Allow filtered content in answers for Drag-and-drop questions +- [MDL-79546](https://tracker.moodle.org/browse/MDL-79546) - Enable regrading for selected questions in quiz +- [MDL-80489](https://tracker.moodle.org/browse/MDL-80489) - Help text for "Choices" section during Drag-and-drop into text question creation +- [MDL-82659](https://tracker.moodle.org/browse/MDL-82659) - New Safe Exam Browser quiz setting capabilities for controlling manual config and SEB client config +- [MDL-81075](https://tracker.moodle.org/browse/MDL-81075) - Provide an option to disable "sticky" defaults when creating questions +- [MDL-82587](https://tracker.moodle.org/browse/MDL-82587) - Log changes to the version of questions used in quiz + + +### Report builder + +- [MDL-52046](https://tracker.moodle.org/browse/MDL-52046) - Provide option to bulk delete cohorts +- [MDL-76889](https://tracker.moodle.org/browse/MDL-76889) - Create "Competencies" custom report source +- [MDL-81330](https://tracker.moodle.org/browse/MDL-81330) - Add Cohort condition and filter to Course Participants source +- [MDL-79496](https://tracker.moodle.org/browse/MDL-79496) - Convert manage tokens report to system report +- [MDL-80123](https://tracker.moodle.org/browse/MDL-80123) - Convert/improve the admin presets listing page +- [MDL-82331](https://tracker.moodle.org/browse/MDL-82331) - Support custom report date filter by minute +- [MDL-82529](https://tracker.moodle.org/browse/MDL-82529) - Allow to filter by custom fields within the Cohort report page +- [MDL-81433](https://tracker.moodle.org/browse/MDL-81433) - Return custom report tags in external methods for retrieving reports +- [MDL-81399](https://tracker.moodle.org/browse/MDL-81399) - Custom user reporting by timezone and language +- [MDL-82466](https://tracker.moodle.org/browse/MDL-82466) - Format the output of the "Days taking course" report completion columns +- [MDL-81168](https://tracker.moodle.org/browse/MDL-81168) - Ensure all filters that accept numeric data also handle localised floats +- [MDL-82175](https://tracker.moodle.org/browse/MDL-82175) - Get rid of the task log popup window and make it a normal page +- [MDL-82114](https://tracker.moodle.org/browse/MDL-82114) - Add plugin/area filters to Files custom report source +- [MDL-82512](https://tracker.moodle.org/browse/MDL-82512) - Add "Author" report filter to the files report entity/source +- [MDL-76392](https://tracker.moodle.org/browse/MDL-76392) - System reports should be allowed to define aggregation to allow re-use of entities +- [MDL-81754](https://tracker.moodle.org/browse/MDL-81754) - Consistent comparison field labels in report filters +- [MDL-82463](https://tracker.moodle.org/browse/MDL-82463) - Improve column types for numeric columns that don't produce numeric output + + +### TinyMCE 6 + +- [MDL-81212](https://tracker.moodle.org/browse/MDL-81212) - Tiny/RecordRTC: Add Screen-recorder button +- [MDL-81111](https://tracker.moodle.org/browse/MDL-81111) - Tiny/RecordRTC: TinyMCE conversion - add "Pause" button for recording A/V + + +### Content bank and H5P + +- [MDL-74590](https://tracker.moodle.org/browse/MDL-74590) - Add Custom Fields to Content Bank +- [MDL-76242](https://tracker.moodle.org/browse/MDL-76242) - Hide/show unlisted content on contentbank and filepicker + + +### Usability improvements + +- [MDL-26675](https://tracker.moodle.org/browse/MDL-26675) - Unable to return to the RSS block settings after adding a new RSS feed +- [MDL-82339](https://tracker.moodle.org/browse/MDL-82339) - User tours setup: text input boxes should be big enough so typical content is not truncated +- [MDL-81250](https://tracker.moodle.org/browse/MDL-81250) - Display the full names instead of the short names for the course dropdown filter in the calendar +- [MDL-81872](https://tracker.moodle.org/browse/MDL-81872) - Course reset: Improve form wording and remove advanced elements +- [MDL-81866](https://tracker.moodle.org/browse/MDL-81866) - Course reset: Move Reset button to sticky and improve the workflow +- [MDL-81742](https://tracker.moodle.org/browse/MDL-81742) - Improve feedback activity "Edit questions" navigation +- [MDL-81743](https://tracker.moodle.org/browse/MDL-81743) - Improve feedback activity "Edit questions" questions UI +- [MDL-81503](https://tracker.moodle.org/browse/MDL-81503) - Improve the section error page when the ID is not correct +- [MDL-77661](https://tracker.moodle.org/browse/MDL-77661) - Use danger button for the Reset actions in Database activity +- [MDL-73232](https://tracker.moodle.org/browse/MDL-73232) - Inform teacher about maxsections setting to understand why they cannot add more topics/weeks +- [MDL-54105](https://tracker.moodle.org/browse/MDL-54105) - Ability to set default grade options for assignments +- [MDL-60957](https://tracker.moodle.org/browse/MDL-60957) - Show assignment extension date in calendar + + +## Other Highlights + +### Functional changes + +- [MDL-63753](https://tracker.moodle.org/browse/MDL-63753) - Show stealth activity links to non-editing teachers +- [MDL-81506](https://tracker.moodle.org/browse/MDL-81506) - Allow teacher to edit manual course welcome message +- [MDL-63015](https://tracker.moodle.org/browse/MDL-63015) - Lock the feedback form when previewing +- [MDL-80858](https://tracker.moodle.org/browse/MDL-80858) - Add numeric field type for course custom fields +- [MDL-81741](https://tracker.moodle.org/browse/MDL-81741) - Create a new feedback activity "Questions" secondary menu item +- [MDL-77195](https://tracker.moodle.org/browse/MDL-77195) - Support multilang for the shibboleth login button +- [MDL-81321](https://tracker.moodle.org/browse/MDL-81321) - Remove "View templates" link from the sticky footer in the Database fields page +- [MDL-72424](https://tracker.moodle.org/browse/MDL-72424) - Remove non-functional role switch check in Feedback module + + +### For administrators + +- [MDL-80967](https://tracker.moodle.org/browse/MDL-80967) - Login page: Give the option to hide the login form with only a configuration +- [MDL-77544](https://tracker.moodle.org/browse/MDL-77544) - Include start and end dates with External database course creation +- [MDL-81533](https://tracker.moodle.org/browse/MDL-81533) - Availability restriction info default change +- [MDL-82066](https://tracker.moodle.org/browse/MDL-82066) - Allow plugins to hook into/extend site default homepage options +- [MDL-81942](https://tracker.moodle.org/browse/MDL-81942) - Respect defaulthomepage setting for guests +- [MDL-82532](https://tracker.moodle.org/browse/MDL-82532) - Capability to allow/prevent view of profile images + + +### Performance + +- [MDL-66151](https://tracker.moodle.org/browse/MDL-66151) - Allow session stores to fully manage the session +- [MDL-78030](https://tracker.moodle.org/browse/MDL-78030) - Make tablelib and reports faster by combining count query into main query +- [MDL-64325](https://tracker.moodle.org/browse/MDL-64325) - Improve final grade calculation performance for grade items and categories + + +## Security improvements + +- [MDL-58353](https://tracker.moodle.org/browse/MDL-58353) - Empower users to be able to log out other sessions during password reset +- [MDL-75850](https://tracker.moodle.org/browse/MDL-75850) - Add the ability to configure automatic EXIF data removal from uploaded images +- [MDL-82231](https://tracker.moodle.org/browse/MDL-82231) - Public path checker should check for new UPGRADING.md files +- [MDL-81940](https://tracker.moodle.org/browse/MDL-81940) - Replace the RC4 encryption methods with a standard library +- [MDL-82585](https://tracker.moodle.org/browse/MDL-82585) - Final removal of long since unused proxy scripts in Feedback + + +## For developers + +- [MDL-81125](https://tracker.moodle.org/browse/MDL-81125) - Introduce tooling for upgrade note management +- [MDL-80797](https://tracker.moodle.org/browse/MDL-80797) - Add support for local plugins to add or reorder secondary navigation menu items in course navigation using hooks API +- [MDL-81807](https://tracker.moodle.org/browse/MDL-81807) - Implement automatic download and update of GeoIP database via scheduled task +- [MDL-81816](https://tracker.moodle.org/browse/MDL-81816) - Refactor theme-color-level() function renamed in Bootstrap 5 +- [MDL-75671](https://tracker.moodle.org/browse/MDL-75671) - Refactor utility classes for layout and spacing renamed in Bootstrap 5 + + +### Web service modernisation + +- [MDL-81031](https://tracker.moodle.org/browse/MDL-81031) - Initial implementation of the Routing system +- [MDL-81903](https://tracker.moodle.org/browse/MDL-81903) - Add new exception API +- [MDL-80275](https://tracker.moodle.org/browse/MDL-80275) - Allow ABORT_AFTER_CONFIG to include autoload tooling +- [MDL-82778](https://tracker.moodle.org/browse/MDL-82778) - Refactor core/fetch + + +### Break apart core monolith *lib.php files + +- [MDL-81919](https://tracker.moodle.org/browse/MDL-81919) - Break apart lib/setuplib.php +- [MDL-82156](https://tracker.moodle.org/browse/MDL-82156) - Add check to \core_component for some key autoloadable classes +- [MDL-82183](https://tracker.moodle.org/browse/MDL-82183) - Break apart lib/output* +- [MDL-81960](https://tracker.moodle.org/browse/MDL-81960) - Break apart lib/weblib.php +- [MDL-82158](https://tracker.moodle.org/browse/MDL-82158) - Break apart cache/lib.php classes +- [MDL-82191](https://tracker.moodle.org/browse/MDL-82191) - Deprecate unused libs (lib/soaplib.php, lib/tokeniserlib.php) +- [MDL-82427](https://tracker.moodle.org/browse/MDL-82427) - Split filterlib.php +- [MDL-82287](https://tracker.moodle.org/browse/MDL-82287) - Trim lib/deprecatedlib.php +- [MDL-81920](https://tracker.moodle.org/browse/MDL-81920) - Split out the emoticon/lang string classes from moodlelib + + +### Web service additions and updates + +- [MDL-70854](https://tracker.moodle.org/browse/MDL-70854) - New API to allow adhoc tasks to communicate a progress bar / status back to the calling page +- [MDL-82105](https://tracker.moodle.org/browse/MDL-82105) - New web service to retrieve information about a badge (core_badges_get_badge) +- [MDL-78293](https://tracker.moodle.org/browse/MDL-78293) - New web service to allow managing private files +- [MDL-74050](https://tracker.moodle.org/browse/MDL-74050) - New web service to allow removing submissions +- [MDL-81699](https://tracker.moodle.org/browse/MDL-81699) - Web service core_course_get_courses_by_field should support a new parameter (sectionid) to be able to retrieve the course that has the indicated section +- [MDL-82234](https://tracker.moodle.org/browse/MDL-82234) - Update the tool_mobile_get_public_config web service to return the new option to hide the login form + + +### Deprecations + +- [MDL-82935](https://tracker.moodle.org/browse/MDL-82935) - Remove $straction from filter/manage.php +- [MDL-82223](https://tracker.moodle.org/browse/MDL-82223) - Final deprecation of availability restrictions renderer +- [MDL-72353](https://tracker.moodle.org/browse/MDL-72353) - Final deprecation of save_selected_report() +- [MDL-76690](https://tracker.moodle.org/browse/MDL-76690) - Final deprecation of Report builder methods deprecated in 4.1 +- [MDL-74939](https://tracker.moodle.org/browse/MDL-74939) - Final deprecation of "local/views" namespace used for navigation +- [MDL-74484](https://tracker.moodle.org/browse/MDL-74484) - Final deprecation of print_error() +- [MDL-71748](https://tracker.moodle.org/browse/MDL-71748) - Final deprecation of reset_caches +- [MDL-72620](https://tracker.moodle.org/browse/MDL-72620) - Final deprecation of repository_skydrive importing feature +- [MDL-74843](https://tracker.moodle.org/browse/MDL-74843) - Final deprecation of \core\task\manager::ensure_adhoc_task_qos +- [MDL-73956](https://tracker.moodle.org/browse/MDL-73956) - Final deprecation of function "forum_update_subscriptions_button" +- [MDL-75022](https://tracker.moodle.org/browse/MDL-75022) - Final deprecation of core_backup\copy +- [MDL-71326](https://tracker.moodle.org/browse/MDL-71326) - Final deprecation of plagiarism functions (4.4) +- [MDL-73284](https://tracker.moodle.org/browse/MDL-73284) - Final deprecation of MESSAGE_DEFAULT_LOGGEDOFF / MESSAGE_DEFAULT_LOGGEDIN +- [MDL-73976](https://tracker.moodle.org/browse/MDL-73976) - Final deprecation of print_course_request_buttons +- [MDL-75025](https://tracker.moodle.org/browse/MDL-75025) - Final deprecation of base_controller::set_copy/get_copy +- [MDL-73165](https://tracker.moodle.org/browse/MDL-73165) - Final deprecation of should_display_main_logo() in renderer.php +- [MDL-77167](https://tracker.moodle.org/browse/MDL-77167) - Remove deprecation layer for MDL-70990 (YUI Events) +- [MDL-81914](https://tracker.moodle.org/browse/MDL-81914) - Remove deprecated "\core_competency\invalid_persistent_exception" +- [MDL-82301](https://tracker.moodle.org/browse/MDL-82301) - Remove legacy tabs.php file from Feedback module +- [MDL-82547](https://tracker.moodle.org/browse/MDL-82547) - Remove usage of, and deprecation layer for, inplace editable jQuery events +- [MDL-78776](https://tracker.moodle.org/browse/MDL-78776) - Expunge MyISAM code, strings, docs + + +### Component API updates + +- [core](https://github.com/moodle/moodle/blob/v4.5.0/lib/UPGRADING.md) +- [core_admin](https://github.com/moodle/moodle/blob/v4.5.0/admin/UPGRADING.md) +- [core_availability](https://github.com/moodle/moodle/blob/v4.5.0/availability/UPGRADING.md) +- [core_backup](https://github.com/moodle/moodle/blob/v4.5.0/backup/util/ui/UPGRADING.md) +- [core_badges](https://github.com/moodle/moodle/blob/v4.5.0/badges/UPGRADING.md) +- [core_cache](https://github.com/moodle/moodle/blob/v4.5.0/cache/UPGRADING.md) +- [core_communication](https://github.com/moodle/moodle/blob/v4.5.0/communication/UPGRADING.md) +- [core_completion](https://github.com/moodle/moodle/blob/v4.5.0/completion/UPGRADING.md) +- [core_course](https://github.com/moodle/moodle/blob/v4.5.0/course/UPGRADING.md) +- [core_courseformat](https://github.com/moodle/moodle/blob/v4.5.0/course/format/UPGRADING.md) +- [core_customfield](https://github.com/moodle/moodle/blob/v4.5.0/customfield/UPGRADING.md) +- [core_external](https://github.com/moodle/moodle/blob/v4.5.0/lib/external/UPGRADING.md) +- [core_files](https://github.com/moodle/moodle/blob/v4.5.0/files/UPGRADING.md) +- [core_filters](https://github.com/moodle/moodle/blob/v4.5.0/filter/UPGRADING.md) +- [core_form](https://github.com/moodle/moodle/blob/v4.5.0/lib/form/UPGRADING.md) +- [core_grades](https://github.com/moodle/moodle/blob/v4.5.0/grade/UPGRADING.md) +- [core_message](https://github.com/moodle/moodle/blob/v4.5.0/message/UPGRADING.md) +- [core_question](https://github.com/moodle/moodle/blob/v4.5.0/question/UPGRADING.md) +- [core_report](https://github.com/moodle/moodle/blob/v4.5.0/report/UPGRADING.md) +- [core_reportbuilder](https://github.com/moodle/moodle/blob/v4.5.0/reportbuilder/UPGRADING.md) +- [core_role](https://github.com/moodle/moodle/blob/v4.5.0/admin/roles/UPGRADING.md) +- [core_sms](https://github.com/moodle/moodle/blob/v4.5.0/sms/UPGRADING.md) +- [core_table](https://github.com/moodle/moodle/blob/v4.5.0/lib/table/UPGRADING.md) +- [core_user](https://github.com/moodle/moodle/blob/v4.5.0/user/UPGRADING.md) +- [availability](https://github.com/moodle/moodle/blob/v4.5.0/availability/condition/UPGRADING.md) +- [customfield_number](https://github.com/moodle/moodle/blob/v4.5.0/customfield/field/number/UPGRADING.md) +- [customfield_select](https://github.com/moodle/moodle/blob/v4.5.0/customfield/field/select/UPGRADING.md) +- [editor_tiny](https://github.com/moodle/moodle/blob/v4.5.0/lib/editor/tiny/UPGRADING.md) +- [factor_sms](https://github.com/moodle/moodle/blob/v4.5.0/admin/tool/mfa/factor/sms/UPGRADING.md) +- [gradereport_grader](https://github.com/moodle/moodle/blob/v4.5.0/grade/report/grader/UPGRADING.md) +- [gradereport_singleview](https://github.com/moodle/moodle/blob/v4.5.0/grade/report/singleview/UPGRADING.md) +- [gradereport_user](https://github.com/moodle/moodle/blob/v4.5.0/grade/report/user/UPGRADING.md) +- [mod](https://github.com/moodle/moodle/blob/v4.5.0/mod/UPGRADING.md) +- [mod_assign](https://github.com/moodle/moodle/blob/v4.5.0/mod/assign/UPGRADING.md) +- [mod_bigbluebuttonbn](https://github.com/moodle/moodle/blob/v4.5.0/mod/bigbluebuttonbn/UPGRADING.md) +- [mod_data](https://github.com/moodle/moodle/blob/v4.5.0/mod/data/UPGRADING.md) +- [mod_feedback](https://github.com/moodle/moodle/blob/v4.5.0/mod/feedback/UPGRADING.md) +- [mod_quiz](https://github.com/moodle/moodle/blob/v4.5.0/mod/quiz/UPGRADING.md) +- [qbank_managecategories](https://github.com/moodle/moodle/blob/v4.5.0/question/bank/managecategories/UPGRADING.md) +- [report_eventlist](https://github.com/moodle/moodle/blob/v4.5.0/report/eventlist/UPGRADING.md) +- [report_log](https://github.com/moodle/moodle/blob/v4.5.0/report/log/UPGRADING.md) +- [repository_onedrive](https://github.com/moodle/moodle/blob/v4.5.0/repository/onedrive/UPGRADING.md) +- [theme](https://github.com/moodle/moodle/blob/v4.5.0/theme/UPGRADING.md) +- [theme_boost](https://github.com/moodle/moodle/blob/v4.5.0/theme/boost/UPGRADING.md) +- [tool](https://github.com/moodle/moodle/blob/v4.5.0/admin/tool/UPGRADING.md) +- [tool_behat](https://github.com/moodle/moodle/blob/v4.5.0/admin/tool/behat/UPGRADING.md) +- [tool_oauth2](https://github.com/moodle/moodle/blob/v4.5.0/admin/tool/oauth2/UPGRADING.md) + diff --git a/nextVersion.js b/nextVersion.js index 5616111d1f..3cf1b88c12 100644 --- a/nextVersion.js +++ b/nextVersion.js @@ -15,8 +15,8 @@ * along with Moodle. If not, see . */ -const nextVersion = '4.5'; -const nextLTSVersion = '4.5'; +const nextVersion = '5.0'; +const nextLTSVersion = '5.3'; const nextVersionRoot = `/docs/${nextVersion}`; module.exports = {