fix(build): exclude iOS Safari < 12 from browserslist targets (stable32) - #2827
Merged
Merged
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
Activity
|
||||||||||||||||||||||||||||
| Project |
Activity
|
| Branch Review |
chore/stable32-browserslist-config-3.1.2
|
| Run status |
|
| Run duration | 02m 05s |
| Commit |
|
| Committer | Anna |
| View all properties for this run ↗︎ | |
| Test results | |
|---|---|
|
|
0
|
|
|
0
|
|
|
1
|
|
|
0
|
|
|
9
|
| View all changes introduced in this branch ↗︎ | |
Collaborator
Author
|
/compile amend |
nextcloud-command
force-pushed
the
chore/stable32-browserslist-config-3.1.2
branch
from
July 27, 2026 18:12
dd9c78b to
faf414e
Compare
miaulalala
force-pushed
the
chore/stable32-browserslist-config-3.1.2
branch
from
July 27, 2026 18:17
faf414e to
eb2eca0
Compare
miaulalala
force-pushed
the
chore/stable32-browserslist-config-3.1.2
branch
from
July 27, 2026 19:19
eb2eca0 to
e4e3232
Compare
artonge
approved these changes
Jul 28, 2026
esbuild 0.28.x hard-errors instead of warning when it cannot downlevel destructuring to a configured target, and this branch's targets still resolve ios_saf 11 via the '>0.25%' query in @nextcloud/browserslist-config 3.0.1. That breaks the build as soon as a lockfile regeneration pulls esbuild 0.28.x in through vite's dependency range, as on #2778. Excluding iOS Safari < 12 removes the offending target without touching any dependency and without moving the Chrome floor, which stays at 109. Signed-off-by: Anna Larch <anna@nextcloud.com>
Signed-off-by: Anna Larch <anna@nextcloud.com>
miaulalala
force-pushed
the
chore/stable32-browserslist-config-3.1.2
branch
from
July 28, 2026 12:12
e4e3232 to
6ffeac2
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The problem
esbuild 0.28.x hard-errors where earlier versions warned, when it cannot downlevel a syntax feature to a configured target:
ios11is in that list because stable32 is the last branch on@nextcloud/browserslist-config3.0.1, whose config is['>0.25%', 'not op_mini all', 'not dead', 'Firefox ESR']— that percentage threshold still catches iOS Safari 11.The source is ordinary:
const { default: ActivityTab } = await import('./views/ActivityTab.vue'). Nothing is wrong with it; the target list is the problem.Note this is latent, not hypothetical. esbuild arrives via vite's dependency range, so any lockfile regeneration on this branch can pull 0.28.x in — which is exactly what happened on #2778.
The fix
One line,
package.json:No dependency change.
package-lock.jsonis untouched.Testing
Verified on node 22.22.3 / npm 10.9.8, matching this branch's
engines.Sufficiency — using #2778's exact lockfile (esbuild 0.28.1, browserslist-config 3.0.1) and adding only this override, so the dependency tree is provably identical between runs:
No collateral change to browser support:
For contrast, the
^3.1.2bump would have moved Chrome to 121 and iOS to 17.4.Also confirmed
npm ci && npm run buildleaves a clean working tree, so the recompiled assets here match a fresh build, and there are no conflicts against current stable32.Unblocks #2778.