Skip to content

Ask before replacing a cached image that no longer matches - #44

Merged
MickLesk merged 1 commit into
mainfrom
feat/cache-choice
Sep 17, 2026
Merged

MickLesk merged 1 commit into
mainfrom
feat/cache-choice

Conversation

@MickLesk

@MickLesk MickLesk commented Sep 17, 2026

Copy link
Copy Markdown
Member

✍️ Description

Debian rebuilds its cloud images every week or two and keeps the filename, so the cached copy stops matching the published checksum and several hundred MB were re-fetched without asking. Usually that is right, but not always worth the wait.

The prompt now names both sides — size and date, cached and upstream — so the choice is informed. Keeping the cached copy uses it as it is; taking the new one removes it first. Unattended runs, or a session without a terminal, download as before.

  File:     debian-13-nocloud-amd64.qcow2
  Cached:   668M, 2026-09-17 13:30
  Upstream: 391M, Mon, 14 Sep 2026 14:46:26 GMT

✅ Prerequisites (X in brackets)

  • Self-review completed – Code follows project standards.
  • Tested thoroughly – Changes work as expected (Proxmox VE and/or Incus, as applicable).
  • No security risks – No hardcoded secrets, unnecessary privilege escalations, or permission issues.
  • API.txt regenerated – If a function signature or behavior changed, API.txt was updated to match.

🤖 AI Assistance (X in brackets)

  • No AI used – Code was written without AI assistance.
  • AI was used – The output has been reviewed and corrected, and I take responsibility for it matching this repo's conventions.

🛠️ Type of Change (X in brackets)

  • 🐞 Bug fix – Resolves an issue without breaking functionality.
  • New feature – Adds new, non-breaking functionality.
  • 💥 Breaking change – Alters existing behavior in a way that may require updates in every downstream script.
  • 🔧 Refactoring / Code Cleanup – Improves readability or maintainability without changing functionality.
  • 📝 Documentation update – Changes to README, docs/, CONTRIBUTING.md, or other docs.

Debian rebuilds its cloud images every week or two and keeps the name, so
the cached copy stops matching the published checksum and several hundred
MB were re-fetched without asking. Usually that is right, but not always
worth the wait.

The prompt names both sides - size and date, cached and upstream - so the
choice is informed. Keeping the cached copy uses it as it is; taking the
new one removes it first. Unattended runs, or a session without a
terminal, download as before.
@github-actions

Copy link
Copy Markdown
Contributor

Try this branch

The engine and the scripts resolve independently, so a production script can
be run against the engine from this PR by setting one variable:

COMMUNITY_SCRIPTS_CORE_URL=https://raw.githubusercontent.com/community-scripts/core/feat/cache-choice \
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/ct/debian.sh)"

Swap ct/debian.sh for whatever exercises the change.

This PR touches pve/, so it needs a Proxmox VE host.

Run a script from a fork as well
curl -fsSL https://raw.githubusercontent.com/community-scripts/core/feat/cache-choice/tools/run.sh |
  bash -s -- https://raw.githubusercontent.com/YOU/ProxmoxVED/your-branch ct/debian.sh \
             https://raw.githubusercontent.com/community-scripts/core/feat/cache-choice

Note that run.sh is reached through a pipe, so the script it starts inherits
an exhausted stdin. Whiptail is fine — it opens /dev/tty — but a plain read
would see EOF. The single-variable form above does not have that problem.

Useful flags while testing

dev_mode=net logs every engine fetch with status and duration, which is the
quickest way to confirm the branch is really being used. dev_mode=keep stops a
failed build from deleting the container along with the evidence.

@MickLesk
MickLesk merged commit 8673c2b into main Sep 17, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants