Skip to content

Commit b4e69f4

Browse files
committed
Merge remote-tracking branch 'origin/dev' into iss1703
2 parents 637419f + 2c838a8 commit b4e69f4

27 files changed

Lines changed: 482 additions & 329 deletions

File tree

.github/workflows/moodle-ci.yml

Lines changed: 51 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -38,27 +38,27 @@ jobs:
3838
maxima: 'GCL'
3939
moodle-app: true
4040
- php: '8.4'
41-
moodle-branch: 'MOODLE_501_STABLE'
41+
moodle-branch: 'MOODLE_502_STABLE'
4242
database: 'pgsql'
4343
maxima: 'SBCL'
4444
moodle-app: true
4545
- php: '8.2'
4646
moodle-branch: 'MOODLE_500_STABLE'
4747
database: 'pgsql'
4848
maxima: 'SBCL'
49-
moodle-app: true
49+
moodle-app: false
5050
# Edinburgh is planning to run the setup below for 2025-26.
5151
- php: '8.2'
5252
moodle-branch: 'MOODLE_405_STABLE'
5353
database: 'mariadb'
5454
maxima: 'GCL'
55-
moodle-app: true
55+
moodle-app: false
5656
# Note, Moodle 4.2 will run on PHP 8.0, but we require PHP 8.1 or newer.
5757
- php: '8.1'
5858
moodle-branch: 'MOODLE_402_STABLE'
5959
database: 'pgsql'
6060
maxima: 'GCL'
61-
moodle-app: true
61+
moodle-app: false
6262

6363
steps:
6464
- name: Install Maxima (${{ matrix.maxima }})
@@ -151,10 +151,43 @@ jobs:
151151
env:
152152
DB: ${{ matrix.database }}
153153
MOODLE_BRANCH: ${{ matrix.moodle-branch }}
154-
MOODLE_APP: ${{ matrix.moodle-app }}
155154

156-
- name: Install moodle-plugin-ci (light unit tests)
157-
if: ${{ matrix.moodle-branch != 'main' }}
155+
- name: Install moodle-plugin-ci (light unit tests & moodle app)
156+
if: ${{ matrix.moodle-branch != 'main' && matrix.moodle-app == true}}
157+
run: |
158+
moodle-plugin-ci add-plugin maths/moodle-qbehaviour_dfexplicitvaildate
159+
moodle-plugin-ci add-plugin maths/moodle-qbehaviour_dfcbmexplicitvaildate
160+
moodle-plugin-ci add-plugin maths/moodle-qbehaviour_adaptivemultipart
161+
moodle-plugin-ci add-plugin maths/moodle-qbank_importasversion
162+
163+
moodle-plugin-ci install --plugin ./plugin --db-host=127.0.0.1
164+
165+
moodle-plugin-ci add-config 'define("QTYPE_STACK_TEST_CONFIG_MAXIMAVERSION", "5.42.2");'
166+
moodle-plugin-ci add-config 'define("QTYPE_STACK_TEST_CONFIG_MAXIMACOMMAND", "maxima");'
167+
moodle-plugin-ci add-config 'define("QTYPE_STACK_TEST_CONFIG_MAXIMACOMMANDOPT", "timeout --kill-after=10s 10s ${{ github.workspace }}/maxima_opt_auto -eval '\''(cl-user::run)'\''");'
168+
moodle-plugin-ci add-config 'define("QTYPE_STACK_TEST_CONFIG_MAXIMACOMMANDSERVER", "http://pool.home:8080/MaximaPool/MaximaPool");'
169+
moodle-plugin-ci add-config 'define("QTYPE_STACK_TEST_CONFIG_CASTIMEOUT", "100");'
170+
moodle-plugin-ci add-config 'define("QTYPE_STACK_TEST_CONFIG_MAXIMALIBRARIES", "stats, distrib, descriptive, simplex");'
171+
moodle-plugin-ci add-config 'define("QTYPE_STACK_TEST_CONFIG_CASPREPARSE", "true");'
172+
moodle-plugin-ci add-config 'define("QTYPE_STACK_TEST_CONFIG_PLATFORM", "linux-optimised");'
173+
moodle-plugin-ci add-config 'define("QTYPE_STACK_TEST_CONFIG_CASRESULTSCACHE", "db");'
174+
moodle-plugin-ci add-config 'define("QTYPE_STACK_TEST_CONFIG_PLOTCOMMAND", "");'
175+
moodle-plugin-ci add-config 'define("QTYPE_STACK_TEST_CONFIG_CASDEBUGGING", "0");'
176+
moodle-plugin-ci add-config 'define("QTYPE_STACK_TEST_CONFIG_CI_LIGHT", "1");'
177+
178+
#cat ${{ github.workspace }}/moodle/config.php
179+
180+
cp ${{ github.workspace }}/moodledata/phpu_moodledata/stack/maxima_opt_auto ${{ github.workspace }}/maxima_opt_auto
181+
# Try a command on the command line.
182+
# echo "1+1; quit();" | timeout --kill-after=100s 100s ${{ github.workspace }}/maxima_opt_auto -eval '(cl-user::run)'
183+
184+
env:
185+
DB: ${{ matrix.database }}
186+
MOODLE_BRANCH: ${{ matrix.moodle-branch }}
187+
MOODLE_APP: 'true'
188+
189+
- name: Install moodle-plugin-ci (light unit tests & no moodle app)
190+
if: ${{ matrix.moodle-branch != 'main' && matrix.moodle-app != true}}
158191
run: |
159192
moodle-plugin-ci add-plugin maths/moodle-qbehaviour_dfexplicitvaildate
160193
moodle-plugin-ci add-plugin maths/moodle-qbehaviour_dfcbmexplicitvaildate
@@ -185,51 +218,50 @@ jobs:
185218
env:
186219
DB: ${{ matrix.database }}
187220
MOODLE_BRANCH: ${{ matrix.moodle-branch }}
188-
MOODLE_APP: ${{ matrix.moodle-app }}
189221

190222
- name: PHP Lint
191-
if: ${{ matrix.moodle-branch == 'main' }}
223+
if: ${{ matrix.moodle-branch == 'main' || matrix.moodle-branch == 'MOODLE_502_STABLE'}}
192224
run: moodle-plugin-ci phplint
193225

194226
- name: PHP Copy/Paste Detector
195227
continue-on-error: true # This step will show errors but will not fail.
196-
if: ${{ matrix.moodle-branch == 'main' }}
228+
if: ${{ matrix.moodle-branch == 'main' || matrix.moodle-branch == 'MOODLE_502_STABLE'}}
197229
run: moodle-plugin-ci phpcpd
198230

199231
- name: PHP Mess Detector
200232
continue-on-error: true # This step will show errors but will not fail.
201-
if: ${{ matrix.moodle-branch == 'main' }}
233+
if: ${{ matrix.moodle-branch == 'main' || matrix.moodle-branch == 'MOODLE_502_STABLE'}}
202234
run: moodle-plugin-ci phpmd
203235

204236
- name: Moodle Code Checker
205237
continue-on-error: true # Currently fails. We really ought to get this passing.
206-
if: ${{ matrix.moodle-branch == 'main' }}
238+
if: ${{ matrix.moodle-branch == 'main' || matrix.moodle-branch == 'MOODLE_502_STABLE'}}
207239
run: moodle-plugin-ci codechecker --max-warnings 0
208240

209241
- name: Moodle PHPDoc Checker
210242
continue-on-error: true # Currently fails. We really ought to get this passing.
211-
if: ${{ matrix.moodle-branch == 'main' }}
243+
if: ${{ matrix.moodle-branch == 'main' || matrix.moodle-branch == 'MOODLE_502_STABLE'}}
212244
run: moodle-plugin-ci phpdoc
213245

214246
- name: Validating
215-
if: ${{ matrix.moodle-branch == 'main' }}
247+
if: ${{ matrix.moodle-branch == 'main' || matrix.moodle-branch == 'MOODLE_502_STABLE'}}
216248
run: moodle-plugin-ci validate
217249

218250
- name: Check upgrade savepoints
219-
if: ${{ matrix.moodle-branch == 'main' }}
251+
if: ${{ matrix.moodle-branch == 'main' || matrix.moodle-branch == 'MOODLE_502_STABLE'}}
220252
run: moodle-plugin-ci savepoints
221253

222254
- name: Mustache Lint
223-
if: ${{ matrix.moodle-branch == 'main' }}
255+
if: ${{ matrix.moodle-branch == 'main' || matrix.moodle-branch == 'MOODLE_502_STABLE'}}
224256
run: moodle-plugin-ci mustache
225257

226258
- name: Grunt
227-
if: ${{ matrix.moodle-branch == 'main' }}
259+
if: ${{ matrix.moodle-branch == 'main' || matrix.moodle-branch == 'MOODLE_502_STABLE'}}
228260
run: moodle-plugin-ci grunt
229261

230262
- name: PHPUnit tests
231-
#if: ${{ matrix.moodle-branch == 'main' || matrix.moodle-branch == 'MOODLE_405_STABLE'}}
232-
if: ${{ always() }}
263+
if: ${{ matrix.moodle-branch == 'main' || matrix.moodle-branch == 'MOODLE_405_STABLE'}}
264+
#if: ${{ always() }}
233265
run: moodle-plugin-ci phpunit
234266

235267
- name: Behat features

Readme.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# STACK 4.11.1
1+
# STACK 4.12.0
22

33
STACK is an assessment system for mathematics, science and related disciplines. STACK is a question type for the Moodle learning management system, and also the ILIAS learning management system. STACK has an API for stand-alone integration into other 3rd party systems.
44

api/config_sample.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,8 +95,8 @@ $CFG->inputmustverify = 1;
9595
$CFG->inputshowvalidation = 1;
9696

9797
// These should match the version of goemaxima in docker-compose.
98-
$CFG->stackmaximaversion = "2026010500";
99-
$CFG->version = "2026010500";
98+
$CFG->stackmaximaversion = "2026042200";
99+
$CFG->version = "2026042200";
100100

101101
// Do not change this setting.
102102
$CFG->mathsdisplay = 'api';

api/controller/RenderController.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -188,15 +188,17 @@ public function __invoke(Request $request, Response $response, array $args): Res
188188
$renderresponse->questionrender
189189
);
190190
$renderresponse->questionsamplesolutiontext = str_replace(
191-
"id=\"{$iframe[2]}\"></div>", "id=\"{$iframe[2]}\">{$renderediframe}</div>",
191+
"id=\"{$iframe[2]}\"></div>",
192+
"id=\"{$iframe[2]}\">{$renderediframe}</div>",
192193
$renderresponse->questionsamplesolutiontext
193194
);
194195
}
195196
foreach ($renderresponse->questionassets as $name => $file) {
196197
$renderresponse->questionrender = str_replace($name, "{$baseurl}/plots/{$file}", $renderresponse->questionrender);
197198
$renderresponse->questionsamplesolutiontext = str_replace(
198199
$name,
199-
"{$baseurl}/plots/{$file}", $renderresponse->questionsamplesolutiontext
200+
"{$baseurl}/plots/{$file}",
201+
$renderresponse->questionsamplesolutiontext
200202
);
201203
foreach ($renderresponse->questioninputs as $input) {
202204
$input->samplesolutionrender = str_replace($name, "{$baseurl}/plots/{$file}", $input->samplesolutionrender);

api/docker/docker-compose.dev.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
version: "4.0"
22
services:
33
maxima:
4-
image: mathinstitut/goemaxima:2026010500-latest
4+
image: mathinstitut/goemaxima:2026042200-latest
55
tmpfs:
66
- "/tmp"
77
restart: unless-stopped

api/docker/docker-compose.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
version: "4.0"
22
services:
33
maxima:
4-
image: mathinstitut/goemaxima:2026010500-latest
4+
image: mathinstitut/goemaxima:2026042200-latest
55
tmpfs:
66
- "/tmp"
77
restart: unless-stopped

doc/en/Developer/Development_history.md

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
For current and future plans, see [Development track](Development_track.md) and [Future plans](Future_plans.md).
44

5-
## Version 4.12.0
5+
## Version 4.12.0 (2026042200)
66

77
Released April 2026.
88

@@ -39,10 +39,10 @@ __Changes and new features.__
3939
8. STACK library now imports whole quizzes - look for a `.json` file in the library.
4040
9. Add in support for [local stack libraries](../STACK_question_admin/Library/index.md) of questions in the `stack/sitelibrary` directory within the Moodle data directory.
4141
10. Change the *Generic feedback* defaults to use the common language strings. __Users upgrading their site in place will need to change the settings in the plugin setting page to the new default.__
42-
11.The Generic feedback and decimals options have been removed from questions in the question library. When importing library questions, the current site defaults will be used.
42+
11. The Generic feedback and decimals options have been removed from questions in the question library. When importing library questions, the current site defaults will be used.
4343
12. Remove the German language packs locally (#1710). Note, the API now includes language packs as a config option when you build the docker container.
4444

45-
## Version 4.11.1
45+
## Version 4.11.1 (2026010500)
4646

4747
Released January 2026.
4848

@@ -53,7 +53,7 @@ This incremental release contains some minor, but useful, bug fixes.
5353

5454
This release contains the [HELM materials](../STACK_question_admin/Library/HELM.md) as part of the STACK question library. HELM question banks are managed using [Gitsync](https://github.com/maths/moodle-qbank_gitsync).
5555

56-
## Version 4.11.0
56+
## Version 4.11.0 (2025102100)
5757

5858
Released October 2025.
5959

@@ -67,21 +67,21 @@ Improvements in documentation and minor bug fixes.
6767
6. Add in new flag `tex_plain_atoms` to control the display of atoms with [subscripts](../CAS/Subscripts.md). Remove testing for changes on Maxima before 5.40.0.
6868
7. Add in the `Introductory-Mathematics` questions to the STACK library. The library now has over 1600 STACK questions.
6969

70-
## Version 4.10.0
70+
## Version 4.10.0 (2025073100)
7171

7272
Released July 2025.
7373

7474
1. Add in a `style` attribute to the JSXGraph block to load local CSS styles.
7575
2. Add in the `json` input type. This better supports JSON for JSXGraph, and better debugging in the existing GeoGebra and Parsons blocks.
7676
3. Allow the bulk tester to add `[[todo]]` blocks to the question descriptions with the `addtags` option.
7777

78-
## Version 4.9.1
78+
## Version 4.9.1 (2025040100)
7979

8080
Released April 2025.
8181

8282
Remove special characters in filenames (which break the .zip download).
8383

84-
## Version 4.9.0
84+
## Version 4.9.0 (2025033100)
8585

8686
Released March 2025.
8787

@@ -96,25 +96,25 @@ Released March 2025.
9696
9. Remove support for the `win` platform (which hasn't been tested for many years). See [issue #1379](https://github.com/maths/moodle-qtype_stack/issues/1379).
9797
10. Add in the [adapt block](../Authoring/Question_blocks/Dynamic_blocks.md) and associated dynamic blocks.
9898

99-
## Version 4.8.5
99+
## Version 4.8.5 (2025030600)
100100

101101
Released March 2025.
102102

103103
Bring forward bug fixes to include in an official release.
104104

105-
## Version 4.8.3
105+
## Version 4.8.3 (2025012100)
106106

107107
Released January 2025.
108108

109109
Bring forward bug fixes to include in an official release. Update JSXGraph.
110110

111-
## Version 4.8.1
111+
## Version 4.8.1 (2024111900)
112112

113113
Released November 2024.
114114

115115
Rename directories and files in the STACK library to avoid problems with the auto-generated .zip file.
116116

117-
## Version 4.8.0
117+
## Version 4.8.0 (2024111500)
118118

119119
Released November 2024.
120120

@@ -129,8 +129,7 @@ Released November 2024.
129129
9. Improve Parsons blocks by (i) hashing for keys, and (ii) Add ability to log history of an attempt (for research).
130130
10. Add in a new [answer test based on a validator function](../Authoring/Answer_Tests/Other.md).
131131

132-
133-
## Version 4.7.0
132+
## Version 4.7.0 (2024072400)
134133

135134
Released July 2024.
136135

@@ -141,7 +140,7 @@ Released July 2024.
141140
5. Add in the "Deploy from n to m" feature to systematically deploy seeds.
142141
6. Restyle response analysis page.
143142

144-
## Version 4.6.0
143+
## Version 4.6.0 (2024060300)
145144

146145
Released June 2024.
147146

@@ -157,12 +156,12 @@ This version will require moodle 4.0+. Moodle 3.x is no longer supported.
157156
8. Add in support for drag and drop matching problems, as [grid](../Specialist_tools/Drag_and_drop/Grid.md) and [grouping](../Specialist_tools/Drag_and_drop/Grouping.md).
158157

159158

160-
## Version 4.5.0-hf2
159+
## Version 4.5.0-hf2 (2024012900)
161160

162161
Fix critical bug in Javascript.
163162
Released January 2024.
164163

165-
## Version 4.5.0
164+
## Version 4.5.0 (2023121100)
166165

167166
Released December 2023.
168167

doc/en/Installation/STACK_versions.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ when releasing.
99

1010
Release | Version number | Supported Maxima versions
1111
--------|----------------|--------------------------
12+
4.12.0 | 2026042200 | 5.40.0, 5.41.0, 5.42.0, 5.42.1, 5.42.2, 5.43.0, 5.43.1, 5.43.2, 5.44.0, 5.46.0, 5.47.0
1213
4.11.1 | 2026010500 | 5.40.0, 5.41.0, 5.42.0, 5.42.1, 5.42.2, 5.43.0, 5.43.1, 5.43.2, 5.44.0, 5.46.0, 5.47.0
1314
4.11.0 | 2025102100 | 5.40.0, 5.41.0, 5.42.0, 5.42.1, 5.42.2, 5.43.0, 5.43.1, 5.43.2, 5.44.0, 5.46.0, 5.47.0
1415
4.10.0 | 2025073100 | 5.40.0, 5.41.0, 5.42.0, 5.42.1, 5.42.2, 5.43.0, 5.43.1, 5.43.2, 5.44.0, 5.46.0, 5.47.0

0 commit comments

Comments
 (0)