v3.32.0: the packaged-install updater + a repo CHANGELOG
release / release (push) Has been cancelled
release / release (push) Has been cancelled
Reinstalling the package was slow because setup rebuilds pysim's prerequisites (pyscard compiles from source on Linux), while a clone updates with a plain `git pull`. - tools/update.py (+ update.sh / update.bat in the package, and the release workflow shipping them) updates a packaged install in place: it downloads the latest release package, extracts it (zip-slip guard, permission bits restored - zipfile drops them), replaces the app files over the app directory and re-installs the app into the existing .venv. The .venv and simple_lastrun.log are not in the package, so pysim and its prerequisites survive: seconds, not a rebuild. --check / --version / --zip (offline) / --no-pip / --force; the same version is a no-op. - CHANGELOG.md (Keep a Changelog, from the first packaged release; earlier history is the git log). The release workflow now uses the version's CHANGELOG section as the release body (tools/changelog_section.py, falling back to generated notes). - The READMEs document the update path and the `git clone --depth 1` option for the clone path; setup prints the update hint. - Version strings + the PWA cache bumped together (simple-v458). Verified: 1007 Python + 953 frontend; the release-package test covers the new files; the updater was exercised end to end (a v3.31.2 install with a real venv updated to the 3.32.0 package: files replaced, the venv marker kept, pip metadata 3.32.0, exec bits kept, a second run a no-op, --check correct).
This commit is contained in:
@@ -79,9 +79,17 @@ jobs:
|
||||
GH_TOKEN: ${{ github.token }}
|
||||
run: |
|
||||
TAG="${{ github.event.inputs.tag || github.ref_name }}"
|
||||
ZIP="dist/simple-${TAG#v}.zip"
|
||||
VER="${TAG#v}"
|
||||
ZIP="dist/simple-$VER.zip"
|
||||
# The release body is the CHANGELOG section of the version; a missing
|
||||
# section falls back to generated notes.
|
||||
if python tools/changelog_section.py "$VER" > /tmp/notes.md 2>/dev/null; then
|
||||
NOTES="--notes-file /tmp/notes.md"
|
||||
else
|
||||
NOTES="--generate-notes"
|
||||
fi
|
||||
if gh release view "$TAG" >/dev/null 2>&1; then
|
||||
gh release upload "$TAG" "$ZIP" --clobber
|
||||
else
|
||||
gh release create "$TAG" "$ZIP" --title "$TAG" --generate-notes
|
||||
gh release create "$TAG" "$ZIP" --title "$TAG" $NOTES
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user