https://mastodon.cardina1.red/@lo48576/112871716610678321
ほーらちょっと組み合わせを用意しただけであっという間に36パターンできた (死)
白状すると、こんな感じのことを普通に GitLab だか GitHub だかのリポジトリでやらかして、 CI の無料分リソースをあっという間に食い尽くした経験があります (すまんかった)
本格的にやる場合は、 feature flag の組み合わせがもっと派手になって、まず基本が
- (empty)
- default
- (all-features)
- alloc
- std
- serde
- serde,alloc
- serde,std
で、これに加えて (というか掛けて) 固有のフラグの設定をいくらか (reader, writer, tree, みたいな) という感じなので、まあ死にます。
features の組み合わせだけでも絞りまくるしかない
ひとつ考えられるのは型検査オンリーの検査 (cargo check / cargo clippy) とテスト実行を分離してテストは少数の組み合わせで済ます方法なのだが、これもこれで cargo check や cargo clippy が生成したキャッシュが cargo build を高速化するので、分離したらしたで実行時間が余計にかかることになりかねない
どうにか削って feature あたり8通り + オマケ(今のところ3) にまで抑えたが、まだ多いな……
どうにかもなにも beta toolchain で実行する組み合わせを減らしただけだが
ソースを追っていて判明したのだが、どうやら組み合わせの数には制限があって25かそこらが限界らしい (手元の実験では27で切られた)
何かというと、36通りとかを一度に matrix で作るのは無理ということです (困るよ〜) (←普通にリソース食いすぎなのでやめろ)