Skip to content

Commit ca6819d

Browse files
authored
chore(git): sync with main (#31509)
Sync feature-9.1 with main.
2 parents e82cb30 + 1c89743 commit ca6819d

1,495 files changed

Lines changed: 28135 additions & 39973 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎.github/workflows/codeql-analysis.yml‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ jobs:
1515
security-events: write
1616
steps:
1717
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
18-
- uses: github/codeql-action/init@b96794f015dfd88f77b49b1c93e0fa7110f94c63 # v4.38.0
18+
- uses: github/codeql-action/init@2892aa5e19bbd11bc0cff5427e3b750a04d9e3c2 # v4.38.2
1919
with:
2020
languages: javascript
21-
- uses: github/codeql-action/analyze@b96794f015dfd88f77b49b1c93e0fa7110f94c63 # v4.38.0
21+
- uses: github/codeql-action/analyze@2892aa5e19bbd11bc0cff5427e3b750a04d9e3c2 # v4.38.2

‎.github/workflows/release.yml‎

Lines changed: 81 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -85,9 +85,17 @@ jobs:
8585
# possible for them to push at the same time.
8686
needs: [finalize-release]
8787
runs-on: ubuntu-latest
88+
# This is a backstop for the retry loop in
89+
# Resolve Package Locks, which fails with its
90+
# own message first.
91+
timeout-minutes: 30
8892
permissions:
8993
contents: write
9094
id-token: write
95+
outputs:
96+
# This says the new versions resolved on npm,
97+
# which is not the same as the job passing.
98+
resolved: ${{ steps.resolve.outputs.resolved }}
9199
steps:
92100
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
93101
# Pull the latest version of the reference
@@ -108,25 +116,74 @@ jobs:
108116
git config user.email hi@ionicframework.com
109117
shell: bash
110118
# Lerna does not automatically bump versions
111-
# of Ionic dependencies that have changed,
112-
# so we do that here.
113-
- name: Bump Package Lock
119+
# of Ionic dependencies that have changed, so
120+
# we do that here. The install fails with
121+
# ETARGET until the versions published earlier
122+
# resolve on npm, so retry. The
123+
# `--prefer-online` flag matters because npm
124+
# caches the failed lookup, and an `npm view`
125+
# probe would read a different cached document.
126+
- name: Resolve Package Locks
127+
id: resolve
128+
env:
129+
SLEEP_SECONDS: 15
130+
DEADLINE_SECONDS: 900
131+
run: |
132+
set -euo pipefail
133+
# We bound this on the wall clock so the loop reports its own
134+
# error before `timeout-minutes` kills the job. The `timeout`
135+
# call caps an attempt that hangs rather than fails, which would
136+
# never reach the check below.
137+
deadline=$(( SECONDS + DEADLINE_SECONDS ))
138+
attempt=0
139+
until timeout --kill-after=30 300 lerna exec "npm install --package-lock-only --prefer-online"; do
140+
attempt=$(( attempt + 1 ))
141+
if [ "$SECONDS" -ge "$deadline" ]; then
142+
echo "::error::npm install --package-lock-only failed $attempt times over ${SECONDS}s; see the last attempt above for the error"
143+
exit 1
144+
fi
145+
echo "Attempt $attempt failed, retrying in ${SLEEP_SECONDS}s"
146+
sleep "$SLEEP_SECONDS"
147+
done
148+
echo "resolved=true" >> "$GITHUB_OUTPUT"
149+
shell: bash
150+
# This is split from the retry so `resolved`
151+
# does not depend on the commit and the push
152+
# working.
153+
- name: Commit Package Locks
154+
env:
155+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
114156
run: |
115-
lerna exec "npm install --package-lock-only"
157+
set -euo pipefail
116158
git add .
159+
# Re-running this job after the locks were already committed
160+
# would otherwise fail on an empty commit.
161+
if git diff --cached --quiet; then
162+
echo "No package lock changes to commit"
163+
exit 0
164+
fi
117165
git commit -m "chore(): update package lock files"
118166
git push
119-
env:
120-
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
121167
shell: bash
122168

123169
purge-cdn-cache:
124-
needs: [release-ionic]
170+
# This runs after `update-package-lock` so the
171+
# new versions have resolved on npm. Purging
172+
# earlier re-caches `@ionic/core@latest` at the
173+
# previous release. A failed `finalize-release`
174+
# skips this too, so a half-finished release
175+
# that did reach npm needs a manual purge.
176+
needs: [update-package-lock]
177+
if: ${{ !cancelled() && needs.update-package-lock.outputs.resolved == 'true' }}
125178
runs-on: ubuntu-latest
179+
timeout-minutes: 5
126180
steps:
127181
- name: Purge JSDelivr Cache
128182
run: |
129-
curl -X POST \
183+
set -euo pipefail
184+
if ! response=$(curl -sS --max-time 60 --retry 3 --retry-all-errors \
185+
--retry-max-time 120 \
186+
-w '\n%{http_code}' -X POST \
130187
https://purge.jsdelivr.net/ \
131188
-H 'cache-control: no-cache' \
132189
-H 'content-type: application/json' \
@@ -142,7 +199,21 @@ jobs:
142199
"/npm/@ionic/core@7/css/ionic.bundle.css",
143200
"/npm/@ionic/core@8/css/ionic.bundle.css",
144201
"/npm/@ionic/core@9/css/ionic.bundle.css",
145-
"/npm/@ionic/core@latest/css/ionic.bundle.css"
202+
"/npm/@ionic/core@latest/css/ionic.bundle.css",
146203
"/npm/@ionic/core@next/css/ionic.bundle.css"
147-
]}'
204+
]}'); then
205+
echo "::warning::jsDelivr purge request failed"
206+
exit 0
207+
fi
208+
status=${response##*$'\n'}
209+
echo "${response%$'\n'*}"
210+
# `curl` exits 0 whatever jsDelivr answers, so check the status.
211+
# A 4xx means we sent a bad payload, which is otherwise silent.
212+
# Anything else is jsDelivr being down, which should not fail
213+
# a release.
214+
case "$status" in
215+
2*) ;;
216+
4*) echo "::error::jsDelivr rejected the purge with HTTP $status"; exit 1 ;;
217+
*) echo "::warning::jsDelivr purge did not complete (HTTP $status)" ;;
218+
esac
148219
shell: bash

‎CHANGELOG.md‎

Lines changed: 27 additions & 0 deletions

‎core/CHANGELOG.md‎

Lines changed: 27 additions & 0 deletions

‎core/Dockerfile‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Get Playwright
2-
FROM mcr.microsoft.com/playwright:v1.62.1
2+
FROM mcr.microsoft.com/playwright:v1.63.0
33

44
# Set the working directory
55
WORKDIR /ionic

‎core/package-lock.json‎

Lines changed: 21 additions & 24 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎core/package.json‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@ionic/core",
3-
"version": "9.0.3",
3+
"version": "9.0.6",
44
"description": "Base components for Ionic",
55
"engines": {
66
"node": ">= 16"
@@ -80,7 +80,7 @@
8080
"@eslint/js": "^9.0.0",
8181
"@ionic/eslint-config": "^0.3.0",
8282
"@ionic/prettier-config": "^2.0.0",
83-
"@playwright/test": "^1.62.1",
83+
"@playwright/test": "^1.63.0",
8484
"@rollup/plugin-node-resolve": "^8.4.0",
8585
"@rollup/plugin-virtual": "^2.0.3",
8686
"@stencil/angular-output-target": "^1.4.1",
@@ -102,7 +102,7 @@
102102
"fs-extra": "^9.0.1",
103103
"jest": "^29.7.0",
104104
"jest-cli": "^29.7.0",
105-
"playwright-core": "^1.62.1",
105+
"playwright-core": "^1.63.0",
106106
"prettier": "^2.6.1",
107107
"rollup": "^2.26.4",
108108
"sass": "^1.33.0",

‎core/src/components.d.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -867,7 +867,7 @@ export namespace Components {
867867
*/
868868
"getScrollElement": () => Promise<HTMLElement>;
869869
/**
870-
* Recalculate content dimensions. Called by overlays (e.g., popover) when sibling elements like headers or footers have finished rendering and their heights are available, ensuring accurate offset-top calculations.
870+
* Recalculates the content dimensions and whether it should size itself to its content. Called by overlays when something they own changes, such as a header finishing its render or `--height` being updated.
871871
*/
872872
"recalculateDimensions": () => Promise<void>;
873873
/**
-3.64 KB
-3.9 KB

0 commit comments

Comments
 (0)