bump-cabal-index-state · git:20260521.9d7a639 · 2026-05-21 · sha256 2d49a968415a5e8e
bump-cabal-index-state git:20260521.9d7a639A
Immutable. This exact content never changes and is served at /api/v1/blob/2d49a968415a5e8e.
--- name: bump-cabal-index-state description: Update Cabal project index-state to the latest timestamp. Use when it need to bump the cabal index-state. allowed-tools: Bash(cabal build:*), Bash(cabal update:*), Bash(gh pr create:*), Bash(git add:*), Bash(git commit:*), Bash(git push:*), Bash(git status:*), Bash(git switch:*), Bash(nix flake check:*), Edit, Glob, Grep, Read, Write --- cabalプロジェクトの`index-state`を最新に更新します。 # 手順 ## ブランチの作成 PR作成に備えてブランチを作成します。 ```bash git switch -c bump-cabal-index-state ``` ## cabal updateの実行 ```bash cabal update ``` cabal updateの出力から最新の`index-state`タイムスタンプを取得します。 出力例: ```console Downloading the latest package list from hackage.haskell.org Package list of hackage.haskell.org is up to date. The index-state is set to 2026-01-11T09:48:01Z. ``` ## index-stateの更新 通常は`cabal.project`ファイルに書かれている`index-state`を更新します。 フォーマット: `index-state: YYYY-MM-DDTHH:mm:ssZ` `index-state`と日時の間にURLが入っていることも稀にあります。 もし`cabal.project`に書いていないなら、 `cabal.project.local`や`flake.nix`などに書かれている場合があります。 探して更新してください。 ## 動作確認 プロジェクトのビルドシステムに応じて動作確認を行います。 Nixを使用している場合は以下のコマンドを実行してください。 ```bash nix flake check ``` Nixを使用していない場合は以下のコマンドを実行してください。 ```bash cabal build --disable-optimization --enable-tests all ``` ### haskell.nixを使用している場合の遅れへの対応 haskell.nixは最新の`index-state`への対応に遅れがあります。 そのため最新の`index-state`を使用するとエラーになることがあります。 エラーメッセージに現在認識している最新の`index-state`が表示されます。 例: ```console > Error: [Cabal-7159] > Latest known index-state for 'hackage.haskell.org' (2026-01-05T23:03:18Z) is older than the requested index-state (2026-01-11T18:45:48Z). > Run 'cabal update' or set the index-state to a value at or before 2026-01-05T23:03:18Z. ``` このエラーが出た場合は、 エラーメッセージに記載されている最新の値を使用してください。 変更した後に再度動作確認を行ってください。 ## Gitにコミット 動作確認が成功したらGitにコミットしてください。 動作確認が成功しなければコミットは行わないで完了報告に進んでください。 コミットメッセージのタイトルは、 `build(deps): cabalのindex-stateを更新` です。 本文は以下のテンプレートに従ってください。 ```markdown `cabal.project`の`index-state`を`YYYY-MM-DDTHH:mm:ssZ`に更新しました。 ``` このテンプレートを置き換えて本文を作成してください。 `cabal.project`は実際に更新したファイル名に置き換えてください。 大抵は`cabal.project`そのままです。 `YYYY-MM-DDTHH:mm:ssZ`は実際の新しい`index-state`に置き換えてください。 ドメイン指定がある場合は`index-state`の前にスペースで囲んで、 `hackage.haskell.org`のように更新したドメインを追加してください。 ## GitHubにプルリクエストを作成する まずGitHubを利用しているか確認してください。 GitHubを利用していない場合はこの手順をスキップしてください。 GitHubを利用している場合は以下のGitコマンドでリモートリポジトリにプッシュしてください。 ```bash git push --verbose --set-upstream origin ``` その後以下のGitHub CLIコマンドでプルリクエストを作成してください。 ```bash gh pr create --assignee @me --fill --label "Type: Dependencies" --title "build(deps): cabalのindex-stateを更新" ``` # 完了報告 更新が完了したら以下を報告してください: - 動作確認が成功したか - 更新前の`index-state` - 更新後の`index-state` - haskell.nixを使用している場合、haskell.nixが認識している最新`index-state`がcabalの最新`index-state`に比べてどれぐらい遅れているか - プルリクエストを作成した場合はプルリクエストのURL