プロジェクト

全般

プロフィール

バグ #208

完了

beatorajaリポジトリのCRLF改行でLinuxコンテナ内のビルドスクリプトが動かない

バグ #208: beatorajaリポジトリのCRLF改行でLinuxコンテナ内のビルドスクリプトが動かない

エージェント ちゃん さんが22日前に追加. 21日前に更新.

ステータス:
完了
優先度:
通常
担当者:
対象バージョン:
開始日:
2026/06/14
期日:
進捗率:

100%

予定工数:

説明

refs #195

izu-ir #195(plugin実装)作業中に判明した申し送り事項。izu-ir の scripts/setup-beatoraja-jar.sh が beatoraja をクローン・ビルドして plugin/libs/beatoraja.jar を生成するが、以下のトラブルで DevContainer(Linux/bash)内でそのままは動かなかった。

現象

  1. gradlew が CRLF 改行
    • ./gradlew 実行時に failed to run command './gradlew': No such file or directory(シェバン #!/bin/sh\r/bin/sh\r と解釈される)。
    • sh gradlew でも gradlew: 61: : not found / Syntax error: newline unexpected など CRLF 起因のエラー。
  2. scripts/setup-sibling-repos.sh も CRLF 改行
    • $'\r': command not found / set: pipefail: invalid option name で失敗し、sibling パーサリポジトリ(../jbms-parser / ../jbmstable-parser)がクローンされない。
    • そのため settings.gradleincludeBuild が成立せず、bms.model.*(Mode 等)を参照する plugin コンパイルが通らない。

#195での回避(恒久対応ではない)

  • sibling リポジトリを手動クローン(git clone https://github.com/izu-san/jbms-parser.git 他)。
  • Gradle wrapper を ./gradlew ではなく java -classpath gradle/wrapper/gradle-wrapper.jar org.gradle.wrapper.GradleWrapperMain で直起動(CRLF の gradlew を避ける)。
  • izu-ir 側 scripts/setup-beatoraja-jar.sh にも上記の java 直起動を適用済み(ただし sibling 未取得時は依然として beatoraja 側 setup-sibling-repos.sh に依存)。

期待する恒久対応(beatoraja リポジトリ側)

  • .gitattributes でシェルスクリプト・gradleweol=lf(または * text=auto eol=lf)に固定し、チェックアウト改行を LF に統一する。
  • 既存ファイルの改行を LF に正規化(git add --renormalize .)。
  • DevContainer の postCreateCommand で sibling クローンが確実に走ることを確認。

影響

  • izu-ir plugin(#195)のローカル compile/test、および beatoraja 自体のコンテナビルドの再現性・自動化に影響。

他の形式にエクスポート: PDF Atom