はじめての問題パック Preview
Problem Pack は、公開カタログへ登録せず、企業内の問題やイベント終了後に公開する予定の問題を配布・開催するための単位です。install は不変な revision を保存し、Cloud は有効化済みの AWS/CloudFormation 問題を次の配置で読み込みます。Local は Pack store を直接読まず、手元の problems/ にある対応問題を読みます。公開は作成者が別途判断します。
既存 pack を扱う場合は既存パックを使うへ進みます。
前提条件
Bun 1.3.11 と依存関係を準備し、TenkaCloud のルートで実行します。ローカルディレクトリの操作にはクラウド認証情報は不要です。Git からの install は指定した HTTPS repository へ接続します。
雛形を作る
make pack-init ARGS="./my-first-pack"
manifest、問題一つ、artifact の仮ファイル、README を作成します。仮ファイルのままでは完成した競技ではありません。
契約を検証する
make pack-validate ARGS="./my-first-pack"
metadata、runtime 宣言、ファイルを検証します。配置、採点、参加者のプレイ確認は行いません。問題を実装し、その問題のテストを実行してください。
ローカルへ保存して確認する
make pack-install ARGS="./my-first-pack"
make pack-list
bun run pack inspect com.example.starter@0.1.0
Git install は HTTPS URL と完全な 40 桁 commit SHA を使います。source provenance と content digest を保持し、変更される branch を revision にしないでください。
開催環境へ接続する
Cloud ではリポジトリのルートで次を実行します。<id@version> は manifest の ID と version に置き換えます。
bun run pack activate <id@version> --tenant local
local は Cloud のカタログ読込処理が使う固定の選択名で、Local 開催を指定する値ではありません。保存先は .tenkacloud/pack-store です。make pack-activate はありません。activate 自体は AWS 操作を行いません。通常の Cloud 配置でこの store が非公開の source archive に含まれ、有効化した問題と実行素材が読み込まれます。開催間に make deploy で更新し、新しい大会で対象問題を選びます。既存大会の保存済みカタログは変わりません。問題の runtime と採点対応を確認し、開催前に解答・採点・撤収をリハーサルしてください。
Local では Pack store から大会カタログへの接続は未対応です。公開せずに使う対応 Docker/Compose 問題は手元の problems/ に作成し、検証して make local で起動します。AWS 問題は Cloud で使います。非公開 Git repository から取得する場合は、運営者が権限を持つ方法で手元へ checkout し、そのローカルディレクトリを install してください。Pack CLI の Git 取得は認証情報を使いません。
よくある検証失敗
PACK_DIR_MISSING、MANIFEST_INVALID、ID 重複、artifact 欠落は pack 内を修正します。クラウド配置では解決しません。検証エラーを参照してください。
保存した revision を除く
bun run pack remove com.example.starter@0.1.0
activation や参照が残っている場合は拒否されます。先に内容を確認してください。pack の削除は、問題環境やクラウド基盤の撤収ではありません。