-
Notifications
You must be signed in to change notification settings - Fork 23
RFC: Use nix only for tools #156
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
base: main
Are you sure you want to change the base?
Conversation
This allows us to (impurely) use bun to install dependencies, and (hopefully) not depend on node. As we're now using bun to install dependencies, we can get rid of the `package-lock.json` workaround and use `bun.lock` instead. All our various `make` commands are the source of truth for both local development and CI. Folks can use `nix develop` to get a development shell with all deps pre-installed, or they can install those tools (just `make` and `bun`) some other way, at the risk of using a different version of those tool than we use in CI. There's some weirdness here to make `nix fmt` defer to `make format`. `make format` didn't support formatting individual files, so I had to add a little bit of janky python+shell glue to make it work. We can revert this, I just wanted a smooth experience for nix-ers who have gone to the effort to configure their editor to automatically run `nix fmt`.
I appreciate the effort you've put into trying to get I think the PR title illustrates this: even when trying to use By contrast, the abstraction we use for other This shows:
It took me almost no time to figure out what the issue was and how it's triggered. We invoke a (As for the actual issue in that case, it took me little time to work around. And By contrast, consider something like https://github.com/cubing/icons/actions/runs/14323570832/job/40144925277
In addition, it's not easy for me to run So overall I'm not necessarily opposed to nix, but at this point I'd strongly prefer #154 unless the ecosystem has made reproducibility significantly more ergonomic. |
I don't see this as an either or. Let's merge #154. This just gets the tools in a different way.
I'm not going to try to defend that. I agree it's inscrutable. It's also not the sort of thing we're going to get with the approach in this PR, though. We're now letting bun do bun things. Would it be helpful if I intentionally re-introduce the bug from #152 so we can see what it looks like in CI now? For the record, I'm not going to die on this hill, but I do want to provide a nix devshell. I would like it if it CI uses that devshell. |
Sounds good, I'll merge!
Yeah, I'll leave all the |
This builds upon #154.
This allows us to (impurely) use bun to install dependencies, and
(hopefully) not depend on node. As we're now using bun to install
dependencies, we can get rid of the
package-lock.json
workaround anduse
bun.lock
instead. All our variousmake
commands are the sourceof truth for both local development and CI. Folks can use
nix develop
to get a development shell with all deps pre-installed, or they can
install those tools (just
make
andbun
) some other way, at the riskof using a different version of those tool than we use in CI.
There's some weirdness here to make
nix fmt
defer tomake format
.make format
didn't support formatting individual files, so I had toadd a little bit of janky python+shell glue to make it work. We can
revert this, I just wanted a smooth experience for nix-ers who have gone
to the effort to configure their editor to automatically run
nix fmt
.