You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
make tag should refuse to run while tracked *--stable* files exist #149
make tag (and therefore a release) should refuse to proceed while any tracked file matching *--stable* exists in the repo, aborting with a message that names the offending files.
Extension repos that use a stable pseudo-version (see #20, #95, #103) keep files such as sql/<ext>--stable.sql (generated install script) and sql/<ext>--<prev>--stable.sql (update script). Before a release, every real --stable update script has to be renamed to the real version (git mv), and any placeholder or generated ones removed, so the tagged commit contains none. Nothing enforces this today.
Failure mode: forgetting to rename a real update script goes unnoticed. The tag is created anyway, and the script is either missing from the release under its real version name or shipped under the wrong one. Nothing fails until someone tries ALTER EXTENSION ... UPDATE against the released version.
Suggested check, early in tag:
files=$(git ls-files '*--stable*')
if [ -n "$files" ]; then
echo "Refusing to tag: tracked --stable files must be renamed or removed first:" >&2
echo "$files" >&2
exit 1
fi
This is a mechanical guard that would protect every consuming repo. Since post-tag-version-bump (#95) runs after tagging, this check complements it: bump after the tag, verify before it. The placeholder name is configurable via PGXNTOOL_POST_TAG_VERSION, so the check should probably honor that variable rather than hardcoding stable.
Activity