為 xl3 貢獻
xl3 是 XTL 規範的 TypeScript 參考實作。本檔同時涵蓋實作與規範的貢獻路徑。
在 0.x 階段,本專案由單一作者維護。歡迎貢獻,但規範變更的門檻較高 — XTL 致力成為穩定、語言中立的標準。
決策方式請見 GOVERNANCE.md,1.0 切版的阻塞項目請見 ROADMAP.md。
快速開始
git clone https://github.com/jinyoung4478/xl3.git
cd xl3
npm install
npm test
三類貢獻
1. 實作 bug(本 repo,src/)
與規範不一致的參考實作 bug 永遠歡迎。步驟:
- 開一個議題,附最小重現範例(template.xlsx + data.xlsx + 觀察到 vs 預期輸出)。
- 若有修正,送 PR 並在
src/__tests__/加上回歸測試。
若 bug 屬於「實作符合規範但規範錯了」,請見 (3)。
2. 規範問題與澄清(spec/)
規範具規範性。若你發現未定義清楚的行為:
- 開一個議題並貼上
spec標籤。 - 若答案很小(錯字、澄清),歡迎直接 PR。
- 若答案牽涉設計決策,維護者會在
spec/decisions/草擬 ADR。
3. 符合性測試案例(conformance/fixtures/)
符合性語料庫是 XTL 的可執行定義。這裡的測試案例比任何單一實作都更長壽。撰寫前請先讀 conformance/AUTHORING.md。
首要規則:預期輸出依規範撰寫,不從 JS 實作產生。 只把 JS 實作的行為紀錄下來的測試案例,會把實作凍結成事實上的規範 — 這正是 XTL 想避免的。
4. 移植到其他語言
歡迎其他語言的實作,並在 IMPLEMENTATIONS.md 追蹤。要列入移植:
- 依規範實作,不要依 JS 實作。
- 依
conformance/runner-protocol.md跑你的實作通過符合性語料庫。 - 送 PR 在
IMPLEMENTATIONS.md新增一列。