Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

rust.sh shares one CARGO_TARGET_DIR across worktrees, so a scratch-copy build poisons the next run

Đang mở Phù hợp với người mới
#906 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
2/5
Thời gian dự kiến
1-3 giờ
Mức phù hợp với người mới
68/100
Loại issue
Lỗi
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
docker, rust, shell
Lĩnh vực
build-system, tooling

Hướng nghiên cứu

Bắt đầu với scripts/rust.sh và kiểm tra cách tập lệnh thiết lập CARGO_TARGET_DIR và gắn mã nguồn. Tái hiện quy trình build được mô tả bằng một bản sao tạm thời, sau đó chạy trong worktree, rồi đánh giá cách sửa nào trong hai cách được đề xuất phù hợp với tập lệnh. Công việc hoàn tất khi lần chạy tiếp theo trong worktree không còn sử dụng các tạo phẩm lỗi thời, hoặc tập lệnh ghi rõ thay đổi cần thiết đối với mã nguồn; chạy lại bộ kiểm thử bị ảnh hưởng để xác nhận.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

scripts/rust.sh runs every build in one container with CARGO_TARGET_DIR=/target and the source mounted at /work/nostream. A build of a scratch copy of the tree — the shape a reviewer uses to prove a fix by reverting it — writes into that same target directory, and the next worktree run then reads artifacts keyed to the scratch path.

Measured during the 4.0 rewrite (006-nostream-core, round 3): a revert build followed by the worktree suite gave 51 passed / 2 failed; touch-ing the affected sources and re-running gave 53 passed / 0 failed, with no source change. The failures were stale artifacts, not defects.

Two candidate fixes:

  1. Isolate the target for a scratch run: pass CARGO_TARGET_DIR=/target-$(basename "$PWD") (or a caller-supplied CARGO_TARGET_DIR) instead of a single shared /target.
  2. Keep the shared target and document the requirement in the script header: after building anything outside the job worktree, touch the sources before the next worktree run.

(2) is a one-line comment; (1) costs a cold build per distinct path but removes the trap. The reviewer that hit it lost one round-trip and nearly reported a regression that did not exist.

Ngôn ngữ chính
TypeScript
Star
829
Fork
234
Merge trung bình
18 giờ 18 phút
Pull request đã merge (30 ngày)
69

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của cameri/nostream

Tất cả issue của cameri/nostream

Issue tương tự

Thêm issue về TypeScript

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.