The script takes options now: --revision, --minimum, --update and
--credits-file. The po files can still be given as arguments, they default to
all of them.
--update merges the generated entries into the Translators section of the
credits file instead of printing them, so the list can be refreshed without
editing by hand. The merge only ever adds: the entries the file already has are
kept as they are and in their order, and a generated entry is skipped when the
file already credits that address or that name, so a second run changes
nothing.
Sections the file does not have are inserted alphabetically, and the names the
po files use for a section the file names otherwise are mapped: Chinese
(Simplified Han script) to Chinese (China), Chinese (Traditional) to Chinese
(Taiwan), Khmer (Central) to Khmer. A name that only differs by a parenthetical
is matched on its base name. Only the Translators section is touched, the
"Documentation translators" list below it has its own source.
This is what makes the file maintainable without hand work, but it keeps the
hand-curated entries safe: the po files start in 2010, so a regeneration cannot
see the translators of the language files of the earlier versions, and Daniel
Hinostroza is one of them.
The tooling accounts are filtered out, and an account registered under a
placeholder name keeps the address alone, which is the Weblate account that
translated Croatian as "test".
Fixes the shellcheck findings so the script passes the shellcheck workflow:
the environment is read under set -u, the paths are quoted, and the usage text
is a single heredoc instead of being duplicated in the option parser.
Co-authored-by: DeepSeek <noreply@deepseek.com>
Signed-off-by: William Desportes <williamdes@wdes.fr>
git shortlog was called without a revision, so it read the commits from
stdin instead of walking the history, and it came back empty whenever
stdin was not a terminal, that is from cron or from a hook. It needs an
explicit revision, HEAD by default.
The grep on its output also kept only the authors with four digit commit
counts, which is at most one person per language, and the entries were
printed bare, without the indentation or the escaping the credits file
expects.
The script now takes the revision, a minimum number of commits and an
optional po file, skips the tooling accounts, and writes the entries
indented and escaped, ready to be curated into the credits.
The po directory is detected instead of hardcoded, so the same script
works on the branch that moved it to resources/po.
Note that no revision can list the translators of the language files that
predate the 2010 po generation, those have to be curated by hand, from the
ChangeLog and the commit messages.
Co-authored-by: DeepSeek <noreply@deepseek.com>
Signed-off-by: William Desportes <williamdes@wdes.fr>
The snapshot metadata JSON only carried date+commit, so consumers had no
way to know the target release number (e.g. 5.2.4) -- it lived only inside
the tarball. Emit the full snapshot version (VERSION+date.shorthash, e.g.
5.2.4+20260809.c90e048) so tooling such as Debian uscan can derive a correct,
self-updating package version without hardcoding or unpacking the tarball.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This is a PhpStorm helper file that vendor packages ship to provide
IDE autocomplete to library consumers. It's useless in a phpMyAdmin
release tarball (which is a final product, not a library).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: William Desportes <williamdes@wdes.fr>
Catch dev/tooling files that have appeared in vendor dists in recent
years and were not yet flagged: AGENTS.md/CLAUDE.md (case-insensitive),
UPGRADING.md, UPGRADE.md, UPGRADE-*.md, SECURITY.md, .gitlab-ci.yml,
.tool-versions, .phive/, .phpdoc/, vendor/*/guides/, vendor/*/benchmark/,
vendor/*/benchmarks/.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: William Desportes <williamdes@wdes.fr>
Fixes: #18109
The issue was that roave/security-advisories did block any versions before 5.2.1. So I extended 5.2+ci to 5.2.1+ci
Signed-off-by: William Desportes <williamdes@wdes.fr>
```
Failed to update composer.json with a valid format, reverting to the original content. Please report an issue to us with details (command you run and a copy of your composer.json).
version : Does not match the regex pattern ^v?\d+(\.\d+){0,3}|^dev-
```
Signed-off-by: William Desportes <williamdes@wdes.fr>