Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

2023-06-13 - nix 使ってない他人のリポジトリに nix ファイル置かせて貰うの気が引けるのでメモる #221

Closed
kachick opened this issue Jun 13, 2023 · 9 comments

Comments

@kachick
Copy link
Owner

kachick commented Jun 13, 2023

#204 で書いたようにわからんなりに nix 使ってて環境構築周りが大変楽になった(Mac だとOSアップデートの度にぶっ壊れるのでそうもいかんけど)
ただ自分のリポジトリでは default.nix なり shell.nix なり flake.nix ? なり置けば良いと思うんだけど、そもそも nix を使っているOSSプロジェクトがそんなには無い印象
なんとなくわかる気もして、CIでうまい事 Cachix とかいう外部のキャッシュサービスと連携でもさせないと毎回ビルドするのでCI/CDが大変重くなる。自分はまだうまい事連携出来てない
なので使うツールセットによっては結局専用の setup-* action なりバイナリダウンロードなり asdf を使う方がマシとなる。
カチッと固めたいとこはそれはそれで Docker ファイルを置くという派閥の方が多そうだし

そういうとこでも、便利だから置いてくれ!と nix ファイルを置くようなPRは見たことあるけど自分が nix へそんな詳しくないしそういうモチベーションはあんまない
なので、このリポジトリに対しては置いときたいな・・・と思ったら代わりにメモする場所としてここを使おう
数が増えたらそういうリポジトリを立てても良いかもしんない

というのを、昨日今日で他人のブログ弄ってて思った

@kachick
Copy link
Owner Author

kachick commented Jul 25, 2023

自分が開発しているリポジトリに nix ファイル置くと凄い便利なのはわかったけれど、そのツールを積極的に開発するわけでもないリポジトリになんで nix 置きたがるんだ? nixpkgs 側にだけ置けば良いのでは?
と思ってたけど、なんとなくわかってきた。まだ experimental 扱いらしい flake.nix をリポジトリに置いてビルドステップだとか実行時依存性を記述しておくと、外から nix run github~ とかでインストールとかなんも考えずワンショット実行できるのめっちゃ便利だった。

革命なのでは・・・(大げさ?)

@kachick
Copy link
Owner Author

kachick commented Aug 2, 2023

しかし flake はあくまで experimental と謳っているので、どっかで大きく方向転換されて全部おしゃかになると面倒だから stable リリース待ったほうが良いんかなー
と思ってたら、そのへん突っつくスレッドがあった。 https://discourse.nixos.org/t/why-are-flakes-still-experimental/29317/12

そうなんだ、 niv 気になるながら使ってなかったけど、これと対になるものだったのか?

@kachick
Copy link
Owner Author

kachick commented Aug 2, 2023

flake 前提であるところも含めて、今一から使い出すときの学習資料としては https://zero-to-nix.com/start がいいらしい

#226 を作ったところの人たちが書いたっぽい?

kachick added a commit to kachick/nix-flake-pinact that referenced this issue Oct 3, 2023
kachick added a commit to kachick/nix-flake-pinact that referenced this issue Oct 3, 2023
@kachick
Copy link
Owner Author

kachick commented Feb 28, 2024

しかし flake 擁護派と否定派?に熾烈な対立があるようで・・・ https://discourse.nixos.org/t/introducing-flakehub/32044
推進派なら本体へ貢献しろよ的な言葉が飛び交っていて怖い。そしてその叩かれているのが zero to nix とかの人たちなんだよなぁ

@kachick
Copy link
Owner Author

kachick commented Mar 16, 2024

恐らく最初期の flake 仕様調整と実装は(多分)ファウンダー自らの手で為されている NixOS/rfcs#49 => NixOS/nix#3573

この人は今 https://github.com/DeterminateSystems の一員のようなので、flake推進してるのもわかるし、当面 「flakeはやっぱ無し」となることも考えにくい気はする

@kachick
Copy link
Owner Author

kachick commented Mar 29, 2024

flake がなぜ物議を醸すのかについて詳述されてるのを初めて見つけた https://github.com/NixOS/nix.dev/blob/f32c85e0968c4bd8861df1ecf9f1e77831207009/source/concepts/flakes.md?plain=1#L48-L116

@kachick
Copy link
Owner Author

kachick commented Apr 5, 2024

この人は今

やりがちだけれどこういうメタ読みみたいなのはやってて嫌な気分になる類の生活の知恵なのでやらずに済むようにはなりたい

@kachick
Copy link
Owner Author

kachick commented Sep 10, 2024

zed のリポジトリには flake.nix も shell.nix も置いてあるのでやったー https://github.com/zed-industries/zed/blob/f71cb14d7a3c876b1a5a69949a5a198ed3bfbd5a/flake.nix
と思ったが、なんでかよくわかってないものの rust 系のツールを dev shell に入れていない https://github.com/zed-industries/zed/blob/f71cb14d7a3c876b1a5a69949a5a198ed3bfbd5a/nix/shell.nix

普通に nix-shell で package 指定すると自分の環境では stable NixOS のが入るんだけれど、これは入るバージョンが古くて使ってるcrateから弾かれる
かと言って置いてあるnix環境無視で rustc とか cargo だけ入れると clang 不足で怒られる

こういうときに任意のnixpkgsを指定する方法をいつも忘れてしまうのでメモる。
好ましいかはしらんものの、リポジトリ内の定義使った nix-shell やら nix develop 後に impure で欲しい物を追加して通した

nix-shell -I nixpkgs=https://github.com/NixOS/nixpkgs/archive/nixos-unstable.tar.gz --packages rustc clippy rust-analyzer cargo

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant