Skip to content

Issue #36: Updated install.xml using the XMLDB Editor#37

Open
niko-hoogeveen wants to merge 1 commit intovfremaux:masterfrom
niko-hoogeveen:MOODLE_405_STABLE-issue36
Open

Issue #36: Updated install.xml using the XMLDB Editor#37
niko-hoogeveen wants to merge 1 commit intovfremaux:masterfrom
niko-hoogeveen:MOODLE_405_STABLE-issue36

Conversation

@niko-hoogeveen
Copy link

Closes Issue #36.

This MR updates the install.xml to comply with Moodle's latest standards for install.xml files in plugins. I did this update using the XMLDB editor to ensure proper formatting.

See here for the related tracker: https://moodle.atlassian.net/browse/MDL-85666

Environment Details

  • PHP 8.1
  • MOODLE 4.5
  • Postgres 16.0

Branch that has the issue:

  • MOODLE_405_STABLE

How to recreate the issue?

  1. Deploy a local Moodle 4.5 instance (with this plugin installed on branch MOODLE_405_STABLE)
  2. Initialize PHPUnit testing environment
  3. Run vendor/bin/phpunit lib/tests/db/plugin_checks.php

Actual Output:

Moodle 4.5.5+ (Build: 20250718), c97987e9ed119e45d78cd022405864445b96d7e4
Php: 8.1.28, pgsql: 16.0 (Debian 16.0-1.pgdg120+1), OS: Linux 6.8.0-64-generic x86_64
PHPUnit 9.6.18 by Sebastian Bergmann and contributors.

......................................F........................  63 / 450 ( 14%)
............................................................... 126 / 450 ( 28%)
............................................................... 189 / 450 ( 42%)
............................................................... 252 / 450 ( 56%)
............................................................... 315 / 450 ( 70%)
............................................................... 378 / 450 ( 84%)
............................................................... 441 / 450 ( 98%)
.........                                                       450 / 450 (100%)

Time: 00:11.290, Memory: 46.00 MB

There was 1 failure:

1) core\db\plugin_checks_test::test_db_install_file with data set "mod_flashcard" ('mod_flashcard', 'mod', 'flashcard', '/var/www/moodle405/mod/flashcard')
XMLDB structure does not match the install.xml file in /var/www/moodle405/mod/flashcard/db/install.xml
Failed asserting that two DOM documents are equal.
--- Expected
+++ Actual
@@ @@
   <TABLES>
     <TABLE COMMENT="flashcard table retrofitted from MySQL" NAME="flashcard">
       <FIELDS>
-        <FIELD LENGTH="10" NAME="id" NOTNULL="true" SEQUENCE="true" TYPE="int" UNSIGNED="true"/>
-        <FIELD DEFAULT="0" LENGTH="10" NAME="course" NOTNULL="true" SEQUENCE="false" TYPE="int" UNSIGNED="true"/>
+        <FIELD LENGTH="10" NAME="id" NOTNULL="true" SEQUENCE="true" TYPE="int"/>
+        <FIELD DEFAULT="0" LENGTH="10" NAME="course" NOTNULL="true" SEQUENCE="false" TYPE="int"/>
         <FIELD LENGTH="255" NAME="name" NOTNULL="false" SEQUENCE="false" TYPE="char"/>
-        <FIELD LENGTH="small" NAME="intro" NOTNULL="true" SEQUENCE="false" TYPE="text"/>
-        <FIELD DEFAULT="0" LENGTH="4" NAME="introformat" NOTNULL="true" SEQUENCE="false" TYPE="int" UNSIGNED="true"/>
-        <FIELD DEFAULT="0" LENGTH="10" NAME="timemodified" NOTNULL="true" SEQUENCE="false" TYPE="int" UNSIGNED="true"/>
-        <FIELD COMMENT="availability starts" LENGTH="11" NAME="starttime" NOTNULL="false" SEQUENCE="false" TYPE="int" UNSIGNED="true"/>
-        <FIELD COMMENT="availability ends" LENGTH="11" NAME="endtime" NOTNULL="false" SEQUENCE="false" TYPE="int" UNSIGNED="true"/>
-        <FIELD COMMENT="Default comment for the field, please edit me" DEFAULT="3" LENGTH="4" NAME="models" NOTNULL="true" SEQUENCE="false" TYPE="int" UNSIGNED="true"/>
-        <FIELD DEFAULT="0" LENGTH="11" NAME="questionid" NOTNULL="true" SEQUENCE="false" TYPE="int" UNSIGNED="false"/>
-        <FIELD COMMENT="if true downgrades automatically cards for lazy users on cron" DEFAULT="1" LENGTH="1" NAME="autodowngrade" NOTNULL="true" SEQUENCE="false" TYPE="int" UNSIGNED="true"/>
-        <FIELD COMMENT="number of decks" DEFAULT="3" LENGTH="3" NAME="decks" NOTNULL="true" SEQUENCE="false" TYPE="int" UNSIGNED="true"/>
-        <FIELD COMMENT="time for unseen cards downgrade to deck1" DEFAULT="96" LENGTH="11" NAME="deck2_release" NOTNULL="true" SEQUENCE="false" TYPE="int" UNSIGNED="true"/>
-        <FIELD COMMENT="time for getting the card be downgraded" DEFAULT="96" LENGTH="11" NAME="deck3_release" NOTNULL="true" SEQUENCE="false" TYPE="int" UNSIGNED="true"/>
-        <FIELD COMMENT="Default comment for the field, please edit me" DEFAULT="96" LENGTH="10" NAME="deck4_release" NOTNULL="true" SEQUENCE="false" TYPE="int" UNSIGNED="true"/>
-        <FIELD COMMENT="triggers the need of checking cards" DEFAULT="48" LENGTH="11" NAME="deck1_delay" NOTNULL="true" SEQUENCE="false" TYPE="int" UNSIGNED="true"/>
-        <FIELD COMMENT="Triggers the need of checking cards" DEFAULT="96" LENGTH="11" NAME="deck2_delay" NOTNULL="true" SEQUENCE="false" TYPE="int" UNSIGNED="true"/>
-        <FIELD COMMENT="Default comment for the field, please edit me" DEFAULT="168" LENGTH="11" NAME="deck3_delay" NOTNULL="true" SEQUENCE="false" TYPE="int" UNSIGNED="true"/>
-        <FIELD COMMENT="Default comment for the field, please edit me" DEFAULT="376" LENGTH="10" NAME="deck4_delay" NOTNULL="true" SEQUENCE="false" TYPE="int" UNSIGNED="true"/>
-        <FIELD COMMENT="Default comment for the field, please edit me" DEFAULT="0" LENGTH="1" NAME="questionsmediatype" NOTNULL="true" SEQUENCE="false" TYPE="int" UNSIGNED="true"/>
-        <FIELD COMMENT="Default comment for the field, please edit me" DEFAULT="0" LENGTH="1" NAME="answersmediatype" NOTNULL="true" SEQUENCE="false" TYPE="int" UNSIGNED="true"/>
-        <FIELD COMMENT="Default comment for the field, please edit me" DEFAULT="0" LENGTH="1" NAME="audiostart" NOTNULL="true" SEQUENCE="false" TYPE="int" UNSIGNED="true"/>
-        <FIELD COMMENT="Default comment for the field, please edit me" DEFAULT="0" LENGTH="1" NAME="flipdeck" NOTNULL="false" SEQUENCE="false" TYPE="int" UNSIGNED="true"/>
-        <FIELD COMMENT="Default comment for the field, please edit me" DEFAULT="0" LENGTH="10" NAME="custombackfileid" NOTNULL="false" SEQUENCE="false" TYPE="int" UNSIGNED="true"/>
-        <FIELD COMMENT="Default comment for the field, please edit me" DEFAULT="0" LENGTH="10" NAME="customfrontfileid" NOTNULL="false" SEQUENCE="false" TYPE="int" UNSIGNED="true"/>
-        <FIELD COMMENT="Default comment for the field, please edit me" DEFAULT="0" LENGTH="10" NAME="customemptyfileid" NOTNULL="false" SEQUENCE="false" TYPE="int" UNSIGNED="true"/>
-        <FIELD COMMENT="Default comment for the field, please edit me" DEFAULT="0" LENGTH="10" NAME="customreviewfileid" NOTNULL="false" SEQUENCE="false" TYPE="int" UNSIGNED="true"/>
-        <FIELD COMMENT="Default comment for the field, please edit me" DEFAULT="0" LENGTH="10" NAME="customreviewedfileid" NOTNULL="false" SEQUENCE="false" TYPE="int" UNSIGNED="true"/>
-        <FIELD COMMENT="Default comment for the field, please edit me" DEFAULT="0" LENGTH="10" NAME="customreviewemptyfileid" NOTNULL="false" SEQUENCE="false" TYPE="int" UNSIGNED="true"/>
-        <FIELD COMMENT="Additional css" LENGTH="small" NAME="extracss" NOTNULL="false" SEQUENCE="false" TYPE="text"/>
-        <FIELD COMMENT="Default comment for the field, please edit me" DEFAULT="0" LENGTH="10" NAME="completionallviewed" NOTNULL="false" SEQUENCE="false" TYPE="int" UNSIGNED="true"/>
-        <FIELD COMMENT="Default comment for the field, please edit me" DEFAULT="0" LENGTH="10" NAME="completionallgood" NOTNULL="false" SEQUENCE="false" TYPE="int" UNSIGNED="true"/>
-        <FIELD COMMENT="Default comment for the field, please edit me" DEFAULT="0" LENGTH="1" NAME="remindusers" NOTNULL="false" SEQUENCE="false" TYPE="int" UNSIGNED="true"/>
+        <FIELD NAME="intro" NOTNULL="true" SEQUENCE="false" TYPE="text"/>
+        <FIELD DEFAULT="0" LENGTH="4" NAME="introformat" NOTNULL="true" SEQUENCE="false" TYPE="int"/>
+        <FIELD DEFAULT="0" LENGTH="10" NAME="timemodified" NOTNULL="true" SEQUENCE="false" TYPE="int"/>
+        <FIELD COMMENT="availability starts" LENGTH="11" NAME="starttime" NOTNULL="false" SEQUENCE="false" TYPE="int"/>
+        <FIELD COMMENT="availability ends" LENGTH="11" NAME="endtime" NOTNULL="false" SEQUENCE="false" TYPE="int"/>
+        <FIELD COMMENT="Default comment for the field, please edit me" DEFAULT="3" LENGTH="4" NAME="models" NOTNULL="true" SEQUENCE="false" TYPE="int"/>
+        <FIELD DEFAULT="0" LENGTH="11" NAME="questionid" NOTNULL="true" SEQUENCE="false" TYPE="int"/>
+        <FIELD COMMENT="if true downgrades automatically cards for lazy users on cron" DEFAULT="1" LENGTH="1" NAME="autodowngrade" NOTNULL="true" SEQUENCE="false" TYPE="int"/>
+        <FIELD COMMENT="number of decks" DEFAULT="3" LENGTH="3" NAME="decks" NOTNULL="true" SEQUENCE="false" TYPE="int"/>
+        <FIELD COMMENT="time for unseen cards downgrade to deck1" DEFAULT="96" LENGTH="11" NAME="deck2_release" NOTNULL="true" SEQUENCE="false" TYPE="int"/>
+        <FIELD COMMENT="time for getting the card be downgraded" DEFAULT="96" LENGTH="11" NAME="deck3_release" NOTNULL="true" SEQUENCE="false" TYPE="int"/>
+        <FIELD COMMENT="Default comment for the field, please edit me" DEFAULT="96" LENGTH="10" NAME="deck4_release" NOTNULL="true" SEQUENCE="false" TYPE="int"/>
+        <FIELD COMMENT="triggers the need of checking cards" DEFAULT="48" LENGTH="11" NAME="deck1_delay" NOTNULL="true" SEQUENCE="false" TYPE="int"/>
+        <FIELD COMMENT="Triggers the need of checking cards" DEFAULT="96" LENGTH="11" NAME="deck2_delay" NOTNULL="true" SEQUENCE="false" TYPE="int"/>
+        <FIELD COMMENT="Default comment for the field, please edit me" DEFAULT="168" LENGTH="11" NAME="deck3_delay" NOTNULL="true" SEQUENCE="false" TYPE="int"/>
+        <FIELD COMMENT="Default comment for the field, please edit me" DEFAULT="376" LENGTH="10" NAME="deck4_delay" NOTNULL="true" SEQUENCE="false" TYPE="int"/>
+        <FIELD COMMENT="Default comment for the field, please edit me" DEFAULT="0" LENGTH="1" NAME="questionsmediatype" NOTNULL="true" SEQUENCE="false" TYPE="int"/>
+        <FIELD COMMENT="Default comment for the field, please edit me" DEFAULT="0" LENGTH="1" NAME="answersmediatype" NOTNULL="true" SEQUENCE="false" TYPE="int"/>
+        <FIELD COMMENT="Default comment for the field, please edit me" DEFAULT="0" LENGTH="1" NAME="audiostart" NOTNULL="true" SEQUENCE="false" TYPE="int"/>
+        <FIELD COMMENT="Default comment for the field, please edit me" DEFAULT="0" LENGTH="1" NAME="flipdeck" NOTNULL="false" SEQUENCE="false" TYPE="int"/>
+        <FIELD COMMENT="Default comment for the field, please edit me" DEFAULT="0" LENGTH="10" NAME="custombackfileid" NOTNULL="false" SEQUENCE="false" TYPE="int"/>
+        <FIELD COMMENT="Default comment for the field, please edit me" DEFAULT="0" LENGTH="10" NAME="customfrontfileid" NOTNULL="false" SEQUENCE="false" TYPE="int"/>
+        <FIELD COMMENT="Default comment for the field, please edit me" DEFAULT="0" LENGTH="10" NAME="customemptyfileid" NOTNULL="false" SEQUENCE="false" TYPE="int"/>
+        <FIELD COMMENT="Default comment for the field, please edit me" DEFAULT="0" LENGTH="10" NAME="customreviewfileid" NOTNULL="false" SEQUENCE="false" TYPE="int"/>
+        <FIELD COMMENT="Default comment for the field, please edit me" DEFAULT="0" LENGTH="10" NAME="customreviewedfileid" NOTNULL="false" SEQUENCE="false" TYPE="int"/>
+        <FIELD COMMENT="Default comment for the field, please edit me" DEFAULT="0" LENGTH="10" NAME="customreviewemptyfileid" NOTNULL="false" SEQUENCE="false" TYPE="int"/>
+        <FIELD COMMENT="Additional css" NAME="extracss" NOTNULL="false" SEQUENCE="false" TYPE="text"/>
+        <FIELD COMMENT="Default comment for the field, please edit me" DEFAULT="0" LENGTH="10" NAME="completionallviewed" NOTNULL="false" SEQUENCE="false" TYPE="int"/>
+        <FIELD COMMENT="Default comment for the field, please edit me" DEFAULT="0" LENGTH="10" NAME="completionallgood" NOTNULL="false" SEQUENCE="false" TYPE="int"/>
+        <FIELD COMMENT="Default comment for the field, please edit me" DEFAULT="0" LENGTH="1" NAME="remindusers" NOTNULL="false" SEQUENCE="false" TYPE="int"/>
       </FIELDS>
       <KEYS>
         <KEY COMMENT="Primary key for flashcard" FIELDS="id" NAME="primary" TYPE="primary"/>
@@ @@
     </TABLE>
     <TABLE COMMENT="A table to distribute cards into decks" NAME="flashcard_card">
       <FIELDS>
-        <FIELD COMMENT="id of the table, please edit me" LENGTH="10" NAME="id" NOTNULL="true" SEQUENCE="true" TYPE="int" UNSIGNED="true"/>
-        <FIELD COMMENT="the flashcard instance" LENGTH="11" NAME="flashcardid" NOTNULL="true" SEQUENCE="false" TYPE="int" UNSIGNED="true"/>
-        <FIELD COMMENT="the owner" LENGTH="11" NAME="userid" NOTNULL="false" SEQUENCE="false" TYPE="int" UNSIGNED="true"/>
-        <FIELD COMMENT="the question" LENGTH="11" NAME="entryid" NOTNULL="true" SEQUENCE="false" TYPE="int" UNSIGNED="true"/>
-        <FIELD COMMENT="one of the decks in the flashcard" LENGTH="11" NAME="deck" NOTNULL="true" SEQUENCE="false" TYPE="int" UNSIGNED="true"/>
-        <FIELD COMMENT="last time the card was queried" DEFAULT="0" LENGTH="11" NAME="lastaccessed" NOTNULL="false" SEQUENCE="false" TYPE="int" UNSIGNED="true"/>
-        <FIELD COMMENT="Default comment for the field, please edit me" DEFAULT="0" LENGTH="11" NAME="accesscount" NOTNULL="true" SEQUENCE="false" TYPE="int" UNSIGNED="true"/>
+        <FIELD COMMENT="id of the table, please edit me" LENGTH="10" NAME="id" NOTNULL="true" SEQUENCE="true" TYPE="int"/>
+        <FIELD COMMENT="the flashcard instance" LENGTH="11" NAME="flashcardid" NOTNULL="true" SEQUENCE="false" TYPE="int"/>
+        <FIELD COMMENT="the owner" LENGTH="11" NAME="userid" NOTNULL="false" SEQUENCE="false" TYPE="int"/>
+        <FIELD COMMENT="the question" LENGTH="11" NAME="entryid" NOTNULL="true" SEQUENCE="false" TYPE="int"/>
+        <FIELD COMMENT="one of the decks in the flashcard" LENGTH="11" NAME="deck" NOTNULL="true" SEQUENCE="false" TYPE="int"/>
+        <FIELD COMMENT="last time the card was queried" DEFAULT="0" LENGTH="11" NAME="lastaccessed" NOTNULL="false" SEQUENCE="false" TYPE="int"/>
+        <FIELD COMMENT="Default comment for the field, please edit me" DEFAULT="0" LENGTH="11" NAME="accesscount" NOTNULL="true" SEQUENCE="false" TYPE="int"/>
       </FIELDS>
       <KEYS>
         <KEY COMMENT="primary key of the table" FIELDS="id" NAME="primary" TYPE="primary"/>
@@ @@
     </TABLE>
     <TABLE COMMENT="holds questions/responses" NAME="flashcard_deckdata">
       <FIELDS>
-        <FIELD COMMENT="id of the table, please edit me" LENGTH="10" NAME="id" NOTNULL="true" SEQUENCE="true" TYPE="int" UNSIGNED="true"/>
-        <FIELD COMMENT="Default comment for the field, please edit me" DEFAULT="0" LENGTH="11" NAME="flashcardid" NOTNULL="true" SEQUENCE="false" TYPE="int" UNSIGNED="true"/>
-        <FIELD COMMENT="Default comment for the field, please edit me" LENGTH="small" NAME="questiontext" NOTNULL="false" SEQUENCE="false" TYPE="text"/>
-        <FIELD COMMENT="Default comment for the field, please edit me" LENGTH="small" NAME="answertext" NOTNULL="false" SEQUENCE="false" TYPE="text"/>
+        <FIELD COMMENT="id of the table, please edit me" LENGTH="10" NAME="id" NOTNULL="true" SEQUENCE="true" TYPE="int"/>
+        <FIELD COMMENT="Default comment for the field, please edit me" DEFAULT="0" LENGTH="11" NAME="flashcardid" NOTNULL="true" SEQUENCE="false" TYPE="int"/>
+        <FIELD COMMENT="Default comment for the field, please edit me" NAME="questiontext" NOTNULL="false" SEQUENCE="false" TYPE="text"/>
+        <FIELD COMMENT="Default comment for the field, please edit me" NAME="answertext" NOTNULL="false" SEQUENCE="false" TYPE="text"/>
       </FIELDS>
       <KEYS>
         <KEY COMMENT="primary key of the table, please edit me" FIELDS="id" NAME="primary" TYPE="primary"/>
@@ @@
     </TABLE>
     <TABLE COMMENT="holds deck state for each user" NAME="flashcard_userdeck_state">
       <FIELDS>
-        <FIELD COMMENT="primary key" LENGTH="10" NAME="id" NOTNULL="true" SEQUENCE="true" TYPE="int" UNSIGNED="true"/>
-        <FIELD COMMENT="the flashcard" DEFAULT="0" LENGTH="11" NAME="flashcardid" NOTNULL="true" SEQUENCE="false" TYPE="int" UNSIGNED="true"/>
-        <FIELD COMMENT="User id" DEFAULT="0" LENGTH="11" NAME="userid" NOTNULL="true" SEQUENCE="false" TYPE="int" UNSIGNED="true"/>
+        <FIELD COMMENT="primary key" LENGTH="10" NAME="id" NOTNULL="true" SEQUENCE="true" TYPE="int"/>
+        <FIELD COMMENT="the flashcard" DEFAULT="0" LENGTH="11" NAME="flashcardid" NOTNULL="true" SEQUENCE="false" TYPE="int"/>
+        <FIELD COMMENT="User id" DEFAULT="0" LENGTH="11" NAME="userid" NOTNULL="true" SEQUENCE="false" TYPE="int"/>
         <FIELD COMMENT="Deck index" LENGTH="4" NAME="deck" NOTNULL="false" SEQUENCE="false" TYPE="int"/>
         <FIELD COMMENT="States if notified" LENGTH="4" NAME="state" NOTNULL="false" SEQUENCE="false" TYPE="int"/>
       </FIELDS>

/var/www/moodle405/lib/tests/db/plugin_checks_test.php:58
/var/www/moodle405/lib/phpunit/classes/basic_testcase.php:64

FAILURES!
Tests: 450, Assertions: 87, Failures: 1.

Expected output: No errors.

Moodle 4.5.5+ (Build: 20250718), c97987e9ed119e45d78cd022405864445b96d7e4
Php: 8.1.28, pgsql: 16.0 (Debian 16.0-1.pgdg120+1), OS: Linux 6.8.0-64-generic x86_64
PHPUnit 9.6.18 by Sebastian Bergmann and contributors.

...............................................................  63 / 449 ( 14%)
............................................................... 126 / 449 ( 28%)
............................................................... 189 / 449 ( 42%)
............................................................... 252 / 449 ( 56%)
............................................................... 315 / 449 ( 70%)
............................................................... 378 / 449 ( 84%)
............................................................... 441 / 449 ( 98%)
........                                                        449 / 449 (100%)

Time: 00:11.483, Memory: 68.50 MB

OK (449 tests, 86 assertions)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant