This document describes the internal release workflow for JoomLeague packages, Joomla update metadata and downloadable language packs.
Before publishing a new build, update these files:
pkg_joomleague.xmladministrator/components/com_joomleague/joomleague.xml- child extension manifests under
modules/andplugins/ CHANGELOG.md
All extension manifests must use the same version. CHANGELOG.md must contain
a dated section for the released version.
Run the complete local release pipeline from the repository root:
python3 build/release_distribution.pyThe wrapper runs these steps in order:
build/validate_versions.py
build/language_packages.py
build/package.py
build/release_metadata.py
build/validate_package.py
build/update_distribution.py
The command fails on the first broken step.
The build writes the package and metadata under dist/:
dist/pkg_joomleague-<version>.zipdist/joomleague-update.xmldist/joomleague-changelog.xmldist/joomleague-changelog-<version>.xmldist/languages/joomleague-language-<tag>.zip
The main package contains only the source language. Additional translations are published as separate language packages.
The public static download tree is generated under:
/mnt/disk-a/docker/webserver/update.klucon.cz/public/joomleague
Public URLs:
https://download.klucon.cz/joomleague/https://download.klucon.cz/joomleague/releases/https://download.klucon.cz/joomleague/releases/<version>/https://download.klucon.cz/joomleague/languages/https://download.klucon.cz/joomleague/dev/
Machine-readable URLs:
https://update.klucon.cz/joomleague/update.xmlhttps://update.klucon.cz/joomleague/changelog.xmlhttps://update.klucon.cz/joomleague/languages/manifest.json
The generated release detail includes:
- package ZIP
- changelog XML
- update XML snapshot
release.jsonchecksums.txt- language ZIP files
JSON files keep timestamps in UTC, for example:
2026-07-17T12:36:46+00:00
HTML pages display the same timestamps in Europe/Prague, for example:
2026-07-17 14:36 CEST
build/release_distribution.py performs HTTP checks after publishing and
expects 200 OK from:
https://download.klucon.cz/https://download.klucon.cz/joomleague/https://download.klucon.cz/joomleague/releases/https://download.klucon.cz/joomleague/languages/https://download.klucon.cz/joomleague/dev/https://update.klucon.cz/joomleague/update.xmlhttps://update.klucon.cz/joomleague/languages/manifest.jsonhttps://download.klucon.cz/joomleague/releases/<version>/
After publishing, verify that Joomla can read:
https://update.klucon.cz/joomleague/update.xml
The update XML must reference the package ZIP on update.klucon.cz and include
the SHA-256 hash for the generated package.
Language packages are generated from the local Weblate VCS checkout by:
python3 build/language_packages.pyAdministrators install or update them from:
administrator/index.php?option=com_joomleague&view=languages
The administrator screen reads:
https://update.klucon.cz/joomleague/languages/manifest.json
It displays package version, update time, size and SHA-256 for each available language.
JoomLeague release packages and language packages are no longer published
through Phoca Download. The static download system on download.klucon.cz and
update.klucon.cz is the source of truth.