diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 000000000..aff82a102 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,6 @@ +version: 2 +updates: + - package-ecosystem: "npm" + directory: "/" + schedule: + interval: "weekly" diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 49feea99e..b34b6f884 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -627,7 +627,7 @@ jobs: - name: Setup Git run: | git config --global user.name "github-actions[bot]" - git config --global user.email "github-actions[bot]@users.noreply.github.com" + git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com" - name: Prepare Flatpak manifest run: | @@ -712,7 +712,7 @@ jobs: cask: true test-bot: false - - name: Setup git + - name: Setup Git uses: Homebrew/actions/git-user-config@master with: username: zen-browser-auto diff --git a/.github/workflows/linux-release-build.yml b/.github/workflows/linux-release-build.yml index 547258d2a..6ea3e870d 100644 --- a/.github/workflows/linux-release-build.yml +++ b/.github/workflows/linux-release-build.yml @@ -24,10 +24,8 @@ jobs: name: Build Linux - ${{ matrix.arch == 'x86_64' && 'Generic' || matrix.arch == 'x86_64-v3' && 'Specific' || matrix.arch == 'aarch64' && 'aarch64' }} steps: - - name: Free Disk Space (Ubuntu) - uses: jlumbroso/free-disk-space@main - with: - tool-cache: false + - name: Free disk space + run: src/ci/free-disk-space.sh - name: Checkout repository uses: actions/checkout@v4 @@ -62,7 +60,7 @@ jobs: - name: Setup sccache env: LINK: https://github.com/mozilla/sccache/releases/download - SCCACHE_VERSION: 0.2.13 + SCCACHE_VERSION: 0.9.0 run: | SCCACHE_FILE=sccache-$SCCACHE_VERSION-x86_64-unknown-linux-musl mkdir -p $HOME/.local/bin @@ -98,7 +96,7 @@ jobs: - name: Fix Rust version run: | # Install a rust version compatible with LLVM 18 - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain 1.79 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh source $HOME/.cargo/env if test "${{ matrix.arch }}" = "aarch64"; then diff --git a/.github/workflows/macos-release-build.yml b/.github/workflows/macos-release-build.yml index d331e2b5d..3db90870a 100644 --- a/.github/workflows/macos-release-build.yml +++ b/.github/workflows/macos-release-build.yml @@ -37,7 +37,7 @@ jobs: - name: Setup Python uses: actions/setup-python@v5 with: - python-version: '3.11' + python-version: '3.13' - name: Setup Git run: | @@ -91,7 +91,7 @@ jobs: run: | pnpm install - - name: Load surfer CI setup + - name: Load Surfer CI setup run: pnpm surfer ci --brand ${{ inputs.release-branch }} --display-version ${{ inputs.build-version }} - name: Download Firefox source and dependencies diff --git a/.github/workflows/pr-test.yml b/.github/workflows/pr-test.yml index 1b339c370..0d501964b 100644 --- a/.github/workflows/pr-test.yml +++ b/.github/workflows/pr-test.yml @@ -2,8 +2,6 @@ name: Pull request test on: pull_request: - branches: - - dev jobs: pr-test: diff --git a/.github/workflows/windows-release-build.yml b/.github/workflows/windows-release-build.yml index 794f5631c..49cfd5f21 100644 --- a/.github/workflows/windows-release-build.yml +++ b/.github/workflows/windows-release-build.yml @@ -30,7 +30,7 @@ jobs: arch: [x86_64, x86_64-v3, aarch64] steps: - - name: Free Disk Space (Ubuntu) + - name: Free disk space uses: jlumbroso/free-disk-space@main with: tool-cache: false @@ -115,7 +115,7 @@ jobs: - name: Setup Rust run: | cd engine/ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain 1.79 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh source $HOME/.cargo/env if test "${{ matrix.arch }}" = "aarch64"; then rustup target add aarch64-pc-windows-msvc @@ -123,7 +123,7 @@ jobs: rustup target add x86_64-pc-windows-msvc fi cargo install cargo-download - cargo download -x windows=0.58.0 + cargo download -x windows=0.84.0 export CARGO_INCREMENTAL=0 echo "" >> ../configs/common/mozconfig echo "export MOZ_WINDOWS_RS_DIR=$(pwd)/windows-0.58.0" >> ../configs/common/mozconfig diff --git a/.python-version b/.python-version index 2c0733315..24ee5b1be 100644 --- a/.python-version +++ b/.python-version @@ -1 +1 @@ -3.11 +3.13 diff --git a/package-lock.json b/package-lock.json index 5abbe763f..d2d870199 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,12 +9,12 @@ "version": "1.0.0", "license": "ISC", "dependencies": { - "@zen-browser/surfer": "^1.3.21" + "@zen-browser/surfer": "^1.6.4" }, "devDependencies": { - "husky": "^9.1.5", - "lint-staged": "^15.2.10", - "prettier": "^3.3.3" + "husky": "^9.1.7", + "lint-staged": "^15.2.11", + "prettier": "^3.4.2" } }, "node_modules/@oozcitak/dom": { @@ -269,9 +269,9 @@ "integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==" }, "node_modules/@zen-browser/surfer": { - "version": "1.3.21", - "resolved": "https://registry.npmjs.org/@zen-browser/surfer/-/surfer-1.3.21.tgz", - "integrity": "sha512-hFblYgr4/rlfoJ75kcRPY03wG8HA8XT6dRZLEwdD7e5b8YazCWRlXMof0NhFC5a1Z0e1FZ+sRCxMG52ZygoVzw==", + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/@zen-browser/surfer/-/surfer-1.6.4.tgz", + "integrity": "sha512-JmTHLHTbTLPgrakdU/m1KQgetPMQNGjYgGGVoi2AenvVDlJf3j+L2it0XehAqRFIQhXmbEuF1nSDV4Vla/vUUg==", "dependencies": { "@resvg/resvg-js": "^1.4.0", "async-icns": "^1.0.2", @@ -696,9 +696,9 @@ "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" }, "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -709,9 +709,9 @@ } }, "node_modules/debug": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", - "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", "dev": true, "dependencies": { "ms": "^2.1.3" @@ -1001,9 +1001,9 @@ } }, "node_modules/get-east-asian-width": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.2.0.tgz", - "integrity": "sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.3.0.tgz", + "integrity": "sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==", "dev": true, "engines": { "node": ">=18" @@ -1085,9 +1085,9 @@ } }, "node_modules/husky": { - "version": "9.1.5", - "resolved": "https://registry.npmjs.org/husky/-/husky-9.1.5.tgz", - "integrity": "sha512-rowAVRUBfI0b4+niA4SJMhfQwc107VLkBUgEYYAOQAbqDCnra1nYh83hF/MDmhYs9t9n1E3DuKOrs2LYNC+0Ag==", + "version": "9.1.7", + "resolved": "https://registry.npmjs.org/husky/-/husky-9.1.7.tgz", + "integrity": "sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==", "dev": true, "bin": { "husky": "bin.js" @@ -1290,9 +1290,9 @@ "integrity": "sha512-FJx0SNrM2rouctdOH4rATsHT+BvgyXX4LEQ+Yn9COQNPK3u4XAPp9qS7OKpRO22MeT39oxkjZkRcLnHxSmiduw==" }, "node_modules/lilconfig": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", - "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", "dev": true, "engines": { "node": ">=14" @@ -1302,21 +1302,21 @@ } }, "node_modules/lint-staged": { - "version": "15.2.10", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-15.2.10.tgz", - "integrity": "sha512-5dY5t743e1byO19P9I4b3x8HJwalIznL5E1FWYnU6OWw33KxNBSLAc6Cy7F2PsFEO8FKnLwjwm5hx7aMF0jzZg==", + "version": "15.2.11", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-15.2.11.tgz", + "integrity": "sha512-Ev6ivCTYRTGs9ychvpVw35m/bcNDuBN+mnTeObCL5h+boS5WzBEC6LHI4I9F/++sZm1m+J2LEiy0gxL/R9TBqQ==", "dev": true, "dependencies": { "chalk": "~5.3.0", "commander": "~12.1.0", - "debug": "~4.3.6", + "debug": "~4.4.0", "execa": "~8.0.1", - "lilconfig": "~3.1.2", - "listr2": "~8.2.4", + "lilconfig": "~3.1.3", + "listr2": "~8.2.5", "micromatch": "~4.0.8", "pidtree": "~0.6.0", "string-argv": "~0.3.2", - "yaml": "~2.5.0" + "yaml": "~2.6.1" }, "bin": { "lint-staged": "bin/lint-staged.js" @@ -1484,9 +1484,9 @@ } }, "node_modules/listr2": { - "version": "8.2.4", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-8.2.4.tgz", - "integrity": "sha512-opevsywziHd3zHCVQGAj8zu+Z3yHNkkoYhWIGnq54RrCVwLz0MozotJEDnKsIBLvkfLGN6BLOyAeRrYI0pKA4g==", + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-8.2.5.tgz", + "integrity": "sha512-iyAZCeyD+c1gPyE9qpFu8af0Y+MRtmKOncdGoA2S5EY8iFq99dmmvkNnHiWo+pj0s7yH7l3KPIgee77tKpXPWQ==", "dev": true, "dependencies": { "cli-truncate": "^4.0.0", @@ -1854,9 +1854,9 @@ } }, "node_modules/prettier": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", - "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.4.2.tgz", + "integrity": "sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==", "dev": true, "bin": { "prettier": "bin/prettier.cjs" @@ -2643,9 +2643,9 @@ } }, "node_modules/yaml": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.1.tgz", - "integrity": "sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q==", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.6.1.tgz", + "integrity": "sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg==", "dev": true, "bin": { "yaml": "bin.mjs" @@ -2818,9 +2818,9 @@ "integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==" }, "@zen-browser/surfer": { - "version": "1.3.21", - "resolved": "https://registry.npmjs.org/@zen-browser/surfer/-/surfer-1.3.21.tgz", - "integrity": "sha512-hFblYgr4/rlfoJ75kcRPY03wG8HA8XT6dRZLEwdD7e5b8YazCWRlXMof0NhFC5a1Z0e1FZ+sRCxMG52ZygoVzw==", + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/@zen-browser/surfer/-/surfer-1.6.4.tgz", + "integrity": "sha512-JmTHLHTbTLPgrakdU/m1KQgetPMQNGjYgGGVoi2AenvVDlJf3j+L2it0XehAqRFIQhXmbEuF1nSDV4Vla/vUUg==", "requires": { "@resvg/resvg-js": "^1.4.0", "async-icns": "^1.0.2", @@ -3137,9 +3137,9 @@ "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" }, "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "requires": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -3147,9 +3147,9 @@ } }, "debug": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", - "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", "dev": true, "requires": { "ms": "^2.1.3" @@ -3363,9 +3363,9 @@ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" }, "get-east-asian-width": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.2.0.tgz", - "integrity": "sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.3.0.tgz", + "integrity": "sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==", "dev": true }, "get-stream": { @@ -3422,9 +3422,9 @@ "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==" }, "husky": { - "version": "9.1.5", - "resolved": "https://registry.npmjs.org/husky/-/husky-9.1.5.tgz", - "integrity": "sha512-rowAVRUBfI0b4+niA4SJMhfQwc107VLkBUgEYYAOQAbqDCnra1nYh83hF/MDmhYs9t9n1E3DuKOrs2LYNC+0Ag==", + "version": "9.1.7", + "resolved": "https://registry.npmjs.org/husky/-/husky-9.1.7.tgz", + "integrity": "sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==", "dev": true }, "ieee754": { @@ -3561,27 +3561,27 @@ "integrity": "sha512-FJx0SNrM2rouctdOH4rATsHT+BvgyXX4LEQ+Yn9COQNPK3u4XAPp9qS7OKpRO22MeT39oxkjZkRcLnHxSmiduw==" }, "lilconfig": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", - "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", "dev": true }, "lint-staged": { - "version": "15.2.10", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-15.2.10.tgz", - "integrity": "sha512-5dY5t743e1byO19P9I4b3x8HJwalIznL5E1FWYnU6OWw33KxNBSLAc6Cy7F2PsFEO8FKnLwjwm5hx7aMF0jzZg==", + "version": "15.2.11", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-15.2.11.tgz", + "integrity": "sha512-Ev6ivCTYRTGs9ychvpVw35m/bcNDuBN+mnTeObCL5h+boS5WzBEC6LHI4I9F/++sZm1m+J2LEiy0gxL/R9TBqQ==", "dev": true, "requires": { "chalk": "~5.3.0", "commander": "~12.1.0", - "debug": "~4.3.6", + "debug": "~4.4.0", "execa": "~8.0.1", - "lilconfig": "~3.1.2", - "listr2": "~8.2.4", + "lilconfig": "~3.1.3", + "listr2": "~8.2.5", "micromatch": "~4.0.8", "pidtree": "~0.6.0", "string-argv": "~0.3.2", - "yaml": "~2.5.0" + "yaml": "~2.6.1" }, "dependencies": { "chalk": { @@ -3676,9 +3676,9 @@ } }, "listr2": { - "version": "8.2.4", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-8.2.4.tgz", - "integrity": "sha512-opevsywziHd3zHCVQGAj8zu+Z3yHNkkoYhWIGnq54RrCVwLz0MozotJEDnKsIBLvkfLGN6BLOyAeRrYI0pKA4g==", + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-8.2.5.tgz", + "integrity": "sha512-iyAZCeyD+c1gPyE9qpFu8af0Y+MRtmKOncdGoA2S5EY8iFq99dmmvkNnHiWo+pj0s7yH7l3KPIgee77tKpXPWQ==", "dev": true, "requires": { "cli-truncate": "^4.0.0", @@ -3943,9 +3943,9 @@ } }, "prettier": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", - "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.4.2.tgz", + "integrity": "sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==", "dev": true }, "process-nextick-args": { @@ -4542,9 +4542,9 @@ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" }, "yaml": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.1.tgz", - "integrity": "sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q==", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.6.1.tgz", + "integrity": "sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg==", "dev": true }, "zip": { diff --git a/package.json b/package.json index 14a77dbf4..b1c355467 100644 --- a/package.json +++ b/package.json @@ -36,8 +36,8 @@ "@zen-browser/surfer": "^1.6.4" }, "devDependencies": { - "husky": "^9.1.5", - "lint-staged": "^15.2.10", - "prettier": "^3.3.3" + "husky": "^9.1.7", + "lint-staged": "^15.2.11", + "prettier": "^3.4.2" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 46a49dd57..828598eb7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,14 +13,14 @@ importers: version: 1.6.4 devDependencies: husky: - specifier: ^9.1.5 - version: 9.1.5 + specifier: ^9.1.7 + version: 9.1.7 lint-staged: - specifier: ^15.2.10 - version: 15.2.10 + specifier: ^15.2.11 + version: 15.2.11 prettier: - specifier: ^3.3.3 - version: 3.3.3 + specifier: ^3.4.2 + version: 3.4.2 packages: @@ -269,12 +269,12 @@ packages: core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} - debug@4.3.7: - resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} + debug@4.4.0: + resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} engines: {node: '>=6.0'} peerDependencies: supports-color: '*' @@ -418,8 +418,8 @@ packages: resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} engines: {node: '>=16.17.0'} - husky@9.1.5: - resolution: {integrity: sha512-rowAVRUBfI0b4+niA4SJMhfQwc107VLkBUgEYYAOQAbqDCnra1nYh83hF/MDmhYs9t9n1E3DuKOrs2LYNC+0Ag==} + husky@9.1.7: + resolution: {integrity: sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==} engines: {node: '>=18'} hasBin: true @@ -448,8 +448,8 @@ packages: resolution: {integrity: sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==} engines: {node: '>=0.10.0'} - is-apple-silicon@https://codeload.github.com/trickypr/is-apple-silicon/tar.gz/5f75501a1d7566ba9f94174b6825d7bd9d302b6a: - resolution: {tarball: https://codeload.github.com/trickypr/is-apple-silicon/tar.gz/5f75501a1d7566ba9f94174b6825d7bd9d302b6a} + is-apple-silicon@git+https://git@github.com:trickypr/is-apple-silicon.git#5f75501a1d7566ba9f94174b6825d7bd9d302b6a: + resolution: {commit: 5f75501a1d7566ba9f94174b6825d7bd9d302b6a, repo: git@github.com:trickypr/is-apple-silicon.git, type: git} version: 1.0.1 is-arrayish@0.3.2: @@ -521,17 +521,17 @@ packages: lifecycle@1.0.4: resolution: {integrity: sha512-FJx0SNrM2rouctdOH4rATsHT+BvgyXX4LEQ+Yn9COQNPK3u4XAPp9qS7OKpRO22MeT39oxkjZkRcLnHxSmiduw==} - lilconfig@3.1.2: - resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==} + lilconfig@3.1.3: + resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} engines: {node: '>=14'} - lint-staged@15.2.10: - resolution: {integrity: sha512-5dY5t743e1byO19P9I4b3x8HJwalIznL5E1FWYnU6OWw33KxNBSLAc6Cy7F2PsFEO8FKnLwjwm5hx7aMF0jzZg==} + lint-staged@15.2.11: + resolution: {integrity: sha512-Ev6ivCTYRTGs9ychvpVw35m/bcNDuBN+mnTeObCL5h+boS5WzBEC6LHI4I9F/++sZm1m+J2LEiy0gxL/R9TBqQ==} engines: {node: '>=18.12.0'} hasBin: true - listr2@8.2.4: - resolution: {integrity: sha512-opevsywziHd3zHCVQGAj8zu+Z3yHNkkoYhWIGnq54RrCVwLz0MozotJEDnKsIBLvkfLGN6BLOyAeRrYI0pKA4g==} + listr2@8.2.5: + resolution: {integrity: sha512-iyAZCeyD+c1gPyE9qpFu8af0Y+MRtmKOncdGoA2S5EY8iFq99dmmvkNnHiWo+pj0s7yH7l3KPIgee77tKpXPWQ==} engines: {node: '>=18.0.0'} lodash.compact@3.0.1: @@ -674,8 +674,8 @@ packages: engines: {node: '>=10'} hasBin: true - prettier@3.3.3: - resolution: {integrity: sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==} + prettier@3.4.2: + resolution: {integrity: sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==} engines: {node: '>=14'} hasBin: true @@ -919,8 +919,8 @@ packages: resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} engines: {node: '>=0.4'} - yaml@2.5.1: - resolution: {integrity: sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q==} + yaml@2.6.1: + resolution: {integrity: sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg==} engines: {node: '>= 14'} hasBin: true @@ -1015,7 +1015,7 @@ snapshots: fast-extract: 1.1.0 fs-extra: 10.1.0 ini: 3.0.1 - is-apple-silicon: https://codeload.github.com/trickypr/is-apple-silicon/tar.gz/5f75501a1d7566ba9f94174b6825d7bd9d302b6a + is-apple-silicon: git+https://git@github.com:trickypr/is-apple-silicon.git#5f75501a1d7566ba9f94174b6825d7bd9d302b6a kleur: 4.1.5 modern-async: 1.1.4 mount-dmg: 1.0.1 @@ -1172,13 +1172,13 @@ snapshots: core-util-is@1.0.3: {} - cross-spawn@7.0.3: + cross-spawn@7.0.6: dependencies: path-key: 3.1.1 shebang-command: 2.0.0 which: 2.0.2 - debug@4.3.7: + debug@4.4.0: dependencies: ms: 2.1.3 @@ -1213,7 +1213,7 @@ snapshots: execa@5.1.1: dependencies: - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 get-stream: 6.0.1 human-signals: 2.1.0 is-stream: 2.0.1 @@ -1225,7 +1225,7 @@ snapshots: execa@8.0.1: dependencies: - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 get-stream: 8.0.1 human-signals: 5.0.0 is-stream: 3.0.0 @@ -1332,7 +1332,7 @@ snapshots: human-signals@5.0.0: {} - husky@9.1.5: {} + husky@9.1.7: {} ieee754@1.2.1: {} @@ -1354,7 +1354,7 @@ snapshots: is-relative: 1.0.0 is-windows: 1.0.2 - is-apple-silicon@https://codeload.github.com/trickypr/is-apple-silicon/tar.gz/5f75501a1d7566ba9f94174b6825d7bd9d302b6a: {} + is-apple-silicon@git+https://git@github.com:trickypr/is-apple-silicon.git#5f75501a1d7566ba9f94174b6825d7bd9d302b6a: {} is-arrayish@0.3.2: {} @@ -1407,24 +1407,24 @@ snapshots: lifecycle@1.0.4: {} - lilconfig@3.1.2: {} + lilconfig@3.1.3: {} - lint-staged@15.2.10: + lint-staged@15.2.11: dependencies: chalk: 5.3.0 commander: 12.1.0 - debug: 4.3.7 + debug: 4.4.0 execa: 8.0.1 - lilconfig: 3.1.2 - listr2: 8.2.4 + lilconfig: 3.1.3 + listr2: 8.2.5 micromatch: 4.0.8 pidtree: 0.6.0 string-argv: 0.3.2 - yaml: 2.5.1 + yaml: 2.6.1 transitivePeerDependencies: - supports-color - listr2@8.2.4: + listr2@8.2.5: dependencies: cli-truncate: 4.0.0 colorette: 2.0.20 @@ -1559,7 +1559,7 @@ snapshots: tar-fs: 2.1.1 tunnel-agent: 0.6.0 - prettier@3.3.3: {} + prettier@3.4.2: {} process-nextick-args@2.0.1: {} @@ -1835,7 +1835,7 @@ snapshots: xtend@4.0.2: {} - yaml@2.5.1: {} + yaml@2.6.1: {} zip-iterator@1.0.1: dependencies: diff --git a/scripts/download-language-packs.sh b/scripts/download-language-packs.sh index 7fa70478f..6b7f79b7b 100644 --- a/scripts/download-language-packs.sh +++ b/scripts/download-language-packs.sh @@ -1,4 +1,3 @@ - set -ex CURRENT_DIR=$(pwd) @@ -18,7 +17,7 @@ update_language() { cd $langId echo "Updating $langId" - # move the contents from ../firefox-l10n/$langId to ./l10n/$langId + # Move the contents from ../firefox-l10n/$langId to ./l10n/$langId rsync -av --progress ../firefox-l10n/$langId/ . --exclude .git cd $CURRENT_DIR @@ -44,7 +43,7 @@ rm -rf ~/tools rm -rf ~/.git-cinnabar for lang in $(cat ./l10n/supported-languages); do - # remove every file except if it starts with "zen" + # Remove every file except if it starts with "zen" find ./l10n/$lang -type f -not -name "zen*" -delete done diff --git a/scripts/update-en-US-packs.sh b/scripts/update-en-US-packs.sh index 959312753..7e37a09ad 100644 --- a/scripts/update-en-US-packs.sh +++ b/scripts/update-en-US-packs.sh @@ -1,2 +1 @@ - sh ./scripts/copy-language-pack.sh en-US diff --git a/src/ci/free-disk-space.sh b/src/ci/free-disk-space.sh new file mode 100644 index 000000000..98931a02e --- /dev/null +++ b/src/ci/free-disk-space.sh @@ -0,0 +1,168 @@ +#!/bin/bash + +printSeparationLine() { + str=${1:=} + num=${2:-80} + counter=1 + output="" + while [ $counter -le "$num" ]; do + output="${output}${str}" + counter=$((counter+1)) + done + echo "${output}" +} + +getAvailableSpace() { + echo $(df -a $1 | awk 'NR > 1 {avail+=$4} END {print avail}') +} + +formatByteCount() { + echo $(numfmt --to=iec-i --suffix=B --padding=7 $1'000') +} + +printSavedSpace() { + saved=${1} + title=${2:-} + + echo "" + printSeparationLine '*' 80 + if [ -n "${title}" ]; then + echo "=> ${title}: Saved $(formatByteCount "$saved")" + else + echo "=> Saved $(formatByteCount "$saved")" + fi + printSeparationLine '*' 80 + echo "" +} + +printDH() { + caption=${1:-} + + printSeparationLine '=' 80 + echo "${caption}" + echo "" + echo "$ df -h /" + echo "" + df -h / + echo "$ df -a /" + echo "" + df -a / + echo "$ df -a" + echo "" + df -a + printSeparationLine '=' 80 +} + +AVAILABLE_INITIAL=$(getAvailableSpace) +AVAILABLE_ROOT_INITIAL=$(getAvailableSpace '/') + +printDH "Before clean-up:" +echo "" + +BEFORE=$(getAvailableSpace) + +sudo rm -rf "$AGENT_TOOLSDIRECTORY" || true + +AFTER=$(getAvailableSpace) +SAVED=$((AFTER-BEFORE)) +printSavedSpace $SAVED "Agent tools" + +BEFORE=$(getAvailableSpace) +sudo rm -rf /usr/local/share/powershell || true +AFTER=$(getAvailableSpace) +SAVED=$((AFTER-BEFORE)) +printSavedSpace $SAVED "Powershell" + +BEFORE=$(getAvailableSpace) +sudo rm -rf /usr/local/share/chromium || true +AFTER=$(getAvailableSpace) +SAVED=$((AFTER-BEFORE)) +printSavedSpace $SAVED "Chromium" + +BEFORE=$(getAvailableSpace) +sudo rm -rf /usr/local/lib/node_modules || true +AFTER=$(getAvailableSpace) +SAVED=$((AFTER-BEFORE)) +printSavedSpace $SAVED "Node modules" + +BEFORE=$(getAvailableSpace) +sudo rm -rf /usr/share/swift || true +AFTER=$(getAvailableSpace) +SAVED=$((AFTER-BEFORE)) +printSavedSpace $SAVED "Swift" + +BEFORE=$(getAvailableSpace) +sudo rm -rf /usr/local/lib/android || true +AFTER=$(getAvailableSpace) +SAVED=$((AFTER-BEFORE)) +printSavedSpace $SAVED "Android library" + +BEFORE=$(getAvailableSpace) +sudo rm -rf /usr/share/dotnet || true +AFTER=$(getAvailableSpace) +SAVED=$((AFTER-BEFORE)) +printSavedSpace $SAVED ".NET runtime" + +BEFORE=$(getAvailableSpace) +sudo rm -rf /opt/ghc || true +sudo rm -rf /usr/local/.ghcup || true +AFTER=$(getAvailableSpace) +SAVED=$((AFTER-BEFORE)) +printSavedSpace $SAVED "Haskell runtime" + +BEFORE=$(getAvailableSpace) + +sudo apt-get remove -y '^aspnetcore-.*' || echo "::warning::The command [sudo apt-get remove -y '^aspnetcore-.*'] failed." +sudo apt-get remove -y '^dotnet-.*' --fix-missing || echo "::warning::The command [sudo apt-get remove -y '^dotnet-.*' --fix-missing] failed." +sudo apt-get remove -y '^llvm-.*' --fix-missing || echo "::warning::The command [sudo apt-get remove -y '^llvm-.*' --fix-missing] failed." +sudo apt-get remove -y 'php.*' --fix-missing || echo "::warning::The command [sudo apt-get remove -y 'php.*' --fix-missing] failed." +sudo apt-get remove -y '^mongodb-.*' --fix-missing || echo "::warning::The command [sudo apt-get remove -y '^mongodb-.*' --fix-missing] failed." +sudo apt-get remove -y '^mysql-.*' --fix-missing || echo "::warning::The command [sudo apt-get remove -y '^mysql-.*' --fix-missing] failed." +sudo apt-get remove -y azure-cli --fix-missing || echo "::warning::The command [sudo apt-get remove -y azure-cli --fix-missing] failed." +sudo apt-get remove -y google-cloud-sdk --fix-missing || echo "::warning::The command [sudo apt-get remove -y google-chrome-stable --fix-missing] failed." +sudo apt-get remove -y firefox --fix-missing || echo "::warning::The command [sudo apt-get remove -y firefox --fix-missing] failed." +sudo apt-get remove -y powershell --fix-missing || echo "::warning::The command [sudo apt-get remove -y powershell --fix-missing] failed." +sudo apt-get remove -y mono-devel --fix-missing || echo "::warning::The command [sudo apt-get remove -y mono-devel --fix-missing] failed." +sudo apt-get remove -y libgl1-mesa-dri --fix-missing || echo "::warning::The command [sudo apt-get remove -y libgl1-mesa-dri --fix-missing] failed." +sudo apt-get remove -y google-cloud-sdk --fix-missing || echo "::debug::The command [sudo apt-get remove -y google-cloud-sdk --fix-missing] failed." +sudo apt-get remove -y google-cloud-cli --fix-missing || echo "::debug::The command [sudo apt-get remove -y google-cloud-cli --fix-missing] failed." +sudo apt-get remove -y microsoft-edge-stable --fix-missing || echo "::debug::The command [sudo apt-get remove -y microsoft-edge-stable --fix-missing] failed." +sudo apt-get remove -y snapd --fix-missing || echo "::debug::The command [sudo apt-get remove -y snapd --fix-missing] failed." +sudo apt-get autoremove -y || echo "::warning::The command [sudo apt-get autoremove -y] failed." +sudo apt-get clean || echo "::warning::The command [sudo apt-get clean] failed." + +AFTER=$(getAvailableSpace) +SAVED=$((AFTER-BEFORE)) +printSavedSpace $SAVED "Large misc. packages" + +BEFORE=$(getAvailableSpace) +sudo docker image prune --all --force || true +AFTER=$(getAvailableSpace) +SAVED=$((AFTER-BEFORE)) +printSavedSpace $SAVED "Docker images" + +BEFORE=$(getAvailableSpace) +sudo rm -rf "$AGENT_TOOLSDIRECTORY" || true +AFTER=$(getAvailableSpace) +SAVED=$((AFTER-BEFORE)) +printSavedSpace $SAVED "Tool cache" + +BEFORE=$(getAvailableSpace) +sudo swapoff -a || true +sudo rm -rf /mnt/swapfile || true +free -h +AFTER=$(getAvailableSpace) +SAVED=$((AFTER-BEFORE)) +printSavedSpace $SAVED "Swap storage" + +AVAILABLE_END=$(getAvailableSpace) +AVAILABLE_ROOT_END=$(getAvailableSpace '/') + +echo "" +printDH "After clean-up:" + +echo "" +echo "/dev/root:" +printSavedSpace $((AVAILABLE_ROOT_END - AVAILABLE_ROOT_INITIAL)) +echo "Overall:" +printSavedSpace $((AVAILABLE_END - AVAILABLE_INITIAL))