Add Change Log to Joomla Manifest File

Since Joomla 4.0, Joomla can read a change log file and give a visual representation of the change log. You can add this in the manifest file. If a given version is not found in the change log, the change log button will not be shown.

The change log is used in two different places:

  1. Update View: The installer will show the change log of the version that can be installed if available. Clicking the Changelog button will show the changelog of the new available version.

  2. Manage View: The extension manager will show the change log of the currently installed extension if available. Clicking the version number will show the changelog of the current installed version.

How to Add Change Log

Step 1: Manifest Files

The details are stored in separate XML file. You need to update your both, extension manifest file and update server manifest file that tell Joomla where to find the change log details. Add the following node to your manifest XML files:

<changelogurl>https://example.com/updates/changelog.xml</changelogurl>

Step 2: Change Log File

The change log file must have the following three nodes:

  1. element
  2. type
  3. version

This information is used to identify the correct change log for a given extension.

<element>com_lists</element>
<type>component</type>
<version>4.0.0</version>

Step 3: Change Types

Next, the change log is filled with one or more following change types:

  1. security: Any security issues that have been fixed
  2. fix: Any bugs that have been fixed
  3. language: This is for language changes
  4. addition: Any new features added
  5. change: Any changes
  6. remove: Any features removed
  7. note: Any extra information to inform the user

The format of the text can be plain text or HTML but in case of HTML, it must be enclosed in CDATA tags.

<changelogs>
<changelog>
<element>com_lists</element>
<type>component</type>
<version>4.0.0</version>
<security>
<item>Item A</item>
<item><![CDATA[<h2>You MUST replace this file</h2>]]></item>
</security>
<fix>
<item>Item A</item>
<item>Item b</item>
</fix>
<language>
<item>Item A</item>
<item>Item b</item>
</language>
<addition>
<item>Item A</item>
<item>Item b</item>
</addition>
<change>
<item>Item A</item>
<item>Item b</item>
</change>
<remove>
<item>Item A</item>
<item>Item b</item>
</remove>
<note>
<item>Item A</item>
<item>Item b</item>
</note>
</changelog>
</changelogs>

A change log can have as many versions as needed.