コンテンツにスキップ

ロードマップ

Cairn は 日付ベースのバージョニング YYYY.M[.PATCH] の下で 月次 minor リリース を出します。各月は準備できたものを出し、任意の 「1.0」を待つために何かを抑え込むことはしません。月次スケジュールを横断する 6 つの名前付きマイル ストーンが、カレンダーの刻みより耐久性のある約束を提供します。

スケジュールは計画であって約束ではありません。コンパイラはオープンに実装されており、遅延は起こり ます。実際に何がリリースされたかの一次情報は CHANGELOG です。

  • 月次 minor (YYYY.M.0) は月初に出します。リリース PR は cron で自動生成され、人間レビュー を経てマージされます。
  • patch (YYYY.M.N, N ≥ 1) は関連コミットが入り次第 main から切り出します。代表的な トリガーは registry/constraint pack の更新、リグレッション、セキュリティ修正です。月あたりの patch 回数に上限はありません。
  • チャネル: stable のみです。Cairn は別系統の nightly/beta を走らせません。まだ安定していない 振る舞いはリリースチャネルではなく 互換性ティア で示します。
  • バックポート: ありません。最新リリースがサポート対象です。過去の YYYY.M.* 系列にはそれ以上 の patch を当てません。

各マイルストーンは「Cairn が信頼できる形で X を実現できる」というゲートで、対応する月のリリースが 出た時点で達成と見なします。バージョン番号と切り離して名前を付けることで、月次スケジュールがずれて もロードマップの語彙が安定します。

マイルストーン達成想定そこで得られるもの
M1 — source parses2026.7.0examples/ のすべてのファイルに対して cairn parse が AST を返す
M2 — minimal build2026.10.0cairn compile が床と壁だけの単室構造に対して Java の .nbt と lockfile を書き出す
M3 — examples work2027.1.0cottage, themed-tower, villagecairn compile --edition java を通り、Minecraft でロードできる
M4 — Java/Bedrock parity2027.2.0同じ DSL ソースから両エディションの有効な出力が出る。parity 表が埋まり、エディション別 theme fallback が動く
M5 — developer experience2027.3.0cairn-lang-lsp が少なくとも 1 エディタ (VS Code) で diagnostics と completion を提供
M6 — redstone simulates2027.5.0論理レッドストーンの synthesis、place-and-route、tick simulator が揃う。redstone-door が verify される

下表は実装計画です。マイルストーンゲートを跨がない月でも月次 minor は出るので、マイルストーン表より 密になります。

リリース追加スコープ
2026.7.0cairn-lang-core の lexer/parser、cairn parse サブコマンド (AST 表示のみ)。リリース自動化が稼働。
2026.8.0Intent IR、構文バリデーション、cairn check
2026.9.0Semantic 層、materials/themes の基礎、cairn info が三軸を返す。
2026.10.0block-array pivot、Java backend (壁と床のみ)、lockfile (build.cairn.lock)。
2026.11.0cottage.crn--edition java で end-to-end コンパイルできる。
2026.12.0registry pack 取り込み、fail-loud + nearest-valid 候補。
2027.1.0examples/ 全部が Java で動く。M3
2027.2.0Bedrock backend、parity 表、エディション別 theme fallback。M4
2027.3.0cairn-lang-lsp 最小版 (diagnostics + completion)、VS Code 拡張。M5
2027.4.0レッドストーン論理層、組み合わせ回路の合成と place-and-route。
2027.5.0レッドストーン tick simulator、sequential macros、redstone-door 検証。M6
2027.6.0cairn-lang-wasm + ブラウザ playground (docs サイト上でライブコンパイル)。

2027.6.0 より先のスケジュールは意図的に描いていません。M6 まで到達すれば仕様駆動の部分はほぼ 完了し、その先は実利用のフィードバックを元にロードマップを引き直します。

スケジュールはどう守られているか

Section titled “スケジュールはどう守られているか”

リリース戦略そのものが自動化されています:

  1. 月次 minor PR は毎月 1 日 04:17 UTC の GitHub Actions cron で立ち上がります (GHA cron が 遅延・スキップしやすい時刻ちょうどを意図的に外しています)。
  2. バージョンは既存タグから計算します: vYYYY.M.* タグがまだなければ次は YYYY.M.0、 既にあれば次の patch を採ります。
  3. release-plz がバージョン bump と changelog を生成し、--version-overrides で算出した バージョンを適用して PR を開きます。
  4. 人間レビューは月次 minor で必須です。main への push から派生する patch も同じ PR フロー を辿り、マージで publish パイプラインが発火します。
  5. Publishv* タグで起動します: Linux/macOS/Windows × x86_64/aarch64 の クロスコンパイル、sigstore による署名、GitHub Release への添付、ワークスペース全 crate の cargo publish

このスケジュールを通じての互換性は、別途 互換性ティア が規定します。 .crn 構文と lockfile は Stable ルールで進化し、Rust API は M3 まで Internal (#[doc(hidden)])、その他のほとんどは当面 Evolving に置かれます。