Skip to content

Lượt kiểm hằng tuần ​

Thay cho "nightly" và Dependabot: một lượt chạy trên máy của chủ dự án, $0 phút Actions.

npm run weekly (scripts/weekly.mjs) chạy bằng LaunchAgent của macOS (StartCalendarInterval Chủ nhật 22:00; Mac ngủ thì chạy khi thức), trong một worktree riêng luôn kéo về origin/main.

Các bước ​

  1. npm install, npm run check:report (không chặn).
  2. scripts/deps-upgrade.mjs, trong cây sạch:
    • npx npm-check-updates@<bản ghim> --workspaces --root --target minor --reject <gói giữ> rồi -u.
    • Xoá trong package-lock.json mọi mục của gói vừa nâng, kể cả bản lồng */node_modules/<tên>. Nếu không, npm báo ERESOLVE với nhóm gói ghim chính xác và peer lẫn nhau.
    • npm install, npm audit fix (chỉ bản vá không phá; exit 1 khi còn advisory là bình thường).
    • typecheck, lint, unit test, build toàn repo. Đỏ thì ghi lại đúng bytes cũ của mọi package.json + lockfile rồi npm install.
    • Gỡ dependency không ai import bằng Knip (npx knip@<bản ghim> --dependencies --fix, cấu hình knip.jsonc; JSON thường không nhận khoá $comment), chỉ giữ thay đổi khi typecheck + build xanh.
    • Liệt kê bản major và GitHub Action có major mới, không tự nâng. Gói phải đứng yên ghi trong scripts/deps-hold.json kèm lý do, chặn theo ranh giới >x.y.z chứ không theo bản đã đo.
  3. npm audit --omit=dev --audit-level=high: báo.
  4. E2E: khoảng 10% spec quan trọng nhất (danh sách ở scripts/lib/weekly-e2e.mjs, theo từng app). Đường dẫn không tồn tại thì đỏ to, để đổi tên spec không làm bộ thu nhỏ lặng lẽ (bẫy 5).
  5. Nâng xanh + E2E xanh → tự commit chore(deps): ... và push lên main. Kết quả: thông báo macOS + log.
  6. Trong script shell của LaunchAgent: rc=$? ngay sau lệnh, trước mọi $(...) (bẫy 4).

Dependabot ​

Xoá .github/dependabot.yml: PR không ai gộp, và mỗi push lên PR tốn một lượt CI. Giữ Dependabot alerts (cảnh báo bảo mật, không mở PR).

Ở Conan hôm nay ​

Không có lượt hằng tuần. Nâng gói làm tay theo đợt (PR #316 minor/patch, #318 major, 03.10.2026), có hook deps-docs-guard và gác lockfiles (npm ci --dry-run nghiêm ở 30 thư mục). Không có Dependabot, Renovate hay Knip. Không có E2E nào.

Máy của chủ dự án đã chạy đúng mẫu LaunchAgent này cho Nemo12 (com.nemo12.weekly-check, Chủ nhật 22:00). Một LaunchAgent khác (com.nemo12.disk-cleanup, Chủ nhật 03:00) xoá node_modules không đụng 21 ngày ở mọi thư mục dưới ~/ConanCode, gồm cả repo này. Xem Audit, mục 6.