Decide (post-v5): fix/undo/sync command model and exit 0 when there is nothing to undo

Đang mở
#1,352 2 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ó
5/5
Thời gian dự kiến
Hơn một tuần
Mức phù hợp với người mới
12/100
Loại issue
Tái cấu trúc
Độ rõ ràng
Cần làm rõ
Mức độ hoạt động
Sôi nổi
Công nghệ
cli, rust
Lĩnh vực
cli

Hướng nghiên cứu

This is a design decision, not a ready change: the maintainer must first settle the new command model and the exit codes for an empty project. Read the per-command table in #1088 and the tests the issue names (in_process_rollback_hosted.rs, mode_migration_vlt.rs, e2e_redirect_vlt_build.rs around L1185-1210). Done means a maintainer decision is recorded, and only then can the tests that pin exit 1 be updated.

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

Mô tả

agent:needs-human agent:triaged arch-audit priority:p3 refactor ux

[agent] Split out of #1088. The maintainer's 2026-10-09 triage narrowed #1088's v5 scope to "a bare scan/get keeps the project's mode" (PR #1317). The other two questions from #1088 are not release requirements, so they are tracked here, without v5-blocker.

Q1, option 3: new command model (next major)

New Replaces
read-only scan today's scan --dry-run
fix [TARGET…] [--mode M] scan (write) and get
undo [TARGET…] rollback, remove and vendor --revert
sync apply, repair and scan --prune
check apply --check and vendor --check

The old verbs would stay as aliases for one major. This is blocked by the C11/C12 engine split (#843, #894). See #1088 for the full rationale (register C34).

Q2: "nothing to undo" exits differently per command (register C74)

On a project with no patch state (a fresh project, or one that a full rollback just emptied), list, apply and vendor --revert exit 0, but rollback and repair exit 1 (manifest_not_found, and rollback uses the legacy {"status":"error","error":"Manifest not found"} shape). So a second rollback exits 1. #1088 has the per-command table and repro.

The proposal (#1088 option A):

  • rollback on an empty project returns status: success with zero counts.
  • repair on an empty project matches apply (noManifest, exit 0).
  • remove <target> with no match keeps exit 1 (not_found).

Tests that pin today's exit 1: in_process_rollback_hosted.rs, mode_migration_vlt.rs, e2e_redirect_vlt_build.rs (L1185-1210) and the covgap rollback/repair suites.

Both parts need a maintainer decision before implementation.

Ngôn ngữ chính
Rust
Star
9
Fork
2
Merge trung bình
18 giờ 47 phút
Pull request đã merge (30 ngày)
637

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 SocketDev/socket-patch

Tất cả issue của SocketDev/socket-patch

Issue tương tự

Thêm issue về Rust

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.