Closed kachick closed 1 year ago
自分が開発しているリポジトリに nix ファイル置くと凄い便利なのはわかったけれど、そのツールを積極的に開発するわけでもないリポジトリになんで nix 置きたがるんだ? nixpkgs 側にだけ置けば良いのでは? と思ってたけど、なんとなくわかってきた。まだ experimental 扱いらしい flake.nix をリポジトリに置いてビルドステップだとか実行時依存性を記述しておくと、外から nix run github~ とかでインストールとかなんも考えずワンショット実行できるのめっちゃ便利だった。
革命なのでは・・・(大げさ?)
しかし flake はあくまで experimental と謳っているので、どっかで大きく方向転換されて全部おしゃかになると面倒だから stable リリース待ったほうが良いんかなー と思ってたら、そのへん突っつくスレッドがあった。 https://discourse.nixos.org/t/why-are-flakes-still-experimental/29317/12
そうなんだ、 niv 気になるながら使ってなかったけど、これと対になるものだったのか?
flake 前提であるところも含めて、今一から使い出すときの学習資料としては https://zero-to-nix.com/start がいいらしい
https://github.com/kachick/times_kachick/issues/226 を作ったところの人たちが書いたっぽい?
しかし flake 擁護派と否定派?に熾烈な対立があるようで・・・ https://discourse.nixos.org/t/introducing-flakehub/32044 推進派なら本体へ貢献しろよ的な言葉が飛び交っていて怖い。そしてその叩かれているのが zero to nix とかの人たちなんだよなぁ
恐らく最初期の flake 仕様調整と実装は(多分)ファウンダー自らの手で為されている https://github.com/NixOS/rfcs/pull/49 => https://github.com/NixOS/nix/pull/3573
この人は今 https://github.com/DeterminateSystems の一員のようなので、flake推進してるのもわかるし、当面 「flakeはやっぱ無し」となることも考えにくい気はする
flake がなぜ物議を醸すのかについて詳述されてるのを初めて見つけた https://github.com/NixOS/nix.dev/blob/f32c85e0968c4bd8861df1ecf9f1e77831207009/source/concepts/flakes.md?plain=1#L48-L116
https://discourse.nixos.org/t/how-to-use-pnpm-with-recent-nodejs/21867/3?u=kachick
nix shell nixpkgs#nodejs_21.pkgs.pnpm -c pnpm exec node --version
この人は今
やりがちだけれどこういうメタ読みみたいなのはやってて嫌な気分になる類の生活の知恵なのでやらずに済むようにはなりたい
https://github.com/kachick/times_kachick/issues/204 で書いたようにわからんなりに nix 使ってて環境構築周りが大変楽になった(Mac だとOSアップデートの度にぶっ壊れるのでそうもいかんけど) ただ自分のリポジトリでは default.nix なり shell.nix なり flake.nix ? なり置けば良いと思うんだけど、そもそも nix を使っているOSSプロジェクトがそんなには無い印象 なんとなくわかる気もして、CIでうまい事 Cachix とかいう外部のキャッシュサービスと連携でもさせないと毎回ビルドするのでCI/CDが大変重くなる。自分はまだうまい事連携出来てない なので使うツールセットによっては結局専用の setup-* action なりバイナリダウンロードなり asdf を使う方がマシとなる。 カチッと固めたいとこはそれはそれで Docker ファイルを置くという派閥の方が多そうだし
そういうとこでも、便利だから置いてくれ!と nix ファイルを置くようなPRは見たことあるけど自分が nix へそんな詳しくないしそういうモチベーションはあんまない なので、このリポジトリに対しては置いときたいな・・・と思ったら代わりにメモする場所としてここを使おう 数が増えたらそういうリポジトリを立てても良いかもしんない
というのを、昨日今日で他人のブログ弄ってて思った
nix-shell --packages nodejs-18_x yarn mongosh sbt python3 gcc python311Packages.requests --command zsh
~ => https://github.com/kachick/lishogi-devenvnix-shell --packages go_1_18 --command zsh
nix-shell --packages hugo go_1_20 actionlint peco --command zsh
~ -> コミッタになったので置かせてもらったnix-shell --packages go_1_19 golangci-lint goreleaser nodejs-18_x --command zsh