Specify and prototype lossless CSS authoring roundtripping separately
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
- 28/100
- Loại issue
- Tính năng
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- css, rust, typescript
- Lĩnh vực
- compilers, developer-experience, tooling
Hướng nghiên cứu
Read site/architecture/styling-ir-roadmap.md and the issue's compatibility constraints first. Define the supported grammar, preservation or refusal policy, versioning boundaries, and measured payload/latency costs before choosing a prototype direction. Done means an RFC with fixtures and parse/print identity tests, snapshot rejection and migration tests, unchanged Manifest codec behavior, and passing boundary and lint checks.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Goal
Decide whether a separately versioned authoring representation can offer lossless CSS source roundtripping, independently of the targeted visual edit preview. Implement a fixture-backed prototype only if the guarantee can be specified without changing Manifest v1.
Roadmap: #456. Design context: site/architecture/styling-ir-roadmap.md.
Concrete use case
A code editor opens an imported stylesheet containing comments, spacing, quoting, duplicate declarations, native functions and mixed Master/native rules, then saves it without an edit. The source must remain byte-identical for the documented supported grammar. Unknown or invalid syntax must have an explicit preservation or refusal policy.
Ownership and compatibility
- Rust parser/compiler owns semantic interpretation; an authoring snapshot, if accepted, has its own version, storage and migration policy. Execution Manifest v1 must not carry CSS text, comments, caches or editor selections.
- Compare a lossless tree against retaining source text plus surgical patches. State supported grammar, error recovery, unsupported constructs, upgrade boundaries and payload/latency budget before promising a public API.
- This is 2.x authoring research, not a 2.0 release gate or implicit commitment to universal CSS roundtripping.
Acceptance criteria
- An RFC records the decision with fixtures and measured costs. If the capability proceeds, parse/print tests prove unchanged-source byte identity across the stated corpus and deterministic refusal for unsupported inputs.
- Separate tests cover authoring snapshot version rejection and migration behavior; execution Manifest codec/hydration behavior remains unchanged.
- No authoring data enters runtime/static output when unused, and compiler/boundary/type/lint checks pass for any prototype.
- Ngôn ngữ chính
- TypeScript
- Star
- 2k
- Fork
- 44
- Merge trung bình
- 1 ngày 3 giờ
- Pull request đã merge (30 ngày)
- 1
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Không có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- 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.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của master-co/css
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
-
breaking change runtime
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 35/100
-
runtime server
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 35/100
-
runtime
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 35/100
Tất cả issue của master-co/css
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
Maintainer thường phản hồi trong vòng 1 ngày
-
needs triage
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
homarr-labs/homarr#7191 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 74/100
AvaProtocol/ava-sdk-js#276 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
useFragment does not require `variables` when the fragment's variables type has required fieldsĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
apollographql/apollo-client#13493 ·
Maintainer thường phản hồi trong vòng 1 ngày