メインコンテンツまでスキップ
バージョン: 0.3.1

更新と移行

既存プロジェクトを更新する順番​

  1. 使用中のコンパイラ、dicks.json、dicks.lock、デプロイ済み生成物を記録します。
  2. 更新対象の変更履歴を読み、言語・ホストABI・パッケージの互換性を確認します。
  3. 別ブランチでツールチェーンを更新し、dicks check を実行します。
  4. dicks audit と dicks outdated を実行し、更新する依存だけを完全一致の版で指定します。
  5. ロックの差分を確認し、アプリのテストとCloudflareのローカル検証を行います。
  6. 新しい生成物を別途ビルドして検証後に配備します。問題があれば以前の生成物とロックへ戻します。

D1のschema変更は別の移行作業です。コードのロールバックはDBを元へ戻しません。削除を伴うmigrationを依存更新に混ぜないでください。

今回のリポジトリ分離​

公式ライブラリは dicks-lang/<package>、レジストリは dicks-lang/registry、ドキュメントは dicks-lang/docs へ分かれました。既存の @dicks/* import名とパッケージの公開APIは変更していません。Gitのremoteを更新してもlockfileを無断で最新化しません。

互換性がない更新​

破壊的変更には、影響する旧コード、新コード、診断コード、必要な最小バージョン、戻す方法を変更履歴に明記します。0.xでも破壊的変更を暗黙に行いません。0.3.1が最初の正式リリースです。0.3.0候補は公開前の検証で止まり、公開リリースには含めません。0.2.0は開発スナップショットで、過去の正式バージョンとして扱いません。

0.3.1のAPI・Web・メール対応​

0.3.1は0.3.0候補とAPI互換です。ライブラリ側で0.3.0を基準に記載した契約も維持します。実際の導入には初回正式バージョン0.3.1を使用してください。

言語0.3.1、@dicks/browser@0.2.0、@dicks/email@0.2.0、@dicks/cloudflare@0.3.0を組み合わせます。既存module/cloudflare/discordターゲットと57命令の意味は維持します。新しいターゲットとホスト拡張を古いコンパイラへ混ぜないでください。ツールチェーン更新後はcompiler identityが変わるため、dicks lock・check・buildを実行します。既存のdicks.lockと配備物はロールバック用に保持してください。

emailを使うWorkerにはpostal-mime@4.0.11、html-to-text@10.0.1、jose@6.2.12を別途固定します。依存導入はAccess・DNS・DB・送信元bindingを自動で作成しません。新しい認証や本番migrationはアプリごとに確認します。browserの通信は同一originに限定され、SSR・React互換・ファイル入力・ネイティブUIは未実装です。