Main Page: Difference between revisions

From MediaWiki-1.39
Jump to navigation Jump to search
(That’s the entire page, stitched together and formatted for the client. No guessing, no duplicates—just one cohesive document you can hand over today.)
(Formatting courtesy of ChatGPT 4o)
Line 1: Line 1:
  <strong>MediaWiki has been installed.</strong>
<strong>MediaWiki has been installed.</strong>


  Consult the [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents User’s Guide] for information on
Consult the [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents User's Guide] for information on using the wiki software.
  using the wiki software.


  == Getting started ==
== Getting started ==
  * [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]
  * [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]
  * [https://lists.wikimedia.org/postorius/lists/mediawiki-announce.lists.wikimedia.org/ MediaWiki release mailing
* [https://lists.wikimedia.org/postorius/lists/mediawiki-announce.lists.wikimedia.org/ MediaWiki release mailing list]
  list]
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]
  * [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Learn how to combat spam on your wiki]
  your language]
  * [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Learn how to combat spam on your
  wiki]


  == Import CustomQueryPage ==
== Import CustomQueryPage ==
  * [https://mw.eckford.ca/downloads/CustomQueryPage-mw1359.tar.gz CustomQueryPage for mw1359]
* [https://mw.eckford.ca/downloads/CustomQueryPage-mw1359.tar.gz CustomQueryPage for mw1359]


  === Installing CustomQueryPage ===
=== Installing CustomQueryPage ===
  # Download the bundle: <code>wget https://mw.eckford.ca/downloads/CustomQueryPage-mw1359.tar.gz</code>
* Download the bundle: <code>wget https://mw.eckford.ca/downloads/CustomQueryPage-mw1359.tar.gz</code>
  # Extract into your extensions folder: <code>tar -xzf CustomQueryPage-mw1359.tar.gz -C /srv/mediawiki/
* Extract it into your extensions folder:
  extensions</code>
** <code>tar -xzf CustomQueryPage-mw1359.tar.gz -C /srv/mediawiki/extensions</code>
  # Edit <code>LocalSettings.php</code> and add <code>wfLoadExtension( 'CustomQueryPage' );</code>
* Edit <code>LocalSettings.php</code> and add <code>wfLoadExtension( 'CustomQueryPage' );</code>
  # Run <code>php maintenance/update.php --quick</code>
* Run <code>php maintenance/update.php --quick</code>.
  # Visit <code>Special:CustomQuerySettings</code>, set the ROUTINE tag (e.g. <code>ROUTINE_4.110</code>), and
* Visit <code>Special:CustomQuerySettings</code>, set the ROUTINE tag (e.g., <code>ROUTINE_4.110</code>), and confirm <code>Special:ApprovedManuals</code>.
  confirm <code>Special:ApprovedManuals</code>.


  = Where We Stand =
  * '''CustomQueryPage''' now includes the simplified clone path:
  ** ''Special:CustomQuerySettings'' copies the ''mw_tag_pages'' rows from <code>ROUTINE_4.110</code> to
  <code>ROUTINE_4.111</code>, clones the ''mw_tags'' row, and immediately points the listing at the new tag. The
  success banner is fixed and README documents the “Quick clone workflow.”
  * On sh1re/sh0re we still need to finish the MediaWiki patch that drops <code>mw_logging.log_user*</code>, so we
  seeded <code>mw_customquerypage_settings</code> manually to keep the UI working.


  == Why mw_tags felt “bypassed” ==
= Where We Stand =
  * On dev we inserted the active tag row directly into <code>mw_customquerypage_settings</code>; the clone form
  still expects the standard <code>mw_tags</code>/<code>mw_tag_pages</code> tables.
  * If those tables contain the 4.110 data (they should after your import), the UI reuses them immediately.
  * Nothing special is required in <code>LocalSettings.php</code>; our extension simply uses the core tables via
  the MediaWiki load balancer.


  == Next steps on mw.eckfordc (MW 1.39) ==
* '''CustomQueryPage''' now ships with a simplified clone path:
  # Copy <code>extensions-mw1359/CustomQueryPage</code> onto the host.
** ''Special:CustomQuerySettings'' copies the ''mw_tag_pages'' rows from ''ROUTINE_4.110'' to ''ROUTINE_4.111'',
  # Ensure <code>mw_tags</code>/<code>mw_tag_pages</code> include at least one ROUTINE (for example, import
** clones the ''mw_tags'' row,
  <code>ROUTINE_4.110</code>).
** and immediately points the listing at the new tag.
  # Visit <code>Special:CustomQuerySettings</code>, run the clone form end to end, and confirm the changed
** Success banner fixed; README documents the exact steps (see the new ''"Quick clone workflow"'').
  listing.
* On sh1re/sh0re we never finished the MediaWiki core patch that deletes ''mw_logging.log_user*''.
  # Once Lisa confirms the UI workflow, document the promotion steps on her admin page.
** We seeded ''mw_customquerypage_settings'' manually instead so Lisa could keep using the UI.


  = Recap (Last Week → Now) =
== Why mw_tags felt “bypassed” during export ==
  * Finished the MW 1.35.9 build with the simplified clone workflow (Set active tag + Clone ROUTINE_x.xxx →
  ROUTINE_y.yyy).
  * Deployed the same code to eckfordc (1.39) and sh1re/sh0re (1.35.9); all installs now have ''mw_tags'',
  ''mw_tag_pages'', and <code>mw_customquerypage_settings</code>.
  * On sh1re/sh0re, <code>update.php</code> still balks at dropping <code>mw_logging.log_user*</code>; we seeded
  the settings row manually until the patch runs cleanly.


  == Where we landed ==
* On dev we inserted the active tag row directly into ''mw_customquerypage_settings''; the clone form still expects
   * No human DB access – the release script populates ``mw_tags``/``mw_tag_pages``, and Lisa works entirely
   the regular ''mw_tags'' / ''mw_tag_pages'' tables.
  through the Special pages.
** If those tables contain the ''4.110'' data (they should after your MySQL import), the UI will re-use them.
  * ''Special:CustomQuerySettings'' + ''Special:ApprovedManuals'' both confirmed for <code>ROUTINE_4.111</code>;
** If the environment you tested lacked ''mw_tags'', we need to confirm the table exists and is populated before cloning.
   README documents the “Quick clone workflow.
* There’s nothing special to reference in ''LocalSettings.php''; MediaWiki core creates ''mw_tags'' / ''mw_tag_pages''
  * Nothing extra is required in <code>LocalSettings.php</code>; the extension uses the standard tables via
   automatically.
  MediaWiki services.
** Our extension simply reads/writes them via the load balancer.


  == Next step: JSON/API practice ==
== Next steps if you want to exercise it on mw.eckford.ca ==
  * Since most releases are re-tags, the clone form covers the common path.
  * For the rare “new” ROUTINE payload, define a JSON schema (page_id, rev_id, deployment comment, wikitext, etc.)
  and decide whether you want a REST endpoint, an Action API module, or a CLI importer so everything stays inside
  MediaWiki.


  = Routine Workflow (ship today) =
# Copy ''extensions-mw1359/CustomQueryPage'' to the MW 1.39 box.
# Ensure ''mw_tags'' / ''mw_tag_pages'' have at least one ROUTINE (e.g., import ''ROUTINE_4.110'').
# Visit ''Special:CustomQuerySettings'', confirm the clone form works end-to-end:
#* new ''mw_tags'' row
#* ApprovedManuals listing updated
# Once Lisa confirms the UI covers her release work (set tag + clone), we can document the progressive-release workflow on her admin page.


  == 1. Seed the ROUTINE data ==
If that 1.39 run reveals that ''mw_tags'' truly doesn’t exist in that environment, we’ll know we must create it
  * Import the raw rows (''mw_tags'' + ''mw_tag_pages'') via the export/import script.
(or point the extension at your custom release table).
  * After import, run <code>php maintenance/update.php --quick</code> if <code>mw_customquerypage_settings</code>
  does not exist yet.


  == 2. Use the Special page ==
Otherwise, the existing code already ties directly into ''mw_tags'', so maintaining progressive releases is just a matter of Lisa cloning each ROUTINE and then toggling the Approved Manuals view as you outlined.
  * Log in as a sysop and open [[Special:CustomQuerySettings]].
  * Top form (Set active tag): type the ROUTINE you want live (for example, <code>ROUTINE_4.111</code>) and click
  '''Save tag''' if the rows already exist.
  * Clone form: source <code>ROUTINE_4.110</code>, target <code>ROUTINE_4.111</code>, optional note. Submit once
  to duplicate the tag entirely inside MediaWiki (no DB work).


  == 3. Verify ==
= Recap (Last Week → Now) =
  * Visit [[Special:ApprovedManuals]]; it now lists the pages tagged with <code>ROUTINE_4.111</code>.
  * Lisa reviews/publishes directly from there—no database access required.


  (Once the data is in place, you either run the import script or use the clone form. When a JSON/API importer is
* Finished the MW 1.35.9 ''CustomQueryPage'' build with the simplified clone workflow so Lisa can re-tag approved releases inside MediaWiki.
  ready, it replaces step 1; steps 2 and 3 stay the same.)
** ''Special:CustomQuerySettings'' now handles both:
*** ''Set active tag''
*** ''Clone ROUTINE_x.xxx → ROUTINE_y.yyy''
* Deployed the same bits to ''eckfordc'' (MW 1.39) and ''sh1re/sh0re''.
** The tables you saw (''mw_tags'' / ''mw_tag_pages'' plus ''mw_customquerypage_settings'') match what the extension uses.
* ''update.php'' keeps screaming about dropping legacy logging indexes.
** On dev we skipped the patch and seeded the settings table manually.
** Production installs just need to run update once so ''mw_customquerypage_settings'' exists.


  == Maintenance helper (eckfordc, MW 1.39) ==
== Where we landed ==
  # Flush Opcache once so PHP rereads the helper:
 
  #::<pre>if ( function_exists( 'opcache_reset' ) ) {
* DB access for humans stays off the table:
      opcache_reset();
** whoever preps the ROUTINE export runs the existing script/import
  }</pre>
** Lisa only touches the Special pages
  # Run the clone from the server:
* The ROUTINE clone form is working end-to-end:
  #::<pre>php extensions/CustomQueryPage/maintenance/testClone.php \
** confirmed by the success banner
      --wiki=eckfordc_mw19424 \
** ApprovedManuals shows ''ROUTINE_4.111''
      --source=ROUTINE_4.110 \
** the README now documents the exact steps
      --target=ROUTINE_4.111 \
* No special mention of ''mw_tags'' in ''LocalSettings.php'' is required.
      --user=Admin
** It’s core schema, and the extension already hits it directly.
  </pre>
 
  # Check [[Special:ApprovedManuals]]; if the script prints an error, copy the message verbatim so we can patch
== Next step: JSON/API practice ==
  it.
 
* Since new ROUTINEs are usually just re-tagging existing pages (rarely brand-new content), the current clone form covers the common path.
* If you want to practice building a JSON/API importer for the rare cases when a ROUTINE bundle comes from outside:
** define the payload first
** describe the data coming out of your export process:
*** page_id
*** rev_id
*** deploy_comment
*** wikitext
*** etc.
** decide whether you want:
*** a REST endpoint
*** an Action API module
*** a CLI maintenance script that reads JSON
** once we agree on the schema, I can wire the MediaWiki-side code so Lisa (or a bot) can feed in the new release without touching MySQL
```
 
Next we can also convert the “ROUTINE_x.xxx → ROUTINE_y.yyy” bits into `<code>` style and wrap the “update.php” warning into a warning box format (using templates like `{{Note}}` / `{{Warning}}` if our wiki has them).
 
 
= Quick Start: ROUTINE Management =
 
=== 1. Seed the ROUTINE in the DB ===
Before Lisa touches the UI, make sure the database has ROUTINE data.
 
* Use the import script or manual SQL method.
* Required tables:
** <code>mw_tags</code> — one row per ROUTINE (e.g., <code>ROUTINE_4.111</code>).
** <code>mw_tag_pages</code> — one row per approved page.
* If needed, run: <code>php maintenance/update.php --quick</code>
 
{{Note|Only run <code>update.php</code> if <code>mw_customquerypage_settings</code> doesn't exist yet.}}
 
=== 2. Use the Special Page to Switch or Clone ===
 
* Go to: <code>Special:CustomQuerySettings</code>
* Two options:
** **Set Active Tag** — type <code>ROUTINE_4.111</code>, then Save.
** **Clone ROUTINE → New ROUTINE**:
*** From: <code>ROUTINE_4.110</code>
*** To: <code>ROUTINE_4.111</code>
*** Submit → this copies rows and updates the active tag.
 
=== 3. Verify the Result ===
 
* Visit: <code>Special:ApprovedManuals</code>
* Confirm the listing shows <code>ROUTINE_4.111</code>
* Lisa can now publish or review the approved manuals.
* No DB access required.
 
= Optional: JSON/API Importer =
 
If you're ready to skip the SQL import:
 
* Define a JSON payload that includes:
** <code>page_id</code>, <code>rev_id</code>, <code>deploy_comment</code>, <code>wikitext</code>, etc.
* Build a:
** REST endpoint, or
** Action API module, or
** Maintenance script that reads JSON
 
Once defined, we’ll wire MediaWiki to import it directly into <code>mw_tags</code> / <code>mw_tag_pages</code>. 
Lisa keeps working via Special pages — nothing changes for her.
 
{{Warning|Avoid touching the DB manually if you want to adopt the JSON route. The importer will handle safe insertion.}}

Revision as of 19:56, 21 January 2026

MediaWiki has been installed.

Consult the User's Guide for information on using the wiki software.

Getting started

Import CustomQueryPage

Installing CustomQueryPage

  • Download the bundle: wget https://mw.eckford.ca/downloads/CustomQueryPage-mw1359.tar.gz
  • Extract it into your extensions folder:
    • tar -xzf CustomQueryPage-mw1359.tar.gz -C /srv/mediawiki/extensions
  • Edit LocalSettings.php and add wfLoadExtension( 'CustomQueryPage' );
  • Run php maintenance/update.php --quick.
  • Visit Special:CustomQuerySettings, set the ROUTINE tag (e.g., ROUTINE_4.110), and confirm Special:ApprovedManuals.


Where We Stand

  • CustomQueryPage now ships with a simplified clone path:
    • Special:CustomQuerySettings copies the mw_tag_pages rows from ROUTINE_4.110 to ROUTINE_4.111,
    • clones the mw_tags row,
    • and immediately points the listing at the new tag.
    • Success banner fixed; README documents the exact steps (see the new "Quick clone workflow").
  • On sh1re/sh0re we never finished the MediaWiki core patch that deletes mw_logging.log_user*.
    • We seeded mw_customquerypage_settings manually instead so Lisa could keep using the UI.

Why mw_tags felt “bypassed” during export

  • On dev we inserted the active tag row directly into mw_customquerypage_settings; the clone form still expects
 the regular mw_tags / mw_tag_pages tables.
    • If those tables contain the 4.110 data (they should after your MySQL import), the UI will re-use them.
    • If the environment you tested lacked mw_tags, we need to confirm the table exists and is populated before cloning.
  • There’s nothing special to reference in LocalSettings.php; MediaWiki core creates mw_tags / mw_tag_pages
 automatically.
    • Our extension simply reads/writes them via the load balancer.

Next steps if you want to exercise it on mw.eckford.ca

  1. Copy extensions-mw1359/CustomQueryPage to the MW 1.39 box.
  2. Ensure mw_tags / mw_tag_pages have at least one ROUTINE (e.g., import ROUTINE_4.110).
  3. Visit Special:CustomQuerySettings, confirm the clone form works end-to-end:
    • new mw_tags row
    • ApprovedManuals listing updated
  4. Once Lisa confirms the UI covers her release work (set tag + clone), we can document the progressive-release workflow on her admin page.

If that 1.39 run reveals that mw_tags truly doesn’t exist in that environment, we’ll know we must create it (or point the extension at your custom release table).

Otherwise, the existing code already ties directly into mw_tags, so maintaining progressive releases is just a matter of Lisa cloning each ROUTINE and then toggling the Approved Manuals view as you outlined.

Recap (Last Week → Now)

  • Finished the MW 1.35.9 CustomQueryPage build with the simplified clone workflow so Lisa can re-tag approved releases inside MediaWiki.
    • Special:CustomQuerySettings now handles both:
      • Set active tag
      • Clone ROUTINE_x.xxx → ROUTINE_y.yyy
  • Deployed the same bits to eckfordc (MW 1.39) and sh1re/sh0re.
    • The tables you saw (mw_tags / mw_tag_pages plus mw_customquerypage_settings) match what the extension uses.
  • update.php keeps screaming about dropping legacy logging indexes.
    • On dev we skipped the patch and seeded the settings table manually.
    • Production installs just need to run update once so mw_customquerypage_settings exists.

Where we landed

  • DB access for humans stays off the table:
    • whoever preps the ROUTINE export runs the existing script/import
    • Lisa only touches the Special pages
  • The ROUTINE clone form is working end-to-end:
    • confirmed by the success banner
    • ApprovedManuals shows ROUTINE_4.111
    • the README now documents the exact steps
  • No special mention of mw_tags in LocalSettings.php is required.
    • It’s core schema, and the extension already hits it directly.

Next step: JSON/API practice

  • Since new ROUTINEs are usually just re-tagging existing pages (rarely brand-new content), the current clone form covers the common path.
  • If you want to practice building a JSON/API importer for the rare cases when a ROUTINE bundle comes from outside:
    • define the payload first
    • describe the data coming out of your export process:
      • page_id
      • rev_id
      • deploy_comment
      • wikitext
      • etc.
    • decide whether you want:
      • a REST endpoint
      • an Action API module
      • a CLI maintenance script that reads JSON
    • once we agree on the schema, I can wire the MediaWiki-side code so Lisa (or a bot) can feed in the new release without touching MySQL

```

Next we can also convert the “ROUTINE_x.xxx → ROUTINE_y.yyy” bits into `` style and wrap the “update.php” warning into a warning box format (using templates like `

Note: {{{1}}}

` / `

⚠️

Warning: {{{1}}}





` if our wiki has them).


Quick Start: ROUTINE Management

1. Seed the ROUTINE in the DB

Before Lisa touches the UI, make sure the database has ROUTINE data.

  • Use the import script or manual SQL method.
  • Required tables:
    • mw_tags — one row per ROUTINE (e.g., ROUTINE_4.111).
    • mw_tag_pages — one row per approved page.
  • If needed, run: php maintenance/update.php --quick

Note: Only run update.php if mw_customquerypage_settings doesn't exist yet.


2. Use the Special Page to Switch or Clone

  • Go to: Special:CustomQuerySettings
  • Two options:
    • **Set Active Tag** — type ROUTINE_4.111, then Save.
    • **Clone ROUTINE → New ROUTINE**:
      • From: ROUTINE_4.110
      • To: ROUTINE_4.111
      • Submit → this copies rows and updates the active tag.

3. Verify the Result

  • Visit: Special:ApprovedManuals
  • Confirm the listing shows ROUTINE_4.111
  • Lisa can now publish or review the approved manuals.
  • No DB access required.

Optional: JSON/API Importer

If you're ready to skip the SQL import:

  • Define a JSON payload that includes:
    • page_id, rev_id, deploy_comment, wikitext, etc.
  • Build a:
    • REST endpoint, or
    • Action API module, or
    • Maintenance script that reads JSON

Once defined, we’ll wire MediaWiki to import it directly into mw_tags / mw_tag_pages. Lisa keeps working via Special pages — nothing changes for her.

⚠️

Warning: Avoid touching the DB manually if you want to adopt the JSON route. The importer will handle safe insertion.