-
Notifications
You must be signed in to change notification settings - Fork 248
Externalise cache keys to prevent unneeded invalidation #3922
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,6 @@ | ||
| #!/bin/bash | ||
|
|
||
| # Values are consumed by ios.sh and the dependency cache key. | ||
| # shellcheck disable=SC2034 | ||
| export AQTINSTALL_VERSION="${AQTINSTALL_VERSION:-3.3.0}" | ||
| export QT_VERSION="${QT_VERSION:-5.15.2}" |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,7 @@ | ||
| #!/bin/bash | ||
|
|
||
| # Values are consumed by mac.sh and the dependency cache key. | ||
| # shellcheck disable=SC2034 | ||
| export AQTINSTALL_VERSION="${AQTINSTALL_VERSION:-3.3.0}" | ||
| export QT_VERSION="${QT_VERSION:-6.10.2}" | ||
| export QT_LEGACY_VERSION=5.15.2 |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,8 @@ | ||
| # Values are consumed by windows.ps1 and the dependency cache key. | ||
| $Qt32Version = "5.15.2" | ||
| $Qt64Version = "6.10.2" | ||
| $AqtinstallVersion = "3.3.0" | ||
| $JackVersion = "1.9.22" | ||
| $Msvc32Version = "win32_msvc2019" | ||
| $Msvc64Version = "win64_msvc2022_64" | ||
| $JomVersion = "1.1.2" |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -39,8 +39,8 @@ jobs: | |
| - name: aqt | ||
| # not Changelog-worthy | ||
| get_upstream_version: GH_REPO=miurahr/aqtinstall gh release view --json tagName --jq .tagName | sed -re 's/^v//' | ||
| # The following regexps capture both the *nix and the Windows variable syntax (different case, underscore): | ||
| local_version_regex: (.*AQTINSTALL_?VERSION\s*=\s*"?)([0-9.]*)("?.*) | ||
| # Capture both plain assignments and shell parameter-expansion defaults. | ||
| local_version_regex: (.*AQTINSTALL_?VERSION\s*=\s*"?[^0-9]*)([0-9.]+)(.*) | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This regex and the one below look ok to me by eye, but have you tested them in situ somehow?
Collaborator
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. It runs... But I'm not sure how to check it actually picks up new versions. It's syntactically stronger... I'd have to mock the returns from the version probes, I guess, and check it creates the bump. I'll give that a go in my repo. |
||
| - name: create-dmg | ||
| changelog_name: create-dmg (macOS) | ||
| get_upstream_version: GH_REPO=create-dmg/create-dmg gh release view --json tagName --jq .tagName | sed -re 's/^v//' | ||
|
|
@@ -50,8 +50,8 @@ jobs: | |
| get_upstream_version: | | ||
| latest_minor="$(curl -s https://download.qt.io/official_releases/qt/ | grep -oP 'href="\K[0-9.]+(?=/")' | sort --reverse --version-sort | head -n1)"; | ||
| curl -s https://download.qt.io/official_releases/qt/"${latest_minor}"/ | grep -oP 'href="\K[0-9.]+(?=/")' | sort --reverse --version-sort | head -n1 | ||
| # The following regex captures both the *nix and the Windows variable syntax (different case, underscore): | ||
| local_version_regex: (.*QT[0-9_]+VERSION\s*=\s*"?)(6\.[0-9.]+)("?.*) | ||
| # Capture both plain assignments and shell parameter-expansion defaults. | ||
| local_version_regex: (.*QT[0-9_]+VERSION\s*=\s*"?[^0-9]*)(6\.[0-9.]+)(.*) | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. See comment above |
||
|
|
||
| - name: jack | ||
| changelog_name: bundled JACK (Windows-only) | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This hash still needs to contain
mac/deploy_mac.sh, because that script containsCREATEDMG_VERSION, which is updated bybump-dependenciesThere was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🤖 AI: Confirmed, and it is the only one of its kind here. Running all seven bump components against this head, every component moves the cache key of each platform whose version it changes — except create-dmg, whose single pin is
CREATEDMG_VERSIONinmac/deploy_mac.sh, whichmainhashes today.The failure mode is milder than the ASIO/NSIS one: create-dmg unpacks into a version-namespaced folder, so a stale cache cannot install the wrong version. The cost is that after a bump the key is unchanged, the exact hit means the post step saves nothing, and create-dmg is downloaded and
make installed again on every macOS run.