apache / apache/paimon-cpp

[Bug] CI build script accepts flags as values for required options

オープン
#293 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る
bug
主要言語
C++
スター
65
フォーク
25
平均マージ
2日 12時間
マージ済み PR(30日)
80

説明

### Search before asking

- [x] I searched in the [issues](https://github.com/apache/paimon-cpp/issues) and found nothing similar.

### Paimon-cpp version

### Paimon version

Current `main` branch.

### Minimal reproduce step

Run one of the following commands:

```bash
ci/scripts/build_paimon.sh --source_dir --enable_asan

ci/scripts/build_paimon.sh \
--source_dir . \
--build_type --enable_asan

ci/scripts/build_paimon.sh \
--source_dir . \
--lint_git_target_commit --enable_asan
```

The script treats the following option as the value of the preceding option and continues until a later command fails or CMake is invoked with an invalid value.

The script also accepts unsupported build types:

```
ci/scripts/build_paimon.sh \
--source_dir . \
--build_type Profile
```

### What doesn't meet your expectations?

Options that require a value should reject an empty value or another `--option` with a clear error message.

The `--build_type` option should only accept the standard CMake build types used by the project:
- `Debug`
- `Release`
- `RelWithDebInfo`
- `MinSizeRel`
Invalid arguments should be rejected before creating build directories or invoking CMake.

The argument validation behavior is currently not covered by dedicated script-level tests.

### Anything else?

_No response_

### Are you willing to submit a PR?

- [x] I'm willing to submit a PR!

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

ci/scripts/build_paimon.sh から始め、記載されたコマンドを再現して、必須のオプション値と --build_type がどのように検証されるかを追跡します。値が欠落している場合やオプションのように見える値、サポートされていないビルドタイプについて、スクリプトレベルのカバレッジを追加します。無効な引数が、ビルドディレクトリの作成や CMake の呼び出しより前に失敗し、記載された4つの CMake ビルドタイプは引き続き受け入れられれば完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
cmake, shell
領域
build-system, cli
issue の種類
バグ
難易度
3/5
見積もり時間
1〜2日
活発さ
活発
明瞭さ
明確に書かれている
初心者へのやさしさ
74/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。